Files
proxycast/docs/content/03.providers/7.codex.md
T

142 lines
2.8 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: 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. 检查账号状态