From 80d485605bcc5de35f8a42bccb643457fd14c383 Mon Sep 17 00:00:00 2001 From: cnphpbb Date: Fri, 19 Jun 2026 18:26:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(honcho):=20embedding=20=E5=8D=87=20Qwen3-8B?= =?UTF-8?q?=20=E5=B9=B6=20force=20dimensions=3D1536=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=97=A7=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - vm61 数据库 public.documents.embedding dim 是 1536(旧 OpenAI 部署遗留) - Qwen3-Embedding-8B 默认 4096 维,撞 schema 不匹配导致 honcho-api 启动失败 - 通过 SiliconFlow OpenAI 兼容 API 的 dimensions 参数强制输出 1536 - env.cfg + stack.yml + readme 全部同步更新 - docker compose config 校验通过,vm61 honcho-api /health HTTP 200 --- honcho/env.cfg.example | 7 ++++--- honcho/readme.md | 10 +++++----- honcho/stack.yml | 10 ++++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/honcho/env.cfg.example b/honcho/env.cfg.example index b220709..e17cf0a 100644 --- a/honcho/env.cfg.example +++ b/honcho/env.cfg.example @@ -49,7 +49,7 @@ HONCHO_NAMESPACE=honcho # 关闭可省 embedding 费用(但失去语义检索能力) HONCHO_EMBED_MESSAGES=true # Embedding 模型(默认走 SiliconFlow 兼容端点,独立 base URL) -HONCHO_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-0.6B +HONCHO_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B HONCHO_EMBEDDING_BASE_URL=https://api.siliconflow.cn/v1 # 替代方案 A:本地 Ollama(零成本、隐私优先) # HONCHO_EMBEDDING_MODEL=qwen3-embedding:0.6b @@ -57,8 +57,9 @@ HONCHO_EMBEDDING_BASE_URL=https://api.siliconflow.cn/v1 # EMBEDDING_API_KEY 可留空(Ollama 默认无 key;如配了 OLLAMA_API_KEY 环境变量再填) # 前置:宿主机 `ollama pull qwen3-embedding:0.6b` # docker compose 中 host.docker.internal 在 Linux compose v2 默认可用,Windows/WSL2 自动转发 -# Embedding 维度(Qwen3-Embedding-0.6B 默认 1024,必须与 DB schema 一致) -# 若 Honcho 自动推断失败,需在 stack.yml 同步设置 EMBEDDING_VECTOR_DIMENSIONS=1024 +# Embedding 维度(Qwen3-Embedding-8B 默认 4096,但通过 SiliconFlow 的 dimensions 参数强制输出 1536) +# 必须与已有 DB schema 的 public.documents.embedding dim 一致;切换模型必须先 migrate 旧数据 +# 若 Honcho 自动推断失败,需在 stack.yml 同步设置 EMBEDDING_VECTOR_DIMENSIONS=1536 # deriver 必须用支持 tool calling 的模型 HONCHO_DERIVER_MODEL=gpt-5.4-mini HONCHO_DERIVER_WORKERS=1 diff --git a/honcho/readme.md b/honcho/readme.md index a0b0545..f8e4723 100644 --- a/honcho/readme.md +++ b/honcho/readme.md @@ -37,7 +37,7 @@ flowchart TB hermes["Hermes Agent
memory.provider=honcho"] sdk["Python / TS SDK
(honcho-ai / @honcho-ai/sdk)"] tools["DBeaver / psql
PG 5432 直连"] - siliconflow["SiliconFlow
api.siliconflow.cn/v1
Qwen3-Embedding-0.6B
(云端默认)"] + siliconflow["SiliconFlow
api.siliconflow.cn/v1
Qwen3-Embedding-8B
dimensions=1536
(云端默认)"] ollama["本地 Ollama
host.docker.internal:11434
qwen3-embedding:0.6b
(备选,零成本)"] end @@ -53,8 +53,8 @@ flowchart TB api -->|:6379| redis deriver -->|:6379| redis deriver -.->|轮询
pending messages| api - api -->|HTTPS embedding
Qwen3-0.6B| siliconflow - deriver -->|HTTPS embedding
Qwen3-0.6B| siliconflow + api -->|HTTPS embedding
Qwen3-8B 1536d| siliconflow + deriver -->|HTTPS embedding
Qwen3-8B 1536d| siliconflow database --- pgdata redis --- redisdata @@ -117,7 +117,7 @@ flowchart TB | `HONCHO_AUTH_USE_AUTH` | `false` | 是否启用 JWT 鉴权(生产建议 `true`) | | `HONCHO_NAMESPACE` | `honcho` | 全局命名空间前缀 | | `HONCHO_EMBED_MESSAGES` | `true` | 是否对消息做向量化(关闭可省 embedding 费用) | -| `HONCHO_EMBEDDING_MODEL` | `Qwen/Qwen3-Embedding-0.6B` | Embedding 模型名(默认 SiliconFlow,可换本地 Ollama) | +| `HONCHO_EMBEDDING_MODEL` | `Qwen/Qwen3-Embedding-8B` | Embedding 模型名(默认 SiliconFlow,可换本地 Ollama) | | `HONCHO_EMBEDDING_BASE_URL` | `https://api.siliconflow.cn/v1` | Embedding API Base URL(OpenAI 兼容;Ollama 改 `http://host.docker.internal:11434/v1`) | | `HONCHO_DERIVER_MODEL` | `gpt-5.4-mini` | Deriver 用的 LLM 模型(必须支持 tool calling) | | `HONCHO_LLM_BASE_URL` | `https://api.openai.com/v1` | LLM API Base URL(OpenAI 兼容端点即可) | @@ -208,7 +208,7 @@ docker compose -p honcho --env-file ./honcho/env.cfg -f ./honcho/stack.yml resta | 数据卷方案 | bind 挂载到 `${Volumes_Path}/{pgdata,redis,source}` | 直观、可直接 `rsync`/`pg_dump`、跨机迁移用 `tar` 整个目录即可 | | 端口绑定 | 0.0.0.0,含 DB 5432 | PVE LAN 上其他 VM 也可访问;DB 端口暴露方便外部工具(DBeaver 等)连接 | | 认证 | 默认 `HONCHO_AUTH_USE_AUTH=false`(dev 模式) | 本地 LAN 自用,跳过 JWT 校验;公网暴露必须改 `true` | -| LLM 默认 | `gpt-5.4-mini`(主 LLM,OpenAI 兼容);embedding 默认 `Qwen/Qwen3-Embedding-0.6B` 走 SiliconFlow;**备选** 本地 Ollama `qwen3-embedding:0.6b`(零成本、隐私优先) | LLM 走 OpenAI 兼容;embedding 双轨:SiliconFlow(云端,独立 base URL) / Ollama(本地 `host.docker.internal:11434/v1`) | +| LLM 默认 | `gpt-5.4-mini`(主 LLM,OpenAI 兼容);embedding 默认 `Qwen/Qwen3-Embedding-8B`(dimensions=1536 强制输出,兼容已有 1536 维 schema)走 SiliconFlow;**备选** 本地 Ollama `qwen3-embedding:0.6b`(零成本、隐私优先) | LLM 走 OpenAI 兼容;embedding 双轨:SiliconFlow(云端,独立 base URL) / Ollama(本地 `host.docker.internal:11434/v1`) | | Honcho 版本 | 默认 `main`(源码 build),可锁 tag 如 `v3.0.10` | 当前最新稳定版 v3.0.x,支持 peer card、dialectic、dream consolidation | | deriver 必须 | api + deriver 双容器 | deriver 是后台推理 worker,没它记忆功能不工作 | | PG 认证 | `scram-sha-256` | 比 md5 更安全,`POSTGRES_INITDB_ARGS` 同步设置 `--auth-host` | diff --git a/honcho/stack.yml b/honcho/stack.yml index 17b671c..9541eab 100644 --- a/honcho/stack.yml +++ b/honcho/stack.yml @@ -42,9 +42,10 @@ services: - NAMESPACE=${HONCHO_NAMESPACE:-honcho} - EMBED_MESSAGES=${HONCHO_EMBED_MESSAGES:-true} - EMBEDDING_MODEL_CONFIG__TRANSPORT=openai - - EMBEDDING_MODEL_CONFIG__MODEL=${HONCHO_EMBEDDING_MODEL:-Qwen/Qwen3-Embedding-0.6B} + - EMBEDDING_MODEL_CONFIG__MODEL=${HONCHO_EMBEDDING_MODEL:-Qwen/Qwen3-Embedding-8B} - EMBEDDING_MODEL_CONFIG__OVERRIDES__BASE_URL=${HONCHO_EMBEDDING_BASE_URL:-https://api.siliconflow.cn/v1} - - EMBEDDING_VECTOR_DIMENSIONS=1024 + - EMBEDDING_MODEL_CONFIG__OVERRIDES__DIMENSIONS=1536 + - EMBEDDING_VECTOR_DIMENSIONS=1536 - EMBEDDING_API_KEY=${HONCHO_EMBEDDING_API_KEY:-} - DERIVER_MODEL_CONFIG__TRANSPORT=openai - DERIVER_MODEL_CONFIG__MODEL=${HONCHO_DERIVER_MODEL:-gpt-4o-mini} @@ -95,9 +96,10 @@ services: - DERIVER_MODEL_CONFIG__MODEL=${HONCHO_DERIVER_MODEL:-gpt-5.4-mini} - DERIVER_WORKERS=${HONCHO_DERIVER_WORKERS:-1} - EMBEDDING_MODEL_CONFIG__TRANSPORT=openai - - EMBEDDING_MODEL_CONFIG__MODEL=${HONCHO_EMBEDDING_MODEL:-Qwen/Qwen3-Embedding-0.6B} + - EMBEDDING_MODEL_CONFIG__MODEL=${HONCHO_EMBEDDING_MODEL:-Qwen/Qwen3-Embedding-8B} - EMBEDDING_MODEL_CONFIG__OVERRIDES__BASE_URL=${HONCHO_EMBEDDING_BASE_URL:-https://api.siliconflow.cn/v1} - - EMBEDDING_VECTOR_DIMENSIONS=1024 + - EMBEDDING_MODEL_CONFIG__OVERRIDES__DIMENSIONS=1536 + - EMBEDDING_VECTOR_DIMENSIONS=1536 - LLM_OPENAI_API_KEY=${HONCHO_LLM_API_KEY:?set HONCHO_LLM_API_KEY} - EMBEDDING_API_KEY=${HONCHO_EMBEDDING_API_KEY:-} - MODEL_CONFIG__OVERRIDES__BASE_URL=${HONCHO_LLM_BASE_URL:-https://api.openai.com/v1}