• ai快给我干活去

    1:切第三方后官方登录丢失

    解决:

    先切到 OpenAI Official,完全退出 Codex,然后:```
    codex logout
    codex login
    ``选择:``
    Sign in with ChatGPT
    ``再检查:``
    codex login status
    ``确认显示:``
    Logged in using ChatGPT
    ``然后 CC Switch 开启:``
    设置
    → 通用
    → Codex 应用增强
    → 切换第三方时保留官方登录
    ```这样切第三方后,官方 OAuth 和插件还能保留。

    2:官方会话切到第三方后打不开

    报错:```
    Model provider cc-switch-official not found
    ``或者第三方旧会话切官方时报:``
    Model provider custom not found
    ```解决:

    开启 CC Switch 的:```
    统一 Codex 会话历史
    ``同时修改了:``
    会话 JSONL:
    session_meta.payload.model_provider

    数据库:
    state_5.sqlite
    threads.model_provider
    ```改完后,这个旧官方会话就能在第三方里继续用了。

    3:第三方用过的会话再切回官方,报 401 / 502

    我遇到过:```
    502 Bad Gateway
    ``和:``
    401 Unauthorized: Invalid API key
    ```而且报错 URL 还是第三方地址:

    https://hub.oaifree.com/v1/responses

    说明虽然 CC Switch 已经切到官方,但这个会话实际还在走第三方。

    解决:

    把 CC Switch 的“路由”关闭。

    最后使用:```
    ✓ 切换第三方时保留官方登录
    ✓ 统一 Codex 会话历史
    ✗ 路由
    ``ccs中的OpenAI Official,config.toml 里的 custom 改成:``
    model_provider = "custom"

    [model_providers.custom]
    name = "OpenAI"
    requires_openai_auth = true
    supports_websockets = true
    wire_api = "responses"
    ```注意:

    官方状态下不要保留第三方 base_url

    比如不能再有:```
    base_url = "https://hub.oaifree.com/v1"

    
    开启路由
    
    可以做到:```
    ✓ 保持官方 ChatGPT 登录状态
    ✓ 正常使用官方插件
    ✓ 官方订阅本身也能正常使用
    ✓ 平时主要使用第三方中转
    ```但是问题是:
    
    **第三方会话和官方会话不能稳定继续同一个历史会话**
    
    实际会出现:```
    官方会话 → 第三方继续
    有时可以
    
    第三方使用过的会话 → 再切官方继续
    容易继续命中第三方 provider,
    出现 401 / 502 等问题
    ```所以“开启路由”更适合这种情况:```
    ✓平时主要使用中转站
    ✓希望 Codex 一直保持官方登录
    ✓需要稳定使用官方插件
    ✓偶尔单独使用官方订阅
    ```不适合频繁在:```
    官方订阅和第三方中转之间继续同一个长会话。

    如果主要需求是:```
    同一个 Codex 会话
    可以在官方订阅和第三方中转之间来回继续
    ``则使用:``
    ✗ 路由
    ✓ 切换第三方时保留官方登录
    ✓ 统一 Codex 会话历史
    ``并把会话统一到:``
    custom
    ``实测这样可以:``
    官方会话 → 第三方继续
    ✓

    第三方会话 → 官方继续
    ✓
    ``所以简单来说:``
    开路由:
    适合“主要用中转 + 保持官方登录和插件”

    关路由:
    适合“官方和第三方来回继续同一个会话”

    
    查看所有会话和对应 provider:```
    @'
    import sqlite3
    from pathlib import Path
    
    db = Path.home() / ".codex" / "state_5.sqlite"
    conn = sqlite3.connect(db)
    
    for row in conn.execute("""
        SELECT id, title, model_provider, rollout_path
        FROM threads
        ORDER BY updated_at DESC
    """):
        print(row)
    
    conn.close()
    '@ | python -
    ```只看某个 provider,比如 `cc-switch-official`:```
    @'
    import sqlite3
    from pathlib import Path
    
    db = Path.home() / ".codex" / "state_5.sqlite"
    conn = sqlite3.connect(db)
    
    for row in conn.execute("""
        SELECT id, title, model_provider, rollout_path
        FROM threads
        WHERE model_provider = ?
    """, ("cc-switch-official",)):
        print(row)
    
    conn.close()
    '@ | python -
    ```把某一个会话改成 `custom`:```
    @'
    import sqlite3
    from pathlib import Path
    
    THREAD_ID = "你的会话ID"
    TARGET = "custom"
    
    db = Path.home() / ".codex" / "state_5.sqlite"
    conn = sqlite3.connect(db)
    
    cur = conn.execute("""
        UPDATE threads
        SET model_provider = ?
        WHERE id = ?
    """, (TARGET, THREAD_ID))
    
    conn.commit()
    print("修改行数:", cur.rowcount)
    conn.close()
    '@ | python -
    ```如果要批量把所有 `cc-switch-official` 改成 `custom`:```
    @'
    import sqlite3
    from pathlib import Path
    
    db = Path.home() / ".codex" / "state_5.sqlite"
    conn = sqlite3.connect(db)
    
    cur = conn.execute("""
        UPDATE threads
        SET model_provider = 'custom'
        WHERE model_provider = 'cc-switch-official'
    """)
    
    conn.commit()
    print("修改行数:", cur.rowcount)
    conn.close()
    '@ | python -
    主楼
  • 二月萧萧

    虽然说也是分享吧 但是ai生成(

    #1
  • 灼眼のシャナ

    我以前配置的第三方的provider id不是custom,还折腾了一下给ccs加了个可以改provider id的配置项

    图片

    cc-switch-official这个也是,默认这个值,也给加了个配置

    图片

    图片

    总算是所有对话都能随意切换了

    #2
  • Qing3-linuxdo

    佬,AI生成的内容要用截图

    #3

发表回复

登录后回复