本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
Agent 知识检索节点目前处于 Beta 阶段。
设置查询
可按文本、图片或两者组合进行检索:-
查询文本:选择一个文本变量。文本最多 16,000 个字符。
-
在 Chatflow 中,使用内置的
userinput.query变量获取当前的用户消息。 - 在 Workflow 中,使用 用户输入 变量,或前序节点准备好的文本。
-
在 Chatflow 中,使用内置的
-
查询图片:选择一个包含单张图片或图片数组的变量。每次查询最多包含 4 张 GIF、JPEG、PNG 或 WebP 格式的图片,单张不超过 10 MB,总计不超过 32 MB。
图片超出上述限制,或传入的文件不是图片,都会导致节点运行失败。在 Chatflow 中,可将 文件上传 设为仅接受图片,且每条消息最多 4 张。
支持的模型组合详见 多模态检索。
仅用图片检索时,确保所选的每个知识库都使用支持视觉的嵌入模型或推理模型,否则节点会运行失败,不返回任何结果。
选择 Agent 知识库
最多可选择 10 个知识库。每次查询时,节点会检索所有已选的知识库,并合并结果。 如果在选择列表中找不到某个知识库,联系能管理其权限的成员,为你开通访问权限。只要有一个已选知识库检索失败,节点就不会返回部分结果,当前运行也会随之终止。
调整检索设置
可保留各知识库已配置的 检索深度,也可在此节点中为所有知识库统一指定同一深度。与检索测试中不同,「研究」深度在这里只返回匹配的分段,不会生成回答。
将检索限定在特定文档
检索通常会搜索知识库中的所有文档。借助元数据,可将检索范围缩小到符合条件的文档。典型场景是一个知识库同时服务多个应用,而每个应用只应基于其中一部分内容作答。 假设公司内部有一个政策知识库,收录了各国的地区规定,每个地区都基于它为本地员工搭建了一个助手应用。如果不加过滤,欧盟的助手可能会依据美国的规定回答育儿假问题。 为避免这种情况,先给每个文档标注它的相关信息,再按这些标注过滤检索:-
在知识库的 文档 页面点击 元数据,为每项要用于过滤的信息添加一个字段。对这个政策知识库来说,只需一个字符串类型的
region字段。 字段类型之后无法更改,选择时要先想好如何过滤:需要比较大小的值用数字类型,要按日期先后过滤的用时间类型。 -
打开每个文档,点击 开始标注,选择字段并填写值。欧盟的规定填
eu,美国的填us。 数据源同步更新了文档内容后,标注仍会保留。 -
在此节点中,将 元数据过滤 设为 手动,并为欧盟助手添加条件「
region是eu」。这样一来,它的回答就只会来自欧盟的规定。 也可选择 自动,让模型根据每个问题推断过滤条件。但 LLM 无法确定条件时,检索会不加过滤地进行,因此凡是必须过滤的场景,都应使用 手动。 如果节点同时检索多个知识库,共用的字段在每个知识库中都要使用相同的名称和类型。过滤条件只能使用所有知识库中都有的字段。
基于检索内容生成回答
在同一执行路径上的后续 LLM 节点 中:1
传入检索到的内容
在 上下文 中选择本节点的
result 变量,再将 上下文 变量插入提示词。2
传入查询
将同一个或同一组查询变量插入 LLM 节点的 用户 消息中。使用图片查询时,选择支持视觉的模型。
3
引导回答
在提示词中,指示 LLM 基于检索到的内容回答查询。
知识库中找到的图片只会以文本形式传给后续节点,即图片的说明文字、替代文本或从图片中识别出的文字。图片文件本身不会传递下去。
处理无匹配结果的情况
没有匹配的内容时,节点仍会成功运行,并返回空的result。
如果不希望 LLM 在没有检索内容时作答,可在本节点与 LLM 节点之间添加一个 条件分支节点,判断 result 是否为空。