从本地模型切换到远端服务,不能只改一个 provider 名称。旧地址、旧模型或已保存的密钥仍可能留在配置中;请求能返回一句话,也不代表真实会话能生成合格笔记。
本文按 ChatCrystal 提供方注册表 提交 7642768 说明配置。选型没有跨模型实测排名,也不沿用固定的单条笔记费用估算;模型可用性、价格与账户额度应在使用时核对。
先确认应用选择了哪条调用路径
当前注册表包括 ollama、openai、orcarouter、anthropic、google、azure、custom。其中远端生成的路径各有区别:
- OpenAI 使用对应 SDK 工厂,传入地址、密钥和模型,不应假定所有生成都调用 Chat Completions。
- Anthropic、Google 使用各自原生工厂;本版本这两条生成路径传入密钥和模型,没有使用应用的
baseURL字段覆盖地址。 - Azure 使用 Azure 工厂,需要把地址与模型标识对应到所用 SDK 和实际部署,不能直接把资源主页当作任意调用的完整接口前缀。
- Custom 使用 OpenAI 工厂的默认模型调用路径。某个网关只兼容 Chat Completions,不足以证明它兼容这条路径和结构化输出。
- OrcaRouter 使用注册表中的固定网关地址;本版本不通过配置的
baseURL改写它。
这些是当前应用的能力,不是对供应商所有产品的评价。Anthropic、OrcaRouter 注册项没有向量工厂;检索需另选支持 Embedding 的配置,见 两类模型职责。
切换时同时检查地址与模型
例如选择 OpenAI 原生服务,默认本机连接上的非敏感设置可以这样更新:
crystal config set llm.provider openai
crystal config set llm.baseURL https://api.openai.com/v1
再填写当前账户实际可用的模型 ID 与服务端密钥。模型设置的命令形状如下,尖括号部分必须替换:
crystal config set llm.model <available-model-id>
OpenAI 官方 API 说明描述了认证与服务端凭证要求,接口例子见 官方入门文档。不要把密钥写入公开文章、浏览器代码或仓库。若已有可用的桌面或前端设置入口,可以在那里配置;npm CLI 包与界面产物的区别见 入门指南。
切换到 Anthropic 或 Google 时,同样更新 llm.provider、llm.model 与 llm.apiKey,使用对应服务的真实标识。对 Azure 和 Custom,额外核对实际调用地址与 SDK 协议。不要依赖一份通用模型名称表保证账户可访问。
核对最终加载的配置
配置实现 使用环境变量提供默认值,已保存的模型配置随后覆盖它们。为首次启动设置 LLM_PROVIDER、LLM_MODEL、LLM_API_KEY、LLM_BASE_URL,不等于覆盖已有 config.json。
crystal config get
crystal config test
检查实际 provider、model、baseURL 与密钥是否已设置。原生工厂没有使用的地址字段即使显示存在,也不能据此判断请求发往那里;要结合注册表读取。配置文件中的凭证也不因界面只显示“已设置”而变成加密存储。
把短测试与业务验收分开
连接测试分别请求简短生成与向量,需读取每项结果。HTTP 或命令退出成功不能替代 connected 状态;授权、地址、模型访问、超时等错误应按实际信息定位。
然后选一条非演示的真实会话,核对输入长度、生成的标题摘要、关键结论与适用条件。能输出短文本的模型仍可能无法处理长输入或所需结构。摘要、关系发现和向量请求也会分别产生用量,不应只凭笔记数量推算费用。
说明切换的影响与数据流
只改变生成配置通常不要求重新导入历史,但已有笔记不会因此自动改写;再次 summarize 已有笔记也可能直接返回原 ID。配置变更时若有任务运行,应用会给出确认提示;先读提示,而不是机械追加 --confirm。
远端生成会接收为该任务准备的材料。即使 Embedding 留在本机,也不代表摘要与关系发现的数据不出机器。按照 数据边界说明 检查实际路径,再用 找回调试方案 验证笔记是否真正可用。