主题
模型服务商
为 OpenWiki 配置推理服务商和凭据
OpenWiki 支持以下服务商:
| 服务商 | 凭据 | 备注 |
|---|---|---|
openai | OPENAI_API_KEY | 可选 OPENAI_BASE_URL,用于暴露 Responses API 的 OpenAI 兼容网关 |
openai-chatgpt | ChatGPT OAuth token | 使用 ChatGPT 登录;用量会占用 Plus/Pro/Team 的 Codex 额度 |
copilot | GitHub CLI 会话或 COPILOT_API_KEY | 可选 COPILOT_BASE_URL。CI 需要 OAuth token,而不是经典 PAT |
openrouter | OPENROUTER_API_KEY | 可选 OPENWIKI_OPENROUTER_PROVIDER_ONLY 允许列表 |
anthropic | ANTHROPIC_API_KEY | 可选 ANTHROPIC_BASE_URL |
gemini | GEMINI_API_KEY | Google AI Studio |
gemini-enterprise | Google ADC + GOOGLE_CLOUD_PROJECT | 可选 GOOGLE_CLOUD_LOCATION(默认为 global) |
bedrock | AWS 凭据 + 区域 | 显式的 Bedrock 密钥或 AWS SDK 默认链 |
baseten | BASETEN_API_KEY | 可选 BASETEN_BASE_URL |
fireworks | FIREWORKS_API_KEY | 可选 FIREWORKS_BASE_URL |
nebius | NEBIUS_API_KEY | Nebius Token Factory |
nvidia | NVIDIA_API_KEY | 可选 NVIDIA_BASE_URL |
openai-compatible | OPENAI_COMPATIBLE_API_KEY | 需要 OPENAI_COMPATIBLE_BASE_URL 和自定义模型 ID |
凭据和默认值存储在 ~/.openwiki/.env 中。进程环境变量的值优先于文件中的值。
你可以使用以下方式设置活动服务商和模型:
bash
OPENWIKI_PROVIDER=openai
OPENWIKI_MODEL_ID=gpt-5.6-terra服务商重试
在第一次服务商请求之后覆盖重试次数:
bash
OPENWIKI_PROVIDER_RETRY_ATTEMPTS=3该值必须是正整数。如果未设置,OpenWiki 默认为 3 次重试。
输出 token 限制
OPENWIKI_MAX_OUTPUT_TOKENS 是对每次请求输出预算的可选覆盖。设置时,它必须是正整数。OpenWiki 会将其映射到活动服务商的请求形式:
maxOutputTokens:geminimaxTokens:anthropic、openai、openai-compatible、openrouter、bedrock、Gemini Enterprise 的非 Google 界面、openai-chatgpt和copilot
未设置时,OpenWiki 会保留各服务商 SDK 的默认值,以下内置上限除外:
- Anthropic:现代 Claude 4 和 5 模型默认使用
16384个 token,因为较旧的 LangChain 元数据否则会将较新的 Claude 别名限制为4096 - Bedrock:默认为
16000个 token。当某个模型支持更低的上限时,可用OPENWIKI_BEDROCK_MAX_TOKENS覆盖
要在这些服务商中无论哪个处于活动状态时都设置同一个限制,请设置:
bash
OPENWIKI_MAX_OUTPUT_TOKENS=16384默认情况下,OpenRouter 不发送 max_tokens,因此额度预检查会按模型公布的最大输出上限来预留预算,余额较低时可能会以 402 错误失败。在 OpenRouter 运行中,OPENWIKI_OPENROUTER_MAX_TOKENS 优先于 OPENWIKI_MAX_OUTPUT_TOKENS,你可以使用以下方式设置 token 限制:
bash
OPENWIKI_OPENROUTER_MAX_TOKENS=8192使用限制意味着你不再遇到 402 失败,而是可能在长文本生成时出现截断,因此请尽量选择你的余额允许的最大值。
推理强度
OPENWIKI_REASONING_EFFORT 是面向声明支持推理的模型的可选全局设置。
bash
OPENWIKI_REASONING_EFFORT=high将其保留为未设置可保留服务商默认值。无效的服务商、模型或强度组合会在发送请求之前失败。当活动服务商和模型不支持时,继承的值也会失败。
| 服务商 | 模型 | 支持的值 | 请求映射 |
|---|---|---|---|
openai | gpt-5.6-terra, gpt-5.6-luna, gpt-5.6-sol | none, low, medium, high, xhigh, max | Responses API reasoning.effort |
openai-chatgpt | gpt-5.6-terra, gpt-5.6-luna, gpt-5.6-sol | none, low, medium, high, xhigh, max | Responses API reasoning.effort |
nvidia | nvidia/nemotron-3-super-120b-a12b | none, low, high | Chat Completions reasoning_effort |
所有其他服务商和模型组合(包括 OpenRouter)都不提供推理强度选择。
在交互式聊天中,使用 /effort 选择一个可用的值,或使用 /effort default 恢复服务商默认值。
GitHub Copilot
要使用 GitHub Copilot:
- 在
openwiki --init期间选择 GitHub Copilot。如果你有活动的 GitHub CLI 会话,OpenWiki 可以复用它。否则,在凭据提示处运行gh auth login。 - 选择一个模型(例如
gpt-5.5)。
OpenWiki 会将 GitHub CLI token 保留在 GitHub CLI 凭据存储中。它不会将该 token 复制到 ~/.openwiki/.env。对于没有 GitHub CLI 会话的 CI 或无头环境,请将 COPILOT_API_KEY 设置为 GitHub OAuth token。Copilot API 会拒绝第三方集成使用个人访问令牌(经典或细粒度)。
bash
OPENWIKI_PROVIDER=copilot
OPENWIKI_MODEL_ID=gpt-5.5OpenAI(ChatGPT 登录)
openai-chatgpt 服务商使用你的 ChatGPT 订阅(而不是按量计费的 API 密钥)调用 OpenAI 的 Codex 后端:
bash
OPENWIKI_PROVIDER=openai-chatgpt openwiki code --init向导会在你的浏览器中打开 OpenAI 认证页面(并打印 URL 以供无头使用)。登录后,OpenWiki 会将托管的 OAuth token 存储在 ~/.openwiki/.env 中,并自动刷新访问 token。请像对待密码一样对待刷新 token。
Gemini Enterprise Agent Platform
gemini-enterprise 服务商使用 Google 应用默认凭据。无需 API 密钥:
bash
OPENWIKI_PROVIDER=gemini-enterprise
GOOGLE_CLOUD_PROJECT=your-gcp-project
GOOGLE_CLOUD_LOCATION=global这些凭据需要 Gemini Enterprise Agent Platform 访问权限(roles/aiplatform.user),且你使用的模型必须在 Model Garden 中启用。合作伙伴/开放权重(MaaS)模型是区域特定的,因此在使用它们时请显式设置 GOOGLE_CLOUD_LOCATION。
AWS Bedrock
bash
OPENWIKI_PROVIDER=bedrock
BEDROCK_AWS_ACCESS_KEY_ID=your-access-key-id
BEDROCK_AWS_SECRET_ACCESS_KEY=your-secret-access-key
BEDROCK_AWS_REGION=us-east-1
OPENWIKI_MODEL_ID=anthropic.claude-sonnet-5当未设置显式的 Bedrock 凭据时,OpenWiki 会使用 AWS SDK 默认凭据提供程序链。请直接粘贴 Bedrock 模型 ID。某些较新的模型需要跨区域推理配置文件 ID(例如 us.anthropic.claude-sonnet-5),而不是裸模型 ID。
当既未设置 OPENWIKI_MAX_OUTPUT_TOKENS 也未设置 OPENWIKI_BEDROCK_MAX_TOKENS 时,Bedrock 默认将输出上限设为 16000 个 token。如果没有显式限制,Converse API 会将输出限制在 4096 个 token,并可能截断较长的 wiki 页面。
对于 Bedrock 的流式传输空闲超时,请以毫秒为单位设置 OPENWIKI_STREAM_IDLE_TIMEOUT(取值是 0 到 2147483647 之间的整数)。将其设为 0 可禁用看门狗。如果不设置,OpenWiki 会保留 @langchain/aws 服务商的默认值。
OpenAI 兼容端点
对于暴露 OpenAI 兼容聊天补全(chat completions)的网关或本地服务器,请使用 openai-compatible 服务商:
bash
OPENWIKI_PROVIDER=openai-compatible
OPENAI_COMPATIBLE_API_KEY=your-gateway-key
OPENAI_COMPATIBLE_BASE_URL=https://your-gateway.example.com/v1
OPENWIKI_MODEL_ID=your-gateway-model-nameOllama(http://localhost:11434/v1)和 LM Studio(http://localhost:1234/v1)等本地示例都采用相同的模式。即使本地服务器会忽略密钥值,OpenWiki 仍然要求提供 OPENAI_COMPATIBLE_API_KEY。
OpenWiki 在内部发送非流式请求,即使你并未在终端中观察实时输出也是如此。有些网关只接受流式请求,即模型通过一条打开的连接分块返回输出。当 OpenWiki 以非流式请求访问这类网关时,网关可能拒绝该调用,或返回 HTTP 200 但内容为空。出现空白 wiki 且没有任何错误,通常意味着你需要启用流式传输。
当你的网关需要时,为 openai-compatible 服务商启用流式传输:
bash
OPENWIKI_OPENAI_COMPATIBLE_STREAMING=true流式传输默认保持关闭,因为该服务商可以指向任意的第三方端点,而流式传输在这些端点经过代理和负载均衡器时并不能保证正常工作。启用它还会使客户端报告估算的 token 数量,而非服务器报告的数量。
要让 openai-compatible 服务商改用 Responses API 而非聊天补全:
bash
OPENWIKI_OPENAI_COMPATIBLE_USE_RESPONSES_API=trueOpenRouter 服务商固定
当 OpenRouter 通过多个上游服务商提供某个模型时,可限制路由:
bash
OPENWIKI_PROVIDER=openrouter
OPENROUTER_API_KEY=your-key
OPENWIKI_OPENROUTER_PROVIDER_ONLY=Novita