RAG 架构概述

RAG 结合了检索和生成两大能力:先将文档存入向量数据库,用户提问时检索相关文档,再交由 LLM 生成答案。

搭建步骤

from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma

loader = TextLoader("docs/")
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
chunks = text_splitter.split_documents(documents)

选择向量数据库是关键决策,详见 向量数据库入门:Pinecone vs Milvus。RAG 的更多技术背景参见 RAG 技术综述