gbrain 修复记录
问题
Jina AI 的 jina-embeddings-v5-text-small API key 余额不足,所有 embedding 操作返回 403 Forbidden。
解决方案
- 切换 embedding provider:
openai:jina-embeddings-v5-text-small→zeroentropyai:zembed-1 - 维度: 1024 → 2560
- Provider: ZeroEntropy (原生支持,读
ZEROENTROPY_API_KEY环境变量)
迁移步骤
- 更新
~/.gbrain/config.json: embedding_model + embedding_dimensions - 清理 wrapper 脚本中的硬编码 Jina key
- Postgres: DROP HNSW index → NULL embeddings → ALTER COLUMN TYPE → 无索引 (2560 > 2000)
gbrain embed --stale重新嵌入 18237 chunks- 同步更新 facts/query_cache/takes 表的 embedding 列
- 重启 gbrain-mcp.service
结果
- 嵌入覆盖率: 70% → 100%
- Missing embeddings: 5513 → 0
- Brain Score: 36 → 47
2026-10-09 Codex 审阅说明
“2560 维只能精确搜索”过于绝对:pgvector 的 HNSW/IVFFlat 对 vector 索引支持到 2000 维,对 halfvec 支持到 4000 维;可使用半精度存储或将原向量 cast 成 halfvec 建表达式索引。这样存在半精度精度/排序变化,查询表达式与索引须匹配。本文记录的未建索引状态保留为当时部署结果,本次未迁移数据库。
核验依据:pgvector 官方维度与半精度索引说明。