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