尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OpenClaude 接入 LiteLLM 网关:通过 OpenAI 兼容代理统一路由 100+ 模型提供商的完整配置指南

OpenClaude 接入 LiteLLM 网关:通过 OpenAI 兼容代理统一路由 100+ 模型提供商的完整配置指南 OpenClaude 接入 LiteLLM 网关通过 OpenAI 兼容代理统一路由 100 模型提供商的完整配置指南【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude导读本文讲解如何在 OpenClaude 中接入 LiteLLM —— 一个开源的 LLM 网关为 100 模型提供商提供统一 API。你将学会部署 LiteLLM Proxy、用litellm_config.yaml配置模型别名、通过环境变量或/provider交互流程把 OpenClaude 指向 LiteLLM以及利用 LiteLLM 的模型元数据与 OpenClaude 的上下文窗口发现机制实现多提供商模型的无缝切换与正确的上下文预算管理。概览为什么用 LiteLLM 作为 OpenClaude 的中继LiteLLM 是一个开源 LLM 网关通过运行 LiteLLM Proxy可以把来自多个提供商的模型OpenAI、Anthropic、Google Gemini、DeepSeek、Together AI 等统一暴露为一个 OpenAI 兼容的 API 端点。OpenClaude 走的是既有的 OpenAI 兼容提供商路径CLAUDE_CODE_USE_OPENAI1因此无需自定义请求格式转换——LiteLLM 的/v1端点接受与 OpenAI 相同的请求格式OpenClaude 可以直接对接。从源码结构看OpenClaude 对这类场景内置了完整的支持链环境变量路由解析在 src/utils/providerProfiles.ts 中实现CLAUDE_CODE_USE_OPENAI是使用 OpenAI 兼容端点的开关模型目录发现与上下文窗口解析在 src/integrations/gateways/custom.ts 和 src/utils/model/openaiModelDiscovery.ts 中实现可直接从 LiteLLM 的/v1/models拉取模型列表与上下文信息运行时限制覆盖上下文窗口、最大输出 token在 src/utils/model/openaiContextWindows.ts 中实现。这意味着你把 LiteLLM 指向哪里OpenClaude 就能从哪里发现模型、按正确的上下文窗口做预算。前提条件LiteLLM 已安装pip install litellm[proxy]一份litellm_config.yaml或等价的 LiteLLM 配置LiteLLM Proxy 已在本地或远程端口运行。1. 启动 LiteLLM Proxy安装pip install litellm[proxy]配置 LiteLLM创建litellm_config.yaml声明你想要的模型别名。关键点是model_name是别名对 OpenClaude 可见的名字而litellm_params.model是上游真实模型 IDmodel_list: - model_name: gpt-4o litellm_params: model: openai/gpt-4o api_key: os.environ/OPENAI_API_KEY - model_name: claude-sonnet-4 litellm_params: model: anthropic/claude-sonnet-4-5-20250929 api_key: os.environ/ANTHROPIC_API_KEY - model_name: gemini-2.5-flash litellm_params: model: gemini/gemini-2.5-flash api_key: os.environ/GEMINI_API_KEY - model_name: llama-3.3-70b litellm_params: model: together_ai/meta-llama/Llama-3.3-70B-Instruct-Turbo api_key: os.environ/TOGETHER_API_KEY model_info: context_length: 131072配置说明api_key: os.environ/VAR是 LiteLLM 的引用语法实际密钥从 LiteLLM Proxy 进程的环境变量中读取不要明文写在配置文件里model_info.context_length是可选但推荐的元数据它会被 LiteLLM 通过/v1/models暴露给下游客户端OpenClaude 会读取它做上下文预算详见下文上下文窗口检测小节上游密钥OPENAI_API_KEY、ANTHROPIC_API_KEY等必须存在于运行litellm命令的进程环境中否则对应模型请求会报上游认证错误。运行 Proxylitellm --config litellm_config.yaml --port 4000默认情况下 Proxy 会监听http://localhost:4000OpenAI 兼容端点位于http://localhost:4000/v1。2. 把 OpenClaude 指向 LiteLLM方式 A环境变量export CLAUDE_CODE_USE_OPENAI1 export OPENAI_BASE_URLhttp://localhost:4000/v1 export OPENAI_API_KEYyour-master-key-or-placeholder export OPENAI_MODELyour-litellm-model-alias openclaude把your-litellm-model-alias替换为litellm_config.yaml中定义的别名如gpt-4o、claude-sonnet-4、gemini-2.5-flash。两个细节值得注意OPENAI_API_KEY可以省略如果本地 Proxy 未开启认证手动配置环境变量时可以省略OPENAI_API_KEYCLAUDE_CODE_USE_OPENAI单独使用无效从 src/utils/providerProfiles.ts 的hasCompleteProviderSelection逻辑可以看到一个完整的显式提供商选择 USE 开关 至少一个具体配置值base URL 或 model。仅有CLAUDE_CODE_USE_OPENAI1而没有OPENAI_BASE_URL/OPENAI_API_BASE/OPENAI_MODEL中的任何一个会被视为过期的 shell 导出stale export启动时会跳过它、回落到已保存的活跃 profile——这正是我保存的提供商没被采用一类问题的根源。方式 B通过/provider交互流程运行openclaude输入/provider打开提供商设置流程选择OpenAI-compatible选项提示输入 API key 时输入你的 LiteLLM Proxy 要求的 key。即使本地 LiteLLM 未开启认证也可能需要输入一个占位值因为引导流程期望一个非空值提示输入 base URL 时输入http://localhost:4000/v1提示输入模型时输入你配置的 LiteLLM 模型名或别名保存提供商配置。从 src/components/ProviderManager.tsx 与 src/commands/provider/provider.tsx 的测试可以看到该流程保存的 profile 会被持久化并在启动时与环境变量做对齐比对isProcessEnvAlignedWithProfile见 src/utils/providerProfiles.ts。3. LiteLLM 配置示例多提供商路由 花费追踪model_list: - model_name: gpt-4o litellm_params: model: openai/gpt-4o api_key: os.environ/OPENAI_API_KEY - model_name: claude-sonnet-4 litellm_params: model: anthropic/claude-sonnet-4-5-20250929 api_key: os.environ/ANTHROPIC_API_KEY - model_name: deepseek-chat litellm_params: model: deepseek/deepseek-chat api_key: os.environ/DEEPSEEK_API_KEY litellm_settings: set_verbose: false num_retries: 3litellm_settings.num_retries让 LiteLLM 在失败时自动重试set_verbose: false关闭冗长日志。这样 OpenClaude 只需维护一份配置即可在多个上游模型间路由花费统计由 LiteLLM 侧完成。带 master key 认证# 以 master key 启动 Proxy litellm --config litellm_config.yaml --port 4000 --master_key sk-my-master-key # 连接 OpenClaude export CLAUDE_CODE_USE_OPENAI1 export OPENAI_BASE_URLhttp://localhost:4000/v1 export OPENAI_API_KEYsk-my-master-key export OPENAI_MODELgpt-4o openclaude4. 注意事项OPENAI_MODEL必须匹配litellm_config.yaml中定义的LiteLLM 模型别名而不是上游提供商的原始模型名如果 Proxy 要求认证请在OPENAI_API_KEY中填入 Proxy 的 key或master_keyLiteLLM 的 OpenAI 兼容端点接受与 OpenAI 相同的请求格式因此 OpenClaude 无需自定义请求整形OpenClaude 从/v1/models发现 LiteLLM 模型上下文——当 LiteLLM 暴露context_length、context_window、max_model_len或max_input_tokens含model_info下的字段时会被识别通过修改OPENAI_MODEL的值可以在 LiteLLM 配置的任何提供商之间切换无需重新配置 OpenClaude。上下文窗口检测从元数据到/context预算LiteLLM 自定义别名默认可能沿用 OpenClaude 的保守兜底值导致大窗口模型被低估。修复方式是给每个模型条目补充上下文元数据model_list: - model_name: long-context-model litellm_params: model: openai/gpt-4.1 api_key: os.environ/OPENAI_API_KEY model_info: context_length: 1000000 max_input_tokens: 1000000启动后的发现阶段完成后/context会用该值做上下文预算。如果 Proxy 没有从/v1/models暴露上下文元数据可以在启动前设置显式覆盖export CLAUDE_CODE_OPENAI_CONTEXT_WINDOWS{long-context-model:1000000}底层原理OpenClaude 如何解析上下文从源码看这条链路有三个层次模型发现catalog discoverysrc/integrations/gateways/custom.ts 中Custom (OpenAI-compatible)网关的mapModel按优先级读取顶层字段与model_info子对象中的context_length、context_window、max_model_len、max_input_tokens并把命中值映射为contextWindow。发现结果会被缓存discoveryCacheTtl: 1d刷新模式为startupdiscoveryRefreshMode: startup也可手动刷新。对应的测试覆盖见 src/integrations/gateways/custom.test.ts。模型列表获取src/utils/model/openaiModelDiscovery.ts 的discoverOpenAICompatibleModelOptions会请求{baseUrl}/v1/models请求超时 5 秒失败时记录调试日志并返回空数组若 OpenAI 列表为空还会回退尝试 Ollama 的/api/tags。base URL 取自OPENAI_BASE_URL或OPENAI_API_BASE缺省为https://api.openai.com/v1。运行时限制覆盖src/utils/model/openaiContextWindows.ts 实现了CLAUDE_CODE_OPENAI_CONTEXT_WINDOWS与CLAUDE_CODE_OPENAI_MAX_OUTPUT_TOKENS两个 JSON 环境变量的解析匹配优先级从高到低为host:model精确匹配 → 裸模型名精确匹配 →host:model前缀匹配 → 裸模型名前缀匹配并且支持大小写不敏感的 key 归一化。除环境变量外还可以在settings.json的modelLimits中配置contextWindow/maxOutputTokens最终优先级由 src/integrations/runtimeMetadata.ts 中的resolveModelRuntimeLimits统一裁决精确环境变量覆盖 → catalog/发现缓存 → 前缀环境变量覆盖 → settingsmodelLimits→ 描述符默认值。因此CLAUDE_CODE_OPENAI_CONTEXT_WINDOWS是当 LiteLLM 侧元数据缺失时最直接的兜底手段它的 JSON 值必须形如{别名: 窗口大小}非正整数、非法 JSON 会被静默忽略。5. 故障排查问题可能原因修复404 或 Model Not Found模型别名在 LiteLLM 配置中不存在核对litellm_config.yaml中的model_name与OPENAI_MODEL一致Connection RefusedLiteLLM Proxy 未运行用litellm --config litellm_config.yaml --port 4000启动 ProxyAuth Failedmaster_key缺失或错误在OPENAI_API_KEY中设置正确的 key/context对大模型仍显示 128KLiteLLM 未为别名暴露上下文元数据或启动发现未刷新在 LiteLLM 配置中补充model_info.context_length或model_info.max_input_tokens重启 Proxy 后重启 OpenClaude必要时用CLAUDE_CODE_OPENAI_CONTEXT_WINDOWS显式覆盖上游提供商错误后端提供商 key 缺失或无效确保上游 API key如OPENAI_API_KEY已在 LiteLLM Proxy 进程环境中设置工具调用失败但纯聊天正常所选模型函数/工具调用能力弱切换到工具支持强的模型如 GPT-4o、Claude Sonnet6. 延伸阅读仓库内资源官方文档入口docs/README 首页架构说明见 docs/architecture/integrations.mdOpenAI 兼容端点实现src/services/api/openaiShim.ts网关注册与路由解析src/integrations/index.ts、src/integrations/routeMetadata.ts环境变量与 profile 对齐逻辑src/utils/providerProfiles.ts、src/utils/envProviderOption.ts。【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表