【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

代码等忙完再整理

相关推荐
deephub4 天前
向量搜索系统的三个核心优化维度:速度、精度与规模
人工智能·python·rag·检索
海棠AI实验室4 天前
RAG 五大应用场景(三)企业级 Code RAG 与代码库 Copilot 深度架构指南
架构·copilot·rag
海棠AI实验室4 天前
RAG 五大应用场景(四)法务合同合规系统 —— 从“聊天玩具”到“证据链引擎”
rag·法务合同合规系统
deephub5 天前
RAG 中分块重叠的 8 个隐性开销与权衡策略
人工智能·大语言模型·rag·检索
无聊的小坏坏5 天前
RAG 实战 (下):打造多轮对话知识助手
langchain·rag·大模型应用
无聊的小坏坏6 天前
RAG 实战 (上):构建向量知识库
langchain·rag·大模型应用
麦麦大数据7 天前
M004_基于Langchain+RAG的银行智能客服系统设计与开发
typescript·langchain·flask·vue3·faiss·rag
小小工匠7 天前
大模型开发 - SpringAI 之高级 RAG 组件
rag·spring ai
Johnny.Cheung8 天前
面试:LLM RAG的三种算法和使用场景Reranking
llm·向量检索·rag
小楼v8 天前
⭐解锁RAG与Spring AI的实战应用(万字详细教学与完整步骤流程实践)
java·后端·rag·spring ai·ai大模型应用