FastGPT icon indicating copy to clipboard operation
FastGPT copied to clipboard

Bug:在 pgvector v0.7.0+ 环境下,知识库搜索报错 "invalid configuration parameter name"

Open flyhunterl opened this issue 5 months ago • 3 comments

例行检查

  • [x] 我已确认目前没有类似 issue
  • [x ] 我已完整查看过项目 README,以及项目文档
  • [x] 我使用了自己的 key,并确认我的 key 是可正常使用的
  • [x] 我理解并愿意跟进此 issue,协助测试和提供反馈
  • [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭

你的版本

  • [ ] 公有云版本
  • [x] 私有部署版本, 具体版本号: 4.12.2

问题描述, 日志截图,配置文件等 当使用搭载 pgvector 扩展 v0.7.0 或更高版本的 PostgreSQL 数据库时,FastGPT 的知识库搜索功能会间歇性失败。在 PostgreSQL 容器的日志中,会频繁出现如下致命错误:

ERROR: invalid configuration parameter name "hnsw.max_scan_tuples"
DETAIL: "hnsw" is a reserved prefix.

前端报错:

invalid configuration parameter name "hnsw.max_scan_tuples"

或者是 Warning,但查询依然失败。

问题可能在于从 pgvector v0.7.0 起,数据库服务器禁止再通过 SET LOCAL 或 SET 命令设置以 hnsw 为前缀的运行时参数(如 hnsw.ef_search、hnsw.max_scan_tuples)。而 FastGPT 当前版本的后端查询代码中,依然保留了这些语句,导致了查询失败。 日志

2025-08-31 05:05:02.606 UTC [39] ERROR:  invalid configuration parameter name "hnsw.max_scan_tuples"
2025-08-31 05:05:02.606 UTC [39] DETAIL:  "hnsw" is a reserved prefix.
2025-08-31 05:05:02.606 UTC [39] STATEMENT:  BEGIN;
                  SET LOCAL hnsw.ef_search = 100;
                  SET LOCAL hnsw.max_scan_tuples = 100000;
                  SET LOCAL hnsw.iterative_scan = relaxed_order;
                  WITH relaxed_results AS MATERIALIZED (
                    select id, collection_id, vector <#> ...
                  ) SELECT id, collection_id, score FROM relaxed_results ORDER BY score;
                COMMIT;

复现步骤 在该版本执行知识库搜索(工作流里失败几率非常高,知识库内搜索测试失败率低一些) 预期结果 一定概率报错 "invalid configuration parameter name"

flyhunterl avatar Aug 31 '25 05:08 flyhunterl

Image +1 在简易应用测试经常出现,概率挺高

shilin66 avatar Sep 02 '25 08:09 shilin66

没遇到过这个提示哎,用的是自己的 pg?

c121914yu avatar Sep 12 '25 05:09 c121914yu

没遇到过这个提示哎,用的是自己的 pg?

不是 就是同一个容器创建的pg

flyhunterl avatar Sep 12 '25 07:09 flyhunterl