HTTP模块接入 知识库引用,返回的内容在对话中却不显示引用?
例行检查
- [ ] 我已确认目前没有类似 issue
- [ ] 我已完整查看过项目 README,以及项目文档
- [ ] 我使用了自己的 key,并确认我的 key 是可正常使用的
- [ ] 我理解并愿意跟进此 issue,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
你的版本
- [ ] 公有云版本
- [ ] 私有部署版本, 具体版本号:
问题描述 HTTP模块接入 知识库引用,返回的内容在对话中却不显示引用? 已加入q、a、sourceName字段,也尝试加入过id、sourceId等字段均无效
复现步骤
预期结果
相关截图
试了一下这样 也不行。 版本4.7.1
接入文本加工模块吧,然后用变量加上问题,直接把模块接入AI的问题, 知识库引用可能不兼容其他的格式
接入文本加工模块吧,然后用变量加上问题,直接把模块接入AI的问题, 知识库引用可能不兼容其他的格式
谢谢哥的回复,可是这样也就没有办法在 前端页面中 显示“引用”了吧?
用http 做外部知识的补充,如何达到这样的效果,能够在页面上显示引用?
@nongmo677 我看这个老哥在https://github.com/labring/FastGPT/issues/1096 的截图是可行的
@nongmo677 我看这个老哥在#1096 的截图是可行的
是的,我也看到了他的截图。但是我复现不出来。我用同样的方法 试了很多遍,都显示不出来引用。
@lijiajun1997 不知道咋回事 ,您可以看我上面的截图,我也用了 @nongmo677 的方法,但是就是出不来引用。辛苦了 谢谢
我使用的版本是4.6.9,新版本里似乎通过了某种判断禁止了
具体请对比projects/app/src/components/ChatBox/ResponseTags.tsx不同版本的代码
我使用的版本是4.6.9,新版本里似乎通过了某种判断禁止了 具体请对比
projects/app/src/components/ChatBox/ResponseTags.tsx不同版本的代码
确实4.6.9 就是可以的,4.7.1就不行了。- -感谢哥子 @nongmo677
@c121914yu 哥,这个能支持一下嘛 修复一下
这个实际上是这里决定的 https://github.com/labring/FastGPT/blob/c314312a57c46ff838f5f55266fcf2d6a7070bd0/projects/app/src/components/ChatBox/ResponseTags.tsx#L69 目前来看,只有知识库的组件存在quoteList这个属性,强行改代码似乎也不是很好,具体得看官方怎么解决
但是如果只是简单的需求,你可以尝试自己修改源码如下:
const quoteList = flatResponse
.filter((item) => item.moduleType === FlowNodeTypeEnum.datasetSearchNode || item.moduleType === FlowNodeTypeEnum.httpRequest468)
.map((item) => item.httpResult?.quoteList ?? item.quoteList)
.flat()
.filter(Boolean) as SearchDataResponseItemType[];
假定我们返回的http数据里被quoteList包裹,http模块的返回值key使用进行获取quoteList
基于4.7.1版本,最终得到结果如下:
理解了,太感谢了,哥 你说的太细了,感谢。
这个实际上是这里决定的
https://github.com/labring/FastGPT/blob/c314312a57c46ff838f5f55266fcf2d6a7070bd0/projects/app/src/components/ChatBox/ResponseTags.tsx#L69
目前来看,只有知识库的组件存在quoteList这个属性,强行改代码似乎也不是很好,具体得看官方怎么解决 但是如果只是简单的需求,你可以尝试自己修改源码如下:
const quoteList = flatResponse .filter((item) => item.moduleType === FlowNodeTypeEnum.datasetSearchNode || item.moduleType === FlowNodeTypeEnum.httpRequest468) .map((item) => item.httpResult?.quoteList ?? item.quoteList) .flat() .filter(Boolean) as SearchDataResponseItemType[];假定我们返回的http数据里被
quoteList包裹,http模块的返回值key使用进行获取quoteList基于4.7.1版本,最终得到结果如下:
理解了,哥,你说的太细了,感谢,真心谢谢
新改成只截取知识库搜索作为展示。 可以优化下,推测数据类型。

