高级编排 动态知识库配置检索
例行检查
- [x] 我已确认目前没有类似 issue
- [x] 我已完整查看过项目 README,以及项目文档
- [x] 我使用了自己的 key,并确认我的 key 是可正常使用的
- [x] 我理解并愿意跟进此 issue,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
你的版本
- [x] 私有部署版本, 具体版本号: 4.8
问题描述, 日志截图
我想实现根据用户输入来自动去不同知识库进行检索(不是分支判断类型,不确定有可能会有多少个备选知识库)
新版本的知识库搜索组件中 选择知识库变量 支持 变量引用,我将知识库名称作为变量引入进去并不能生效
查看选择固定知识库时的配置,发现选择知识库的value配置如下:
[
{
"datasetId": "{{datasetId}}",
"vectorModel": {
"model": "text-embedding-v1",
"name": "QWen-Embedding",
"charsPointsPrice": 0,
"defaultToken": 700,
"maxToken": 3000,
"weight": 100
}
}
]
由此我编排了一版用户输入知识库的id,应用去对应的知识库进行检索(知识库id 用户可在知识库详情 -> 配置中找到),可以正常work
配置方式如下:
复现步骤
预期结果
我希望可以通过知识库名称来确定使用哪个知识库进行检索, 知识库id 对于普通用户来讲还是有点不好理解
相关截图
把知识库的名称和ID放到laf数据库里,用户输入指定关键词执行http请求获取知识库名称清单,然后用户输入知识库名单执行http请求把全局变量根据查询结果输入为知识库id。
这样可以解决,但是每次新增知识库后,都要去laf知识库里面更新,我的场景是用来写投资报告,整体写作逻辑是固定的,但是用到的知识库每一个项目都是一个单独的知识库,实际用起来是最终使用人员自己建立一个a项目的知识库,然后直接去应用对话选择a知识库引用,没有开发或其他人员参与,所以每次建立知识库后再去更新laf数据库不太行
有没有可能在全局变量那里新增一种变量类型,就是知识库选择,就像在知识库组件中选择知识库一样
用户对话界面直接可以在所有知识库中进行选择,或者在用户预先设置的一批或一个文件夹下的知识库中选择,如果考虑数据安全问题
这样可以不借助第三方程序直接实现动态知识库的支持,不然这个知识库组件 选择知识库 变量引用的功能感觉大部分人用不起来呀
或者FastGPT的OpenAPI能不能暴露出来一个接口,可以根据知识库名称拿到知识库id的也是一种解决方案
请问以上以下的配置哪里查到的呢?另外,这个方法可以支持动态选择多个知识库吗? [ { "datasetId": "{{datasetId}}", "vectorModel": { "model": "text-embedding-v1", "name": "QWen-Embedding", "charsPointsPrice": 0, "defaultToken": 700, "maxToken": 3000, "weight": 100 } } ]
请问以上以下的配置哪里查到的呢?另外,这个方法可以支持动态选择多个知识库吗?
[
{
"datasetId": "{{datasetId}}", "vectorModel": { "model": "text-embedding-v1", "name": "QWen-Embedding", "charsPointsPrice": 0, "defaultToken": 700, "maxToken": 3000, "weight": 100 }}
]
系统运行时浏览器开控制台,进编排界面查看network中的http请求内容就可以看到
支持多选,这个json是一个数组呀,我的这个案例数组中只有一项元素,你最终数组中放多个元素就相当于选了多个知识库
只需要 datasetId 即可,vectorModel在最新版已经从数据库获取了。