跳转到内容

基础配置

配置文件

服务器默认使用位于项目根目录的 YAML 配置文件(config.yaml)。您可以使用 --config 标志指定不同的配置文件路径:

bash
./cli-proxy-api --config /path/to/your/config.yaml

配置文件示例

yaml
# 服务器端口
port: 8317

# 管理 API 设置
remote-management:
  # 是否允许远程(非localhost)访问管理接口。为false时仅允许本地访问(但本地访问同样需要管理密钥)。
  allow-remote: false

  # 管理密钥。若配置为明文,启动时会自动进行bcrypt加密并写回配置文件。
  # 所有管理请求(包括本地)都需要该密钥。
  # 若为空,/v0/management 整体处于 404(禁用)。
  secret-key: ""

  # 当设为 true 时,不下载管理面板文件,/management.html 将直接返回 404。
  disable-control-panel: false

# 身份验证目录(支持 ~ 表示主目录)。如果你使用Windows,建议设置成`C:/cli-proxy-api/`。
auth-dir: "~/.cli-proxy-api"

# 请求认证使用的API密钥
api-keys:
  - "your-api-key-1"
  - "your-api-key-2"

# 启用调试日志
debug: false

# 为 true 时将应用日志写入滚动文件而不是 stdout
logging-to-file: true

# 为 false 时禁用内存中的使用统计并直接丢弃所有数据
usage-statistics-enabled: true

# 代理URL。支持socks5/http/https协议。例如:socks5://user:[email protected]:1080/
proxy-url: ""

# 请求重试次数。如果HTTP响应码为403、408、500、502、503或504,将会触发重试。
request-retry: 3


# 配额超限行为
quota-exceeded:
   switch-project: true # 当配额超限时是否自动切换到另一个项目
   switch-preview-model: true # 当配额超限时是否自动切换到预览模型

# Gemini API 密钥
gemini-api-key:
  - api-key: "AIzaSy...01"
    base-url: "https://generativelanguage.googleapis.com"
    headers:
      X-Custom-Header: "custom-value"
    proxy-url: "socks5://proxy.example.com:1080"
  - api-key: "AIzaSy...02"

# Codex API 密钥
codex-api-key:
  - api-key: "sk-atSM..."
    base-url: "https://www.example.com" # 第三方 Codex API 中转服务端点
    proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置

# Claude API 密钥
claude-api-key:
  - api-key: "sk-atSM..." # 如果使用官方 Claude API,无需设置 base-url
  - api-key: "sk-atSM..."
    base-url: "https://www.example.com" # 第三方 Claude API 中转服务端点
    proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置

# OpenAI 兼容提供商
openai-compatibility:
  - name: "openrouter" # 提供商的名称;它将被用于用户代理和其它地方。
    base-url: "https://openrouter.ai/api/v1" # 提供商的基础URL。
    # 新格式:支持每密钥代理配置(推荐):
    api-key-entries:
      - api-key: "sk-or-v1-...b780"
        proxy-url: "socks5://proxy.example.com:1080" # 可选:针对该密钥的代理设置
      - api-key: "sk-or-v1-...b781" # 不进行额外代理设置
    # 旧格式(仍支持,但无法为每个密钥指定代理):
    # api-keys:
    #   - "sk-or-v1-...b780"
    #   - "sk-or-v1-...b781"
    models: # 提供商支持的模型。或者你可以使用类似 openrouter://moonshotai/kimi-k2:free 这样的格式来请求未在这里定义的模型
      - name: "moonshotai/kimi-k2:free" # 实际的模型名称。
        alias: "kimi-k2" # 在API中使用的别名。

基于 MIT 协议发布