用途:用于构建检索增强生成(RAG)系统,串联索引、检索与生成三个阶段。索引流程为加载→切分→嵌入→存储;检索流程为查询→嵌入→搜索→返回文档;生成流程为文档加查询→LLM→响应。
主要能力:文档加载器可从文件、网页、数据库摄取数据,示例含 PyPDFLoader、WebBaseLoader、DirectoryLoader;文本切分器用 RecursiveCharacterTextSplitter 将文档切块,可配置 chunk_size、chunk_overlap 与分隔符层级;嵌入将文本转为向量,示例使用 OpenAIEmbeddings(text-embedding-3-small);向量存储支持 InMemory(测试,仅内存)、FAISS(本地高性能,磁盘)、Chroma(开发,磁盘)、Pinecone(生产托管,云端);检索支持相似度搜索、带分数搜索与元数据过滤,并可配置 k 值与 MMR 等算法;还可将检索封装为工具供智能体调用。
使用方式:按示例顺序加载文档、切分、创建嵌入并存入向量库、创建 retriever、拼接上下文后调用 ChatOpenAI(gpt-4.1)生成回答。持久化示例包括 Chroma 的 persist_directory 与 FAISS 的 save_local/load_local(加载需 allow_dangerous_deserialization=True)。
适用场景:需要基于自有文档、网页或数据库内容进行问答与检索增强生成的开发场景。
限制:嵌入维度由模型决定,不可配置;同一向量库不能混用不同模型的嵌入;索引与查询须使用同一嵌入模型;维度需与索引匹配;chunk_size 建议 500-1500,overlap 建议为 chunk 的 10-20%;内存向量库重启后数据丢失。资料未提供收费、价格与平台支持等细节。