【RAG】使用llamaindex进行RAG开发

RAG基本步骤

  1. parse:将pdf,doc,ppt等file解析成文本,如markdown。有基本的metadata。
  2. chunk:将markdown文本进行分块,比如按大小分,语义分等。可以为每个块添加更丰富的metadata。
  3. index:将每个分块使用embedding model转换为向量,存储到vector db中,方便后续检索。
  4. retrieve:将user query也用embedding model转换为向量,连接vector db进行相似度搜索,rerank等找到和query最相关的top k个块。
  5. generate:根据上一步返回的最相关块和user query结合,调用llm进行生成。一般会有些后处理。

123步会在user上传知识库文件后执行,45步会在user对知识库进行问答时执行。


我们使用llamaindex完成rag整个过程,此外还需要:

  • minio: object store,存储文件
  • pgvector: vector db,存储embedding向量
  • docker env(非必须)

llamaindex提供了high level的RAG实现,但是我们需要更好的灵活性,所以会用更低层的API来做

  1. 需要设计五个base类,覆盖5个步骤的基础功能
  2. 每个base类有具体实现,能够实现对应功能
  3. 实现类按顺序串联,即可形成pipeline执行QA。其中index和retrieve通过db config保持一致
  4. 每个步骤可作为一个service

代码等忙完再整理

相关推荐
QC·Rex10 小时前
向量数据库架构与应用实战:从原理到生产部署
向量数据库·rag·相似度搜索·hnsw 算法·ai 基础设施
deephub10 小时前
Karpathy的LLM Wiki:一种将RAG从解释器模式升级为编译器模式的架构
人工智能·大语言模型·知识库·rag
guslegend13 小时前
第8节:打造可配置,可扩展的自动化预处理流水线
人工智能·大模型·rag
guslegend1 天前
第6节:OCR文本错漏频发?结合LLM纠错,让图像文本也能精确使用
人工智能·大模型·ocr·rag
@atweiwei1 天前
langchainrust:Rust 版 LangChain 框架(LLM+Agent+RAG)
开发语言·rust·langchain·agent·向量数据库·rag
小饕2 天前
RAG 学习之-向量数据库与 FAISS 索引完全指南:从原理到选型实战
人工智能·rag·大模型应用
handsomestWei2 天前
LightRAG知识图谱使用和工作流集成
人工智能·知识图谱·rag·lightrag
handsomestWei2 天前
RAG知识图谱简介
人工智能·知识图谱·rag·lightrag
guslegend3 天前
第5节:动态切片策略与重叠机制提升RAG召回率
人工智能·大模型·rag
Devin~Y3 天前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag