通过检索增强生成回答问题的解决方案模式
您可以创建一个生成式人工智能解决方案,通过应用检索增强生成(RAG)模式,根据知识库中的信息回答用户的问题。
使用案例和要求
当您需要一个基础模型来补充您提供的信息时,RAG模式非常有用。 例如,假设您想为新产品开发一个聊天机器人,根据产品文档回答问题。
基于产品文档回答问题的RAG解决方案可能包括以下任务:
- 在产品文档中找到用户问题的答案。
- 根据产品文档生成答案。
- 链接到提供答案的文档主题。
- 保存所有问题和答案。
- 收集用户对答案的反馈。
- 将负面反馈传达给文档编写人员。
解决方案架构
碎花图案通常包括以下元素:
- 包含源文档的知识库。
- 一种嵌入模型,可将文档中的文本转换为矢量嵌入,即数字表示。
- 一个矢量数据库,用于存储文档的矢量嵌入和用于搜索和检索内容的矢量索引。
- 一个即时模板,将用户问题、检索到的内容和生成答案的说明结合在一起。
- 基础模型,根据检索到的内容生成对用户问题的答案。
完整的解决方案可能还包括以下组件:
- 这款应用程序的用户界面可供用户提出问题、获取答案,并对答案进行反馈。
- 重新排序模型根据检索结果对问题的回答程度,而非结果与问题的相似程度,对检索结果进行重新排序。
- 问题、答案和用户反馈的记录。
- 一种向文档编写者提供反馈的方法,他们可以更新文档,使解决方案产生更好的答案。
- 一种识别最佳专家的方法,以应对不满意的答复。
例如,下图展示了如何通过调整内容来优化RAG解决方案,从而根据用户反馈改进人工智能的答案。
实施解决方案
要实施RAG模式解决方案,请遵循以下主要步骤:
- 建立矢量数据库。
- 创建矢量索引。
- 在提示符下指定矢量索引。
- 请评价这条信息。
- 添加可选组件。
- 将模式部署为人工智能服务。
- 在您的应用程序中调用人工智能服务端点。
工具
您可以在 Prompt Lab 上创建一个快速的概念验证。 您可以上传一个文档文件,并在内存矢量存储中为其创建矢量索引。 参见 “与文档聊天 ”。 当您建立矢量数据库时,可以创建一个矢量索引,以便在提示时引用。 请参阅添加矢量化文档,获取接地基础模型提示。
您可以使用RAG加速器的问答功能来启动RAG解决方案。 加速器是一个示例项目,它使用一组 Python 笔记本来实施RAG模式,您可以根据您的解决方案自定义这些笔记本。 请参阅 RAG加速器的问答。
您可以自动搜索最佳的RAG模式,运行 AutoAI 工具来构建RAG解决方案。 AutoAI 自动化从实验到部署的端到端流程。 您可以通过选择优先考虑的指标、如何配置检索方法和索引以及包含的模型来定制您的 AutoAI 实验。 请参见使用 AutoAI 自动运行 RAG 模式。
您可以跳过用户界面,直接使用REST API、 Python 库或 Node.js SDK编写代码。 请参阅 " 检索-增强生成":工作方式。