Files
proxycast/docs/content/02.user-guide/4.configuration-example.md
T

343 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 完整配置示例
description: ProxyCast 完整 YAML 配置示例
navigation:
icon: i-heroicons-document-text
---
# 完整配置示例
本文档提供 ProxyCast 的完整 YAML 配置示例,包含所有新增功能。
## 基础配置
```yaml
# 服务器配置
server:
host: "127.0.0.1"
port: 8999
api_key: "your-api-key"
# TLS/HTTPS 配置
tls:
enable: false
cert_path: "/path/to/cert.pem"
key_path: "/path/to/key.pem"
# 注意:当前版本暂不支持 TLS。启用后服务将无法启动,请使用反向代理做 TLS 终止。
# 全局代理 URL(支持 socks5/http/https)
proxy_url: "socks5://127.0.0.1:1080"
# 认证目录(存储 OAuth Token 文件)
auth_dir: "~/.proxycast/auth"
```
## 远程管理配置
```yaml
# 远程管理 API 配置
remote_management:
# 是否允许远程访问(非 localhost)
allow_remote: false
# 管理 API 密钥(为空时禁用管理 API)
secret_key: "your-secret-key"
# 是否禁用控制面板
disable_control_panel: false
```
## 配额超限配置
```yaml
# 配额超限自动切换策略
quota_exceeded:
# 是否自动切换到下一个凭证
switch_project: true
# 是否尝试使用预览模型
switch_preview_model: true
# 冷却时间(秒)
cooldown_seconds: 300
```
## Amp CLI 集成配置
```yaml
# Amp CLI 配置
ampcode:
# 上游 URL
upstream_url: "https://ampcode.com"
# 是否限制管理端点只能从 localhost 访问
restrict_management_to_localhost: false
# 模型映射列表
model_mappings:
- from: "claude-opus-4.5"
to: "claude-sonnet-4"
- from: "gpt-5"
to: "gemini-2.5-pro"
- from: "claude-3-opus-20240229"
to: "claude-3-5-sonnet-20241022"
```
## 凭证池配置
### OAuth Provider
```yaml
credential_pool:
# Kiro OAuth 凭证
kiro:
- id: "kiro-main"
token_file: "kiro/main-token.json"
disabled: false
proxy_url: "socks5://proxy1:1080" # 可选:单独代理
- id: "kiro-backup"
token_file: "kiro/backup-token.json"
disabled: false
# Gemini OAuth 凭证
gemini:
- id: "gemini-main"
token_file: "gemini/oauth_creds.json"
disabled: false
# Qwen OAuth 凭证
qwen:
- id: "qwen-main"
token_file: "qwen/oauth_creds.json"
disabled: false
# Codex OAuth 凭证
codex:
- id: "codex-main"
token_file: "codex/oauth.json"
proxy_url: "http://proxy2:8080"
```
### iFlow Provider
```yaml
credential_pool:
# iFlow 凭证(支持 OAuth 和 Cookie)
iflow:
# OAuth 模式
- id: "iflow-oauth"
token_file: "iflow/oauth.json"
auth_type: "oauth"
disabled: false
# Cookie 模式
- id: "iflow-cookie"
auth_type: "cookie"
cookies: "session_id=abc123; auth_token=xyz789"
disabled: false
```
### API Key Provider
```yaml
credential_pool:
# OpenAI API Key
openai:
- id: "openai-main"
api_key: "sk-xxx..."
base_url: "https://api.openai.com/v1"
disabled: false
proxy_url: "http://proxy:8080"
# Claude API Key
claude:
- id: "claude-main"
api_key: "sk-ant-xxx..."
base_url: "https://api.anthropic.com"
disabled: false
```
### Gemini API Key 多账号
```yaml
credential_pool:
# Gemini API Key 多账号负载均衡
gemini_api_keys:
- id: "gemini-key-1"
api_key: "AIzaSy...01"
base_url: "https://generativelanguage.googleapis.com"
proxy_url: "socks5://proxy1:1080"
excluded_models:
- "gemini-2.5-pro" # 排除特定模型
- "gemini-2.5-*" # 通配符前缀匹配
- "*-preview" # 通配符后缀匹配
disabled: false
- id: "gemini-key-2"
api_key: "AIzaSy...02"
disabled: false
```
### Vertex AI Provider
```yaml
credential_pool:
# Vertex AI 凭证
vertex_api_keys:
- id: "vertex-main"
api_key: "vk-123..."
base_url: "https://example.com/api"
proxy_url: "socks5://proxy:1080"
# 模型别名映射
models:
- name: "gemini-2.0-flash"
alias: "vertex-flash"
- name: "gemini-1.5-pro"
alias: "vertex-pro"
disabled: false
```
## 路由配置
```yaml
# 路由配置
routing:
# 默认 Provider
default_provider: "kiro"
# 路由规则
rules:
- pattern: "claude-*"
provider: "kiro"
priority: 1
- pattern: "gemini-*"
provider: "gemini"
priority: 2
- pattern: "gpt-*"
provider: "openai"
priority: 3
# 模型别名
model_aliases:
"claude-latest": "claude-sonnet-4-5-20250514"
"gemini-latest": "gemini-2.5-pro"
# 排除列表
exclusions:
kiro:
- "claude-3-opus-*"
gemini:
- "gemini-1.0-*"
```
## 重试配置
```yaml
# 重试配置
retry:
max_retries: 3
base_delay_ms: 1000
max_delay_ms: 30000
auto_switch_provider: true
```
## 日志配置
```yaml
# 日志配置
logging:
enabled: true
level: "info"
retention_days: 7
include_request_body: false
```
## 参数注入配置
```yaml
# 参数注入配置
injection:
enabled: true
rules:
- id: "thinking-budget"
pattern: "gemini-2.5-*"
parameters:
generationConfig:
thinkingConfig:
thinkingBudget: 32768
mode: "default" # default: 仅在参数缺失时设置
priority: 1
enabled: true
- id: "reasoning-effort"
pattern: "gpt-*"
parameters:
reasoning:
effort: "high"
mode: "override" # override: 总是覆盖
priority: 2
enabled: true
```
## 完整配置示例
以下是一个完整的配置文件示例:
```yaml
# ProxyCast 完整配置示例
server:
host: "127.0.0.1"
port: 8999
api_key: "your-api-key"
tls:
enable: false
cert_path: ""
key_path: ""
proxy_url: ""
auth_dir: "~/.proxycast/auth"
remote_management:
allow_remote: false
secret_key: ""
disable_control_panel: false
quota_exceeded:
switch_project: true
switch_preview_model: true
cooldown_seconds: 300
ampcode:
upstream_url: ""
restrict_management_to_localhost: false
model_mappings: []
credential_pool:
kiro:
- id: "kiro-main"
token_file: "kiro/main-token.json"
disabled: false
gemini: []
qwen: []
openai: []
claude: []
gemini_api_keys: []
vertex_api_keys: []
codex: []
iflow: []
routing:
default_provider: "kiro"
rules: []
model_aliases: {}
exclusions: {}
retry:
max_retries: 3
base_delay_ms: 1000
max_delay_ms: 30000
auto_switch_provider: true
logging:
enabled: true
level: "info"
retention_days: 7
include_request_body: false
injection:
enabled: false
rules: []
```