【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

代码等忙完再整理

相关推荐
wangjialelele10 小时前
RAG 检索增强生成全面解析:从知识库构建到检索、重排序与生成优化
人工智能·ai·agent·rag·检索增强生成
ZGi.ai20 小时前
ZGI 混合检索:汇集候选并统一重排
知识库·rag·重排·企业ai·混合检索·zgi
uncle_ll1 天前
LlamaIndex 全栈实战指南:架构解构、RAG 核心原理与私有知识库工程化落地方案
架构·llm·agent·rag·llamaindex
O。O蛋黄酥啊2 天前
GraphRAG 和 LightRAG 详解与对比
人工智能·python·算法·rag·graphrag·lightrag
像风一样自由20202 天前
11.PostgreSQ、-MySQL与MongoDB-AI应用如何选择数据库
数据库·人工智能·mysql·mongodb·大模型·rag·智能体
辞忧九千七2 天前
从Milvus到RAG:向量数据库核心技术与索引调优完全指南
milvus·rag
练习两年半的攻城狮2 天前
RAG 系统中 Excel/表格数据的正确处理方式
python·llamaindex
大模型丫丫3 天前
检索增强生成(RAG)入门:原理、架构与实践
人工智能·rag
Komorebi_99993 天前
RAG23-RAG28
llm·rag
tachibana23 天前
把RAGAS跑起来
数据库·人工智能·ai·架构·大模型·llm·rag