SuperAPI AI 工具集

rag-implementation

智能体与模型

查看项目

更新于 10-16 10:18

技能介绍

用途

RAG Implementation 是一项用于构建检索增强生成(Retrieval-Augmented Generation, RAG)系统的技能,目标是让 LLM 应用借助外部知识源提供准确、有依据(grounded)的回答。适用于在专有文档上构建问答系统、创建具备最新事实信息的聊天机器人、实现自然语言语义搜索、通过有据回答减少幻觉、让 LLM 访问领域特定知识、构建文档助手,以及创建带来源引用的研究工具。

不建议在以下情况使用:只需要纯生成式写作而无需检索;数据集过小,不足以支撑嵌入(embeddings);无法安全存储或处理源数据。

主要能力

技能围绕 RAG 的核心组件展开,并给出可选方案:

  • 向量数据库(Vector Databases):用于高效存储与检索文档嵌入。可选 Pinecone(托管、可扩展、查询快)、Weaviate(开源、混合搜索)、Milvus(高性能、本地部署)、Chroma(轻量、易用)、Qdrant(快速、支持过滤搜索)、FAISS(Meta 出品、本地部署)。
  • 嵌入(Embeddings):将文本转换为数值向量以进行相似度搜索。可选 text-embedding-ada-002(OpenAI,通用,1536 维)、all-MiniLM-L6-v2(Sentence Transformers,快速轻量)、e5-large-v2(高质量、多语言)、Instructor(任务特定指令)、bge-large-en-v1.5(SOTA 性能)。
  • 检索策略(Retrieval Strategies):稠密检索(基于嵌入的语义相似度)、稀疏检索(关键词匹配,如 BM25、TF-IDF)、混合搜索(稠密 + 稀疏)、多查询(生成多个查询变体)、HyDE(生成假设文档)。
  • 重排序(Reranking):通过重新排序结果提升检索质量。方法包括 Cross-Encoders(基于 BERT 的重排序)、Cohere Rerank(基于 API 的重排序)、Maximal Marginal Relevance(MMR,兼顾多样性与相关性)、基于 LLM 的相关性打分。

使用方式

技能给出了基于 LangChain 的快速上手流程:加载文档(如 DirectoryLoader)→ 切分为块(RecursiveCharacterTextSplitter,chunk_size=1000、chunk_overlap=200)→ 创建嵌入与向量库(OpenAIEmbeddings + Chroma.from_documents)→ 创建检索链(RetrievalQA,retriever 的 search_kwargs 为 {"k": 4},return_source_documents=True)→ 查询并输出结果与来源文档。

进阶模式包括:

  • 混合搜索:BM25Retriever 与向量检索器经 EnsembleRetriever 组合,示例权重为 [0.3, 0.7]。
  • 多查询检索:MultiQueryRetriever 基于 LLM 生成多个查询视角并合并结果。
  • 上下文压缩:ContextualCompressionRetriever 配合 LLMChainExtractor,仅返回文档中相关部分。
  • 父文档检索:ParentDocumentRetriever 配合 InMemoryStore,小子块用于检索、大子块用于上下文(child_splitter 400、parent_splitter 2000)。

文档分块策略涵盖:递归字符分块(可自定义 separators)、基于 token 的分块(TokenTextSplitter)、语义分块(SemanticChunker,breakpoint_threshold_type="percentile")、Markdown 标题分块(MarkdownHeaderTextSplitter)。向量库配置示例覆盖 Pinecone、Weaviate、Chroma(本地,可设 persist_directory)。

检索优化手段包括元数据过滤(为 chunk 添加 source、page、category 等元数据并在检索时 filter)、MMR(max_marginal_relevance_search,k=5、fetch_k=20、lambda_mult=0.5)、Cross-Encoder 重排序(cross-encoder/ms-marco-MiniLM-L-6-v2,对候选集打分后取 top k)。

提示工程模板包括:上下文回答(无法回答时明确说明信息不足)、带引用([1]、[2] 等)、带置信度(0-100%)。

评估方面提供 evaluate_rag_system 示例,统计 accuracy、retrieval_quality、groundedness 三类指标并取平均。

适用场景

专有文档问答、具备最新事实的聊天机器人、自然语言语义搜索、减少幻觉的有据回答、领域知识接入、文档助手、带来源引用的研究工具。

限制与注意事项

安全方面要求对敏感数据脱敏、实施访问控制,在受限情况下避免在回答中暴露源文档。最佳实践建议:块大小在上下文与具体性之间平衡(500-1000 tokens)、使用 10-20% 重叠保留边界上下文、包含来源/页码/时间戳等元数据以便过滤与调试、采用混合搜索、用 cross-encoder 重排序、始终返回来源文档以保持透明、持续测试检索质量与回答准确性、在生产环境跟踪检索指标。常见问题排查方向包括:检索效果差(检查嵌入质量、块大小、查询构造)、结果不相关(增加元数据过滤、混合搜索、重排序)、信息缺失(确认文档已正确索引)、查询慢(优化向量库、使用缓存、减少 k)、幻觉(改进 grounding 提示、增加校验步骤)。

该技能未在资料中说明具体收费、价格或平台限制等信息,暂未提供。