gbrain 修复记录

问题

Jina AI 的 jina-embeddings-v5-text-small API key 余额不足,所有 embedding 操作返回 403 Forbidden。

解决方案

  1. 切换 embedding provider: openai:jina-embeddings-v5-text-small → zeroentropyai:zembed-1
  2. 维度: 1024 → 2560
  3. Provider: ZeroEntropy (原生支持,读 ZEROENTROPY_API_KEY 环境变量)

迁移步骤

  1. 更新 ~/.gbrain/config.json: embedding_model + embedding_dimensions
  2. 清理 wrapper 脚本中的硬编码 Jina key
  3. Postgres: DROP HNSW index → NULL embeddings → ALTER COLUMN TYPE → 无索引 (2560 > 2000)
  4. gbrain embed --stale 重新嵌入 18237 chunks
  5. 同步更新 facts/query_cache/takes 表的 embedding 列
  6. 重启 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 官方维度与半精度索引说明。