解决FastGPT中Rerank重排调用的问题

公司内的AI项目在用FastGPT做编排调度。升级到新版本后发现使用知识库召回时,重排/rerank始终没有生效。我来回折腾了一天最终搞定了这个问题,在这里记录一下解决方案。

怎么发现的问题

其实之前我们部署了一个v4.6.7版本FastGPT用于业务(别问为什么是这个版本:部署的时候恰好是这个,上线了太多项目后又不敢升级了),里面测试知识库都显示重排生效。于是我复制了旧的config配置,按照FastGPT文档中新版本的要求修改好,放到了新部署的最新版本FastGPT config里面,想着这总不会错吧。结果新版下测试直接提示重排失败。

排查和解决过程

整个问题基本上就是在FastGPT的github issue里面翻别人的经验的过程。不得不说这个项目的文档写得太滞后了。这种情况下,群友(?)可能有话要说了:

回归正题。文档中默认的rerank模型是bge-rerank,我们之前也是按照文档部署的,按照文档默认选择了v0.1版本。然后我就发现新版本的FastGPT居然要求bge-rerank需要使用v0.2版本,而这一点完全没有在文档中提现,仅能从issue中找到(其实更让我看得莫名其妙的是这个issue,好像大家都已经知道了需要升级,好像只有我一个人搞不清状况(which is, happend a lot of times, sadly))。

于是重新部署了一个v0.2的版本。对了,不能使用文档中的docker镜像地址直接改v0.2,因为这个地址里面就没有v0.2版本的文件。需要使用 registry.cn-hangzhou.aliyuncs.com/fastgpt/rerank:v0.2 来下载镜像。

成功启动bge-rerank后,如果是从旧版本升级过来的话会遇到最后一个问题,bge-rerank的请求路径有变化,原本是 api/v1/rerank,新版本没有api/了,是 v1/rerank(当然文档里面也没有说,最后还是从这里找到的。不对文档说了,但没有提示调整,所以基本等于没说)。

至此,新版本的FastGPT下的Rerank重排的问题,算是告一段落了……

等等…

为什么v4.6.7是可以用的,最新版本就不行呢?我登上了之前的服务器看日志,结果发现我们部署且正在使用的旧版本,测试的时候看上去每次提示重排生效了,但真实情况是,无论测试还是真实环境,每次请求rerank都是失败的……失败原因,不巧也是因为token的格式配置问题。

只能说,无论是这个项目还是我们公司,都再次验证了草台班子理论(引用知乎不表示使用或者推荐知乎)。