mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
Add Codex load balancing documentation and refine JSON handling logic
- Updated README and README_CN to include a guide for configuring multiple account load balancing with CLI Proxy API. - Enhanced JSON handling in gemini translators by differentiating object and string outputs. - Added commented debug logging for Gemini CLI response conversion.
This commit is contained in:
23
README.md
23
README.md
@@ -430,6 +430,29 @@ export ANTHROPIC_MODEL=qwen3-coder-plus
|
||||
export ANTHROPIC_SMALL_FAST_MODEL=qwen3-coder-flash
|
||||
```
|
||||
|
||||
## Codex with multiple account load balancing
|
||||
|
||||
Start CLI Proxy API server, and then edit the `~/.codex/config.toml` and `~/.codex/auth.json` files.
|
||||
|
||||
config.toml:
|
||||
```toml
|
||||
model_provider = "cliproxyapi"
|
||||
model = "gpt-5" # You can use any of the models that we support.
|
||||
model_reasoning_effort = "high"
|
||||
|
||||
[model_providers.cliproxyapi]
|
||||
name = "cliproxyapi"
|
||||
base_url = "http://127.0.0.1:8317/v1"
|
||||
wire_api = "responses"
|
||||
```
|
||||
|
||||
auth.json:
|
||||
```json
|
||||
{
|
||||
"OPENAI_API_KEY": "sk-dummy"
|
||||
}
|
||||
```
|
||||
|
||||
## Run with Docker
|
||||
|
||||
Run the following command to login (Gemini OAuth on port 8085):
|
||||
|
||||
22
README_CN.md
22
README_CN.md
@@ -424,6 +424,28 @@ export ANTHROPIC_MODEL=qwen3-coder-plus
|
||||
export ANTHROPIC_SMALL_FAST_MODEL=qwen3-coder-flash
|
||||
```
|
||||
|
||||
## Codex 多账户负载均衡
|
||||
|
||||
启动 CLI Proxy API 服务器, 修改 `~/.codex/config.toml` 和 `~/.codex/auth.json` 文件。
|
||||
|
||||
config.toml:
|
||||
```toml
|
||||
model_provider = "cliproxyapi"
|
||||
model = "gpt-5" # 你可以使用任何我们支持的模型
|
||||
model_reasoning_effort = "high"
|
||||
|
||||
[model_providers.cliproxyapi]
|
||||
name = "cliproxyapi"
|
||||
base_url = "http://127.0.0.1:8317/v1"
|
||||
wire_api = "responses"
|
||||
```
|
||||
|
||||
auth.json:
|
||||
```json
|
||||
{
|
||||
"OPENAI_API_KEY": "sk-dummy"
|
||||
}
|
||||
```
|
||||
|
||||
## 使用 Docker 运行
|
||||
|
||||
|
||||
@@ -10,5 +10,6 @@ import (
|
||||
func ConvertOpenAIResponsesRequestToGeminiCLI(modelName string, inputRawJSON []byte, stream bool) []byte {
|
||||
rawJSON := bytes.Clone(inputRawJSON)
|
||||
rawJSON = ConvertOpenAIResponsesRequestToGemini(modelName, rawJSON, stream)
|
||||
// log.Debug(string(rawJSON))
|
||||
return ConvertGeminiRequestToGeminiCLI(modelName, rawJSON, stream)
|
||||
}
|
||||
|
||||
@@ -109,7 +109,11 @@ func ConvertOpenAIResponsesRequestToGemini(modelName string, inputRawJSON []byte
|
||||
// Parse output JSON string and set as response content
|
||||
if output != "" {
|
||||
outputResult := gjson.Parse(output)
|
||||
functionResponse, _ = sjson.SetRaw(functionResponse, "functionResponse.response.content", outputResult.Raw)
|
||||
if outputResult.IsObject() {
|
||||
functionResponse, _ = sjson.SetRaw(functionResponse, "functionResponse.response.content", outputResult.String())
|
||||
} else {
|
||||
functionResponse, _ = sjson.Set(functionResponse, "functionResponse.response.content", outputResult.String())
|
||||
}
|
||||
}
|
||||
|
||||
functionContent, _ = sjson.SetRaw(functionContent, "parts.-1", functionResponse)
|
||||
|
||||
Reference in New Issue
Block a user