From 431af0217a257bd002a47503ee696d3ea1756642 Mon Sep 17 00:00:00 2001 From: lacerate551 <128470311+lacerate551@users.noreply.github.com> Date: Tue, 9 Jun 2026 13:29:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(knowledge):=20list=5Fcollections=20?= =?UTF-8?q?=E6=AF=8F=E6=AC=A1=E4=BB=8E=E7=A3=81=E7=9B=98=E9=87=8D=E8=BD=BD?= =?UTF-8?q?=E5=85=83=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=20worker=20=E8=BF=94=E5=9B=9E=E6=95=B0=E9=87=8F=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GUNICORN_WORKERS=2 时各 worker 进程的 self._metadata 独立, 一个 worker 清理失效条目后保存 kb_metadata.json,另一个 worker 内存仍是旧版本,导致 /collections 返回数量波动(3 或 5)。 在 list_collections() 开头调用 _load_metadata() 重新加载, 保证每次请求基于最新的磁盘状态。 --- knowledge/collection.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/knowledge/collection.py b/knowledge/collection.py index 7ae9e5f..26b3ee1 100644 --- a/knowledge/collection.py +++ b/knowledge/collection.py @@ -348,6 +348,8 @@ class CollectionMixin: - department: 所属部门 - description: 描述 """ + # 从磁盘重新加载元数据,确保多 worker 进程间状态一致 + self._metadata = self._load_metadata() result = [] # 扫描 base_path 下的所有子目录作为向量库