本文介绍AI RAG 检索代理插件功能以及如何通过该插件实现AI应用与外部RAG引擎连接。
功能说明
AI RAG 检索代理插件通过检索协议转化和检索结果转换, 实现Dify等AI应用连接并检索RAGFlow和百炼知识库等外部RAG引擎。
运行属性
插件执行阶段:
默认阶段
。插件执行优先级:
150
。
配置说明
基本配置
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
| string | 必填 | - | 被调用的外部知识库的类型,支持的枚举类型目前包括:ragflow、bailian。 |
| string | 选填 | dify | 外部知识库调用方引擎类型,支持的枚举类型目前包括: dify。 |
| boolean | 选填 | false | 是否开启AI网关与外部知识库调用方之间API Key校验,不填写默认为false,开启后AI网关与外部知识库调用方之间API Key必须一致,否则无法正常使用。 |
| string | 选填 | - | 外部知识库调用方引擎的创建外部知识库API时,填写的API Key, 填写后,AI网关会校验此处填入的参数是否与外部知识库创建API时填写的API Key相同,否则不进行校验。 |
RAGFlow配置
当选择RAGFlow作为被调用的外部知识库时(rag_proxy.provider.name="ragflow"
),请参考以下说明进行配置。
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
| string | 必填 | - | 调用RAGFlow API的API Key, 可在RAGFlow控制台右上角头像-API-RAGFlow API处获取。 |
| list[string] | 选填 | - | 检索RAGFlow的DataSet ID,如这里不填,请在Dify配置外部知识库时填写,优先以Dify配置的外部知识库ID为准。 |
| list[string] | 选填 | - | 检索RAGFlow的Document ID,可以只在指定的Document下检索。 |
| float | 选填 | 0.0 | 相似度阈值, 低于阈值的分块会被过滤,可以在Dify的召回界面配置该参数。 |
| integer | 选填 | 30 | 返回相似度最高的top_n个分块, 其他分块会被过滤,可以在Dify的召回界面配置该参数。 |
| float | 选填 | 0.3 | 向量余弦相似度权重, 如果x表示向量余弦相似度, 则 |
| boolean | 选填 | false | 表示是否启用基于关键字的匹配:true:启用基于关键字的匹配。false:禁用基于关键字的匹配(默认)。 |
| integer | 选填 | - | RAG引擎中配置的Rerank模型的ID,配置后使用该模型开启Rerank功能,具体选型请参照ragflow支持的rerank模型,默认不开启该功能。 |
关于RAGFlow的知识库使用操作指引,请参见:Configure knowledge base。
关于RAGFlow的检索更详细参数说明,请参见:Retrieve chunks。
基础配置示例如下所示:
rag_proxy:
provider:
name: 'ragflow'
api_key: "xxxxxxxx"
百炼知识库配置
当选择百炼知识库作为被调用的外部知识库时(rag_proxy.provider.name="bailian"
), 请参考以下说明进行配置。
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
| string | 必填 | - | 百炼平台API Key,获取地址百炼API-KEY。 |
| string | 选填 | - | 阿里云百炼知识库ID,获取方式参考: 知识库API指南。 |
| bool | 选填 | true | 是否开启Rerank功能。 |
| float | 选填 | 当前知识库配置的相似度阈值 | 仅开启Rerank时生效, Rerank后的相似度阈值, 低于该阈值的分块会被过滤, 取值范围 |
| integer | 选填 | 5 | 仅开启Rerank时生效, Rerank后的top_n返回分块, 取值范围 |
| bool | 选填 | false | 是否保存历史检索召回数据。 |
| integer | 选填 | 100 | 向量检索TopK, 通过生成输入文本的向量并在知识库中检索与其向量表示最相似的K个文本切片, 取值范围 |
| integer | 选填 | 100 | 关键词检索TopK,即在知识库中查找与输入文本的关键词精确匹配的切片。它可以帮助您过滤掉无关的文本切片,提供更准确的结果, 取值范围 |
关于百炼平台的知识库使用操作指引,请参见:百炼知识库操作和使用指引。
关于百炼的检索更详细参数说明,请参见:Retrieve - 检索知识索引。
基础配置示例如下所示:
rag_proxy:
provider:
name: 'bailian'
api_key: 'sk-xxxxxx'
操作步骤
以Dify外部知识库连接RAGFlow与百炼知识库为例,对插件的操作和配置步骤进行说明。
通过AI RAG 检索代理插件实现Dify连接RAGFlow
在AI网关中创建RAGFlow检索服务。
前往AI网关控制台实例页面,在顶部菜单栏选择目标实例所在地域,并单击目标实例ID。
在左侧导航栏,选择服务,然后单击创建服务。
以固定地址来源的RAGFlow为例,创建服务来源为固定地址的ragflow检索服务,如下图所示,端口设置为80。如果是同VPC内容器部署的RAGFlow实例,也可以采用容器服务作为服务来源创建服务。
创建Agent API路由。
创建自定义Agent API。
在对应网关实例控制台,选择Agent API,然后单击创建Agent API,协议选择自定义。
创建Agent API路由。
进入已经创建的Agent API,单击创建路由,注意需要确保路径后缀为/retrieval,服务选择步骤1创建的RAGFlow检索服务。
获取API KEY并在AI网关中配置插件。
进入RAGFlow,点击右上角用户头像->左侧选择->API->API KEY,获取API KEY。
在对应网关实例控制台,选择插件,然后单击安装插件,插件类型选择AI,然后选择AI RAG代理插件,单击安装并配置进入规则配置,相关配置如下图所示。设置启用并点击保存后,插件生效。
在Dify中创建外部知识库API。
前往Dify控制台,点击知识库->外部知识库API->添加外部知识库API,API Endpoint使用上述网关接入点与Agent API路由路径组合(
http(s)://{endpoint}/{agent api path}
),注意需要去除/retrieval后缀,API Key可自行定义。重要如果在插件中配置了rag_proxy.source.enable_to_proxy_api_key和rag_proxy.source.to_proxy_api_key,需保证API Key和rag_proxy.source.to_proxy_api_key保持一致,否则Dify访问AI网关会鉴权失败,无法执行后续路由。
在Dify中连接外部知识库。
获取知识库命名空间ID。
前往RAGFlow知识库页面,选择待检索的知识库,页面URL路径中对应部分为外部知识库ID,如下图所示。
配置知识库信息。
前往Dify控制台,点击知识库->连接外部知识库,知识库名称和描述可自定义,外部知识库API选择上述步骤4创建的API,如下图所示,点击连接后完成配置。
验证检索连通性。
前往Dify知识库页面,选择上述步骤创建的知识库,在召回测试输入源文本进行验证,能够根据召回设置返回文本分块,即说明实现连通。
通过AI RAG 检索代理插件实现Dify连接百炼知识库
在AI网关中创建百炼检索服务。
前往AI网关控制台实例页面,在顶部菜单栏选择目标实例所在地域,并单击目标实例ID。
在左侧导航栏,选择服务,然后单击创建服务,服务来源选择DNS域名,相关配置如下图所示。
在AI网关中创建自定义Agent API路由。
创建自定义Agent API。
在左侧导航栏,选择Agent API,然后单击创建Agent API,相关配置如下图所示,其中域名和Base Path可按需自定义,协议选择自定义。
创建Agent API路由。
进入已创建的Agent API,单击创建路由,注意需要确保路径后缀为/retrieval,服务选择步骤1创建的百炼检索服务。
获取API KEY并在AI网关中配置插件。
登录阿里云百炼平台API Key并获取API Key。
在对应网关实例控制台,选择插件,然后单击安装插件,插件类型选择AI,然后选择AI RAG代理插件,单击安装并配置进入规则配置,相关配置如下图所示。设置启用并点击保存后,插件生效。
在Dify中连接外部知识库。
前往Dify控制台,点击知识库->外部知识库API->添加外部知识库API,API Endpoint使用上述网关接入点与Agent API路由路径组合(
http(s)://{endpoint}/{agent api path}
),注意需要去除/retrieval后缀,API Key可自行定义。重要如果在插件中配置了rag_proxy.source.enable_to_proxy_api_key和rag_proxy.source.to_proxy_api_key,需保证API Key和rag_proxy.source.to_proxy_api_key保持一致,否则Dify访问AI网关会鉴权失败,无法执行后续路由。
在Dify中创建外部知识库。
获取百炼知识库ID。
前往阿里云百炼平台知识库,选择待检索的知识库,如下图所示,获取知识库ID。
配置知识库信息。
前往Dify控制台,点击知识库->连接外部知识库,知识库名称和描述可自定义,外部知识库API选择上述步骤4创建的API,外部知识库ID的格式为:{知识库ID},如下图所示,点击连接后完成创建。
验证检索连通性。
前往Dify知识库页面,选择上述步骤创建的知识库,在召回测试输入源文本进行验证,能够根据召回设置返回文本分块,即说明实现连通。