Skip to content

[Feature]: 增加 LiteLLM Gateway 一等预设 / Add a first-class LiteLLM gateway preset #208

Closed

Description

@Sun-sunshine06

[Feature]: 增加 LiteLLM Gateway 一等预设 / Add a first-class LiteLLM gateway preset

Problem / pain point / 问题

LiteLLM 是很常见的 LLM gateway / proxy 方案。现在 Open CoDesign 虽然能通过 generic custom provider 接 LiteLLM,但体验仍然太手工:

  • 用户需要自己判断该选什么 wire
  • keyless 与 proxy-key 场景不够清晰
  • diagnostics 不是 LiteLLM-aware
  • 虽然能用,但不是“官方支持感”的路径

LiteLLM can already work through generic custom-provider flows, but the setup is too manual and not clearly first-class.

Proposed solution / 方案

在 Settings / onboarding 中增加 LiteLLM Gateway 预设:

  • 提供默认 wire 和 base URL 指引
  • 支持 proxy key 与 keyless / IP allowlist 部署
  • 给出 LiteLLM-specific 帮助文案
  • 与 diagnostics 和 model discovery 集成

This does not bundle LiteLLM. It only improves support for externally hosted LiteLLM gateways.

Alternatives considered / 备选方案

  • 继续让用户使用 custom provider
    • 成本高,易出错
  • 把 LiteLLM 打包进应用
    • 违反项目约束与架构方向

Scope / 范围

Provider / model

Acceptance criteria / 验收标准

  • 可直接添加 LiteLLM Gateway 预设,无需手工配置 custom provider
  • 支持 proxy key 与 keyless 两种部署
  • diagnostics 提供 LiteLLM 相关提示
  • 模型发现可在支持时通过 gateway 正常工作
  • 保持 BYOK / local-first 约束不变

Likely touchpoints / 可能涉及

  • provider presets / onboarding UI
  • apps/desktop/src/main/connection-ipc.ts
  • apps/desktop/src/main/provider-settings.ts
  • shared provider config schema

Activity

  1. Sun-sunshine06 commented on Apr 23, 2026

    @Sun-sunshine06
    CollaboratorAuthor

    Parent epic / 所属总 issue: #214

  2. github-actions commented on Apr 23, 2026

    @github-actions
    Contributor

    感谢反馈,这个方向和当前代码现状是对得上的。

    从当前仓库代码看,LiteLLM 现在确实只能走通用 OpenAI-compatible / custom provider 路径,暂时没有 LiteLLM Gateway 的一等预设,也没有 LiteLLM 专属 diagnostics 文案。Open CoDesign 已经有通用 OpenAI-compatible relay、模型发现和部分 keyless gateway 的底层支持,但这些能力目前仍分散在 generic custom-provider 流程里。项目现在还在 v0.1.3 的 pre-alpha 阶段,README 里的 roadmap 也明确把 provider / API config polish、custom providers 和 connection diagnostics 继续列为进行中。

    Relevant code:

    • README.md:52 — README 明确宣称支持 “any OpenAI-compatible endpoint”
    • README.md:221 — README 写明支持 keyless / IP-allowlisted proxies
    • README.md:250 — 当前仍在 v0.1.3,provider/API config polish 与 custom providers / diagnostics 还在 roadmap 中
    • packages/shared/src/config.ts:19 — 内建 onboarding provider 目前只有 anthropic、openai、openrouter、ollama
    • apps/desktop/src/renderer/src/components/Settings.tsx:2646 — “Add provider” 菜单目前只有 Codex、Claude Code、Ollama、Custom、CLIProxyAPI,没有 LiteLLM 项
    • packages/shared/src/proxy-presets.ts:5 — 当前预设列表里没有 LiteLLM preset
    • apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:73 — 现有自定义 provider 流程是通用 wire/baseUrl/model 表单
    • apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:342 — 当前表单只有通用 API Key 输入,没有 LiteLLM 专属 proxy-key / keyless 引导
    • apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:125 — 自定义 provider 已有模型发现逻辑
    • apps/desktop/src/main/connection-ipc.ts:724 — 已支持对已保存 provider 拉取模型列表
    • apps/desktop/src/main/connection-ipc.ts:834 — 已支持按 wire 测试自定义 endpoint
    • packages/providers/src/index.ts:43 — provider runtime 明确把 LiteLLM 归入 custom endpoint / synthetic wire model 路径
    • apps/desktop/src/main/provider-settings.ts:72 — 运行时允许“显式声明为 keyless”的 provider
    • apps/desktop/src/main/onboarding-ipc.ts:631 — 新增 custom provider 时仍会写入 secret
    • apps/desktop/src/main/keychain.ts:23 — 空 secret 会被拒绝,所以当前自定义 UI 不是完整的 keyless-first 流程
    • apps/desktop/src/renderer/src/components/ConnectionDiagnosticPanel.tsx:184 — diagnostics 目前只有通用 gateway / app allowlist 提示,不是 LiteLLM-specific
    • apps/desktop/src/main/imports/claude-code-config.ts:26 — Claude Code 导入路径已经把 localhost proxy 标注为典型 “Claude Code Proxy / LiteLLM setup”

    Need more info:

    • 如果你有一个典型 LiteLLM 部署样例(base URL、是否走 proxy key、是否需要额外 header、期望默认 wire),补一例会有助于把预设和 diagnostics 文案做准确。

    open-codesign Bot

  3. Sun-sunshine06 commented on Apr 23, 2026

    @Sun-sunshine06
    CollaboratorAuthor

    补一个来自 #214 讨论的提醒:LiteLLM 这类 preset 的价值不只是“少填几个字段”,还应该降低用户在 provider + model 管理上的决策成本。

    我觉得有两个点值得提前记在这个 issue 里:

    • preset 应该尽量帮助用户 bootstrap,而不是要求从零手填完整 custom provider
    • 即便有默认的 base URL / wire,引导里也最好同时支持 discovered models + manual model entry

    这样更符合 LiteLLM / gateway 的真实使用方式,因为很多部署既可能暴露 /models,也可能更适合直接手填一个已知可用模型。把 preset 做成“给出好起点,但不假设远端一定是标准形态”会更稳。

  4. added
    bot-rerunTemporary label to rerun automation
    and removed
    bot-rerunTemporary label to rerun automation
    on May 1, 2026
  5. github-actions commented on May 1, 2026

    @github-actions
    Contributor

    感谢您提出这个功能请求。LiteLLM Gateway 作为一等预设确实能显著降低用户的手工配置成本,而且当前项目代码已经为这种升级准备好了大部分基础设施。

    从代码分析来看,当前已经具备的基础:

    • packages/shared/src/config.ts:19 定义了 BUILTIN_ONBOARDING_PROVIDERS,目前包含 anthropic、openai、openrouter、ollama,可以在此处新增 litellm 条目。
    • apps/desktop/src/renderer/src/components/Settings.tsx:2646 的“Add provider”菜单可以增加一个 LiteLLM 选项,类似已有的 CLIProxyAPI 预设。
    • packages/shared/src/proxy-presets.ts:5 存储代理预设,可以新增一个 LiteLLM 预设,默认 wire 为 openai-compatible,默认 base URL 建议 http://localhost:4000(典型部署)。
    • apps/desktop/src/renderer/src/components/AddCustomProviderModal.tsx:73 的自定义 provider 表单可复用,只需在预设选择时自动填充字段。
    • 对于 keyless 支持,apps/desktop/src/main/provider-settings.ts:72 已允许“显式声明为 keyless”,但上游 apps/desktop/src/main/keychain.ts:23 拒绝空 secret,需在预设中绕过校验。
    • apps/desktop/src/renderer/src/components/ConnectionDiagnosticPanel.tsx:184 的 diagnostics 通用分支可扩展 LiteLLM-specific 提示(例如检查 /v1/models 是否返回正常)。
    • 模型发现已在 apps/desktop/src/main/connection-ipc.ts:724 支持,LiteLLM 自带的 /models 端点可直接使用。

    建议实现步骤(优先级从高到低):

    1. 在 BUILTIN_ONBOARDING_PROVIDERS 中添加 litellm,映射到预设配置对象,指定 wire 为 openai-compatible,base URL 为环境变量或默认值。
    2. 在 AddCustomProviderModal 的 preset 下拉列表中添加 LiteLLM Gateway,选择后自动填充 wire、base URL,并提供选项让用户选择 keyless 或提供 proxy key。
    3. 对于 keyless 模式,修改 keychain.ts 使其在 preset 标记为 keyless 时允许空 secret。
    4. 更新 ConnectionDiagnosticPanel 以识别 LiteLLM 端点并给出针对性诊断(如检查 /v1/models 响应、代理延迟等)。
    5. 在模型发现流程中自动尝试 /models 端点,同时允许手动输入模型 ID。

    需要您进一步提供的信息:

    • 如果您有典型的 LiteLLM 部署配置(base URL 形式,是否使用 proxy key,是否需要自定义 header),提供一例将使预设的默认值更准确。
    • 对于 diagnostics,您希望检测哪些具体场景?(例如代理是否正常运行、模型列表是否可访问等)

    此 feature 与项目 BYOK/local-first 约束完全兼容,不会引入额外的外部依赖。感谢您考虑项目架构方向!


    Open-CoDesign Bot

  6. added a commit that references this issue on Oct 9, 2026
    24815f3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttriageAwaiting maintainer review

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions