使用OpenAI、RAG和MongoDB向量嵌入构建知识库聊天机器人

这是为谁准备的?

该模板专为希望自动吸收产品文档并实现AI驱动的、检索增强型问答的技术公司的内部支持团队、产品专家和知识经理设计。

这个工作流解决了什么问题?

支持代理经常花费太多时间手动搜索冗长的文档,导致回答不一致或延迟。这个解决方案自动导入、分块和索引产品手册,然后使用检索增强生成(RAG)通过AI快速准确地回答用户的查询。

这些工作流的作用

工作流1:文档吸收和索引
手动触发,从Google Docs导入产品文档。

自动将大文档分解成小块,以实现高效的搜索。

使用OpenAI嵌入生成每块的向量嵌入。

将嵌入块和元数据插入到MongoDB Atlas向量存储中,以支持快速的语义搜索。

工作流2:AI驱动的查询和响应
监听进入的用户问题(可扩展到webhook)。

将问题转化为向量嵌入,并在MongoDB的向量存储上执行相似性搜索。

使用OpenAI的GPT-4o-mini模型和检索增强生成来生成直接、上下文相关的答案。

使用内存缓冲节点维持短期的对话上下文。

设置

设置向量嵌入
认证Google Docs并连接包含要索引的产品文档的Google Docs URL。

认证MongoDB Atlas并连接要存储向量嵌入的集合。在此集合上创建搜索索引以支持向量相似性查询。

确保索引名称与n8n(data_index)配置的名称相匹配。

参见下面的MongoDB搜索索引模板示例。

设置聊天
在“知识库代理”节点中配置AI系统提示以反映公司的语调、回答风格和任何业务规则。

更新工作流描述和指导以帮助用户理解聊天的目的和功能。

在聊天工作流中连接用于向量搜索的MongoDB集合,并根据需要更新向量搜索引擎以匹配你的设置。

确保

(吸收和聊天工作流中的)两个MongoDB节点连接到同一个集合,并具有:
存储向量数据的嵌入字段,
相关的元数据字段(例如,文档ID,源),以及
配置了相同的向量索引名称(例如,data_index)。

搜索索引示例:
{
“mappings”: {
“dynamic”: false,
“fields”: {
“_id”: {
“type”: “string”
},
“text”: {
“type”: “string”
},
“embedding”: {
“type”: “knnVector”,
“dimensions”: 1536,
“similarity”: “cosine”
},
“source”: {
“type”: “string”
},
“doc_id”: {
“type”: “string”
}
}
}
}

原文链接:https://n8n.io/workflows/1954-ai-agent-chat/

发表回复

Your email address will not be published. Required fields are marked *.

*
*