mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
142 lines
2.8 KiB
Markdown
142 lines
2.8 KiB
Markdown
---
|
||
title: Codex
|
||
description: OpenAI Codex OAuth Provider 配置
|
||
navigation:
|
||
icon: i-heroicons-code-bracket
|
||
---
|
||
|
||
# Codex Provider
|
||
|
||
通过 OAuth 认证使用 OpenAI Codex 服务。
|
||
|
||
## 概述
|
||
|
||
Codex Provider 允许你使用 OpenAI Codex 的 OAuth 凭证访问 GPT 模型。
|
||
同时,为了兼容 Codex CLI 的「API Key 登录」用户(`~/.codex/auth.json` 只有 `api_key`),ProxyCast 也支持读取 `api_key` 并作为 Bearer Token 使用(无需刷新)。
|
||
|
||
## 支持的模型
|
||
|
||
- GPT-4 系列
|
||
- GPT-3.5 系列
|
||
- 其他 Codex 支持的模型
|
||
|
||
## 配置
|
||
|
||
### 凭证池配置
|
||
|
||
```yaml
|
||
credential_pool:
|
||
codex:
|
||
- id: "codex-main"
|
||
token_file: "codex/oauth.json"
|
||
disabled: false
|
||
proxy_url: "http://proxy:8080" # 可选
|
||
```
|
||
|
||
### 配置项说明
|
||
|
||
| 配置项 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | string | ✅ | 凭证唯一标识 |
|
||
| token_file | string | ✅ | Token 文件路径(相对于 auth_dir) |
|
||
| disabled | boolean | ❌ | 是否禁用此凭证 |
|
||
| proxy_url | string | ❌ | 单独的代理 URL |
|
||
|
||
## OAuth 登录
|
||
|
||
### 通过 UI 登录
|
||
|
||
1. 打开 ProxyCast
|
||
2. 进入 Provider 管理页面
|
||
3. 找到 Codex 部分
|
||
4. 点击"OAuth 登录"按钮
|
||
5. 在弹出的浏览器中完成认证
|
||
6. 认证成功后自动保存凭证
|
||
|
||
### Token 文件格式
|
||
|
||
#### OAuth 模式(推荐用于 Codex OAuth)
|
||
|
||
```json
|
||
{
|
||
"access_token": "eyJ...",
|
||
"refresh_token": "eyJ...",
|
||
"expires_at": "2025-01-01T00:00:00Z",
|
||
"token_type": "Bearer"
|
||
}
|
||
```
|
||
|
||
#### API Key 模式(兼容 Codex CLI)
|
||
|
||
```json
|
||
{
|
||
"api_key": "sk-xxx",
|
||
"api_base_url": "https://api.openai.com"
|
||
}
|
||
```
|
||
|
||
说明:
|
||
- `api_key` / `apiKey`:必填
|
||
- `api_base_url` / `apiBaseUrl`:可选;可填写 `https://api.openai.com` 或带 `/v1` 的地址(例如网关、反代、Azure 兼容地址)
|
||
|
||
## Token 刷新
|
||
|
||
ProxyCast 会自动在 Token 过期前刷新:
|
||
|
||
- 检测到 Token 即将过期时自动刷新
|
||
- 刷新失败时标记凭证为无效
|
||
- 无效凭证会在 UI 中显示警告
|
||
|
||
## 使用示例
|
||
|
||
### API 请求
|
||
|
||
```bash
|
||
curl http://127.0.0.1:8999/v1/chat/completions \
|
||
-H "Authorization: Bearer your-api-key" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"model": "gpt-4",
|
||
"messages": [{"role": "user", "content": "Hello!"}]
|
||
}'
|
||
```
|
||
|
||
### 路由配置
|
||
|
||
将 GPT 模型路由到 Codex:
|
||
|
||
```yaml
|
||
routing:
|
||
rules:
|
||
- pattern: "gpt-*"
|
||
provider: "codex"
|
||
priority: 1
|
||
```
|
||
|
||
## 多账号配置
|
||
|
||
```yaml
|
||
credential_pool:
|
||
codex:
|
||
- id: "codex-1"
|
||
token_file: "codex/account1.json"
|
||
- id: "codex-2"
|
||
token_file: "codex/account2.json"
|
||
```
|
||
|
||
ProxyCast 会自动在多个凭证之间负载均衡。
|
||
|
||
## 故障排除
|
||
|
||
### Token 刷新失败
|
||
|
||
1. 检查网络连接
|
||
2. 确认 OAuth 授权未被撤销
|
||
3. 尝试重新登录
|
||
|
||
### 凭证无效
|
||
|
||
1. 删除旧的 Token 文件
|
||
2. 重新进行 OAuth 登录
|
||
3. 检查账号状态
|