跳到正文
曾亮懿 ZengLiangYi Blog

配置 Embedding:按检索样本选模型并验证重建

检查向量模型的任务支持、实际输入和索引兼容性,用已知笔记与无答案查询验收配置及模型切换。

曾亮懿

曾亮懿

阅读约 3 分钟
目录 展开 收起

向量维度不能单独决定检索质量,模型名称相同也不能单独证明已有向量与新查询仍兼容。先确认任务、实际输入和测试样本,再配置并检查索引状态。

本文按 ChatCrystal 提交 7642768 说明配置与切换。它不提供未经实测的星级、价格表或“某个维度一定够用”的结论。

检查任务能力和运行边界

提供方注册表 为 Ollama、OpenAI、Google、Azure 和 Custom 提供向量工厂;Anthropic、OrcaRouter 注册项没有这条路径。支持工厂仍需配合实际可用的向量模型,不能填入任意生成模型名称。

本地默认示例是 nomic-embed-text;OpenAI 的请求结构可参考 官方 Embedding 指南。选择时比较目标语言、技术术语、输入长度、响应稳定性、数据发送路径和资源用量。费用与模型可用性在使用时重新核对,不从“云端”或“本地”标签推导精度与成本。

理解应用实际送入的文本

向量服务 拼接标题、摘要、结论、标签和代码描述。手动笔记与 Agent 写回还可加入代码证据、根因、处理方案、错误特征和文件等字段。不能概括成“所有来源一律不包含代码正文”。

代码使用 500 字符作为段落分组目标,不是每块严格的最大长度:单个长段落不会在这里硬切成 500 字符。字符也不等于 token,需检查实际模型的输入限制。字段拼接的顺序不表示实现了可量化的字段权重。

从一个可检查的配置开始

默认本机连接上的本地例子如下;若已有向量或活动任务,先阅读确认提示,不要直接绕过:

crystal config set embedding.provider ollama
crystal config set embedding.baseURL http://localhost:11434
crystal config set embedding.model nomic-embed-text
crystal config get
crystal config test

模型必须已经下载,服务必须可访问。Ollama 适配器会追加 /v1,这里使用根地址。环境变量提供默认值,已有保存配置可覆盖它们;以 get 的实际值和向量测试结果为准。

切换模型时区分清空与生成

配置路由 对部分变更给出确认要求。确认 provider 或 model 变更后,清空已有向量与索引,将笔记标为 pending;这不自动安排重建任务。先备份并确认新配置可用,再提交:

curl --request POST http://localhost:3721/api/embeddings/batch
curl http://localhost:3721/api/queue/status

批量接口只选择 pending、failed、syncing 的笔记,并跳过已有活动任务。queued 是入队数,不是成功数;不能用空队列代替笔记状态核验。详情与状态命令见 两类模型与重建验收。

仅删除 vectra-index 目录不会把 done 笔记改为待处理,随后批量请求可能入队零条。地址、模型同名版本或输入策略变更也不一定触发配置路由的清空条件。需要重新生成单篇时,笔记接口提供同步处理入口,替换实际笔记 ID 后使用:

POST http://localhost:3721/api/notes/<note-id>/embed

这是重新生成向量,不是重写笔记正文。生产库操作前确认任务与备份,完整核对受影响的笔记范围。

用自己的问题验收

准备已知答案、同义表述、精确错误名和无答案查询,记录目标笔记是否出现、返回顺序、误匹配与响应失败。笔记状态为 done 后,再读取结果正文和适用条件。

更高维度可能增加存储和计算,但不能据此认定更准确。对同一组笔记与查询比较结果,才能解释本次配置是否适合知识库。检索请求与评分边界见 语义搜索流程,本地服务验收见 Ollama 流程。

分享:

相关文章

Embedding 横评方法:固定笔记与查询,比较实际命中

用人工标注的查询和独立索引比较本地与云端 Embedding,核对重建状态、命中质量和资源成本。

曾亮懿 曾亮懿
阅读约 3 分钟
#ChatCrystal #Embedding #评测

AI 对话格式差异:事件、快照与跨库消息定位

对照五个固定适配器,区分 JSONL 容器、事件语义与 SQLite 键布局,用两个内存数据库观察消息索引、孤立数据和未知版本。

曾亮懿 曾亮懿
阅读约 4 分钟
#ChatCrystal #Node.js #SQLite

AI 对话管理方案:四种存储路径与迁移验收

比较 Claude Code、Cursor、Copilot、Trae 的固定适配器输入,区分原始副本、可读导出与知识库,并用合成清单验证身份和信息保留。

曾亮懿 曾亮懿
阅读约 4 分钟
#ChatCrystal #Node.js #SQLite

从文章到代码

到我的 GitHub 看看 ChatCrystal、开发者工具和日常学习记录,欢迎交流实现细节。