游点逗中转站一键接入教程

游点逗中转站一键接入教程

Windows 一键配置 Codex 接入游点逗中转站,自动识别并选择 GPT-5 模型

https://api.youdiandou.store 

这是中转站地址

最近我在 Windows 上给 Codex 配置游点逗中转接口。

手动修改 config.toml 不算复杂,但每次都要处理 API Key、模型名称、配置备份,还是有点麻烦。所以我整理了一段 PowerShell 脚本,直接复制运行就能完成配置。

这段脚本会自动做几件事:

  • 隐藏输入游点逗 SK
  • 把 SK 保存到 Windows 用户环境变量
  • 请求接口获取当前可用模型
  • 按优先级自动选择 GPT-5 系列模型
  • 自动备份原来的 Codex 配置
  • 写入新的中转站配置

API Key 不会直接写进 config.toml,配置文件里只保存环境变量名称。

使用前准备

电脑需要满足两个条件:

  1. 已安装 Codex
  2. 已经从游点逗后台获取 SK

本文使用的中转地址是:

https://api.youdiandou.store/v1

如果平台以后更换了接口地址,只需要修改脚本开头的 $BaseUrl。

一键配置脚本

在 Windows 中打开 PowerShell。

不需要切换目录,直接完整复制下面的脚本,粘贴到 PowerShell 后按回车运行:

# 游点逗中转地址
$BaseUrl = "https://api.youdiandou.store/v1"
$EnvName = "YOUDIANDOU_API_KEY"
$ConfigDir = "$env:USERPROFILE\.codex"
$ConfigFile = "$ConfigDir\config.toml"

# 兼容部分旧版 Windows PowerShell 的 HTTPS 请求
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# 1. 输入 SK,输入过程不会显示字符
$SecureKey = Read-Host "请粘贴游点逗 SK,然后按回车" -AsSecureString
$Ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureKey)

try {
    $ApiKey = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($Ptr)
}
finally {
    [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($Ptr)
}

if ([string]::IsNullOrWhiteSpace($ApiKey)) {
    throw "SK 不能为空"
}

# 2. 保存到 Windows 用户环境变量
[Environment]::SetEnvironmentVariable(
    $EnvName,
    $ApiKey,
    "User"
)

# 让当前 PowerShell 窗口立即生效
$env:YOUDIANDOU_API_KEY = $ApiKey

Write-Host "SK 已保存到环境变量:$EnvName" -ForegroundColor Green

# 3. 查询中转站支持的模型
$Headers = @{
    Authorization = "Bearer $ApiKey"
}

try {
    $Result = Invoke-RestMethod `
        -Uri "$BaseUrl/models" `
        -Headers $Headers `
        -Method Get `
        -TimeoutSec 60

    $ModelIds = @(
        $Result.data |
        ForEach-Object { $_.id } |
        Where-Object { $_ }
    )

    if ($ModelIds.Count -eq 0) {
        throw "接口返回成功,但没有读取到任何模型"
    }

    Write-Host "读取到的模型:" -ForegroundColor Cyan
    $ModelIds | Select-Object -First 20
}
catch {
    $ApiKey = $null
    throw "无法读取模型列表:$($_.Exception.Message)"
}

# 4. 自动选择优先模型
$PriorityModels = @(
    "gpt-5.6",
    "gpt-5.6-sol",
    "gpt-5.6-codex",
    "gpt-5.5-codex",
    "gpt-5.4-codex",
    "gpt-5.4"
)

$SelectedModel = $null

foreach ($Candidate in $PriorityModels) {
    if ($ModelIds -contains $Candidate) {
        $SelectedModel = $Candidate
        break
    }
}

if (-not $SelectedModel) {
    $SelectedModel = $ModelIds |
        Where-Object { $_ -match "(?i)gpt-5" } |
        Select-Object -First 1
}

if (-not $SelectedModel) {
    $ApiKey = $null
    throw "没有找到可用的 GPT-5 系列模型"
}

Write-Host "已选择模型:$SelectedModel" -ForegroundColor Yellow

# 5. 创建 Codex 配置目录
New-Item -ItemType Directory -Force -Path $ConfigDir | Out-Null

# 6. 备份旧配置
$BackupFile = $null

if (Test-Path -LiteralPath $ConfigFile) {
    $BackupFile = "$ConfigFile.backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
    Copy-Item -LiteralPath $ConfigFile -Destination $BackupFile -Force
    Write-Host "旧配置已备份:$BackupFile"
}

# 7. 生成 Codex 配置
$ConfigContent = @"
model = "$SelectedModel"
model_provider = "youdiandou"

approval_policy = "on-request"
sandbox_mode = "workspace-write"

[model_providers.youdiandou]
name = "Youdiandou"
base_url = "$BaseUrl"
env_key = "$EnvName"
wire_api = "responses"
requires_openai_auth = false
request_max_retries = 4
stream_max_retries = 5
stream_idle_timeout_ms = 300000

[windows]
sandbox = "elevated"
"@

try {
    # 使用无 BOM 的 UTF-8,兼容 Windows PowerShell 5.1
    $Utf8NoBom = New-Object System.Text.UTF8Encoding($false)
    [System.IO.File]::WriteAllText(
        $ConfigFile,
        $ConfigContent,
        $Utf8NoBom
    )
}
catch {
    if ($BackupFile -and (Test-Path -LiteralPath $BackupFile)) {
        Copy-Item -LiteralPath $BackupFile -Destination $ConfigFile -Force
    }

    throw "写入 Codex 配置失败,已经尝试恢复旧配置:$($_.Exception.Message)"
}
finally {
    # 清理当前脚本中的明文变量
    $ApiKey = $null
    $Headers = $null
}

Write-Host ""
Write-Host "配置完成!" -ForegroundColor Green
Write-Host "配置文件:$ConfigFile"
Write-Host "模型:$SelectedModel"
Write-Host "接口:$BaseUrl"

if ($BackupFile) {
    Write-Host "旧配置备份:$BackupFile"
}

Write-Host ""
Write-Host "现在请彻底退出 Codex,再重新打开并新建会话。" -ForegroundColor Yellow

运行时会发生什么

脚本首先会提示:

请粘贴游点逗 SK,然后按回车

粘贴过程中,PowerShell 不会显示字符。这是正常现象,不代表没有粘贴成功。

按下回车后,脚本会请求:

https://api.youdiandou.store/v1/models

如果 SK 有效,会显示读取到的模型,然后按照脚本中的顺序选择一个优先模型。

例如:

SK 已保存到环境变量:YOUDIANDOU_API_KEY
读取到的模型:
gpt-5.6
gpt-5.6-sol
gpt-5.4-codex

已选择模型:gpt-5.6
配置完成!

最终配置写入:

C:\Users\你的用户名\.codex\config.toml

配置完成后怎么验证

先彻底退出 Codex,包括后台仍在运行的窗口,然后重新打开并新建一个任务。

也可以重新打开 PowerShell,检查环境变量是否存在:

if ([string]::IsNullOrWhiteSpace($env:YOUDIANDOU_API_KEY)) {
    Write-Host "当前窗口还没有加载环境变量,请重新打开 PowerShell。" -ForegroundColor Yellow
}
else {
    Write-Host "YOUDIANDOU_API_KEY 已生效。" -ForegroundColor Green
}

这个命令只判断变量是否存在,不会把完整 SK 输出到屏幕。

检查 Codex 配置文件:

Get-Content -LiteralPath "$env:USERPROFILE\.codex\config.toml"

正常情况下,可以看到:

model_provider = "youdiandou"

以及:

env_key = "YOUDIANDOU_API_KEY"

配置文件中不应该出现真实 SK。

常见问题

提示无法读取模型列表

一般有几个原因:

  • SK 输入错误或已经失效
  • 中转站接口暂时不可用
  • 当前网络无法访问接口
  • 防火墙或代理拦截了 PowerShell 请求

可以单独检查接口连通性:

Test-NetConnection api.youdiandou.store -Port 443

看到下面这行代表 443 端口可以连接:

TcpTestSucceeded : True

脚本没有找到 GPT-5 模型

脚本只会自动选择 GPT-5 系列。如果接口当前没有返回 GPT-5 模型,它会主动停止,不会随便写入其他模型。

这时可以查看 PowerShell 输出的模型列表,再根据实际模型修改 $PriorityModels。

Codex 仍然使用原来的模型

先确认已经彻底退出 Codex。只关闭当前任务再新建,有时不会重新加载用户环境变量。

最稳妥的处理方式是:

  1. 退出 Codex
  2. 重新打开 PowerShell
  3. 确认环境变量已经生效
  4. 重新启动 Codex
  5. 新建任务测试

如何恢复原来的配置

脚本覆盖 config.toml 之前,会生成带时间的备份,例如:

C:\Users\你的用户名\.codex\config.toml.backup-20260729-153000

恢复时,先关闭 Codex,然后执行:

$ConfigDir = "$env:USERPROFILE\.codex"

$BackupFile = Get-ChildItem `
    -LiteralPath $ConfigDir `
    -Filter "config.toml.backup-*" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -First 1

if (-not $BackupFile) {
    throw "没有找到 config.toml 备份文件"
}

Copy-Item `
    -LiteralPath $BackupFile.FullName `
    -Destination "$ConfigDir\config.toml" `
    -Force

Write-Host "已经恢复配置:$($BackupFile.FullName)" -ForegroundColor Green

恢复完成后,重新启动 Codex。

如何删除保存的 SK

如果以后不再使用这个中转站,可以删除 Windows 用户环境变量:

[Environment]::SetEnvironmentVaria
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容