📈 GH Trending Explorer 🎲 Surprise me

← all repos

yyyllllming / prism-bridge

git clone https://github.com/yyyllllming/prism-bridge.git

prism方案解决chatgpt降智

+1
stars, 24h · #16,640
+~2
stars, 7 days · #25,697
+88
stars, 30 days · #8,085
88
★ total · +2% this week
23
forks · 1 open issues

Star history (as recorded here)

2026-10-20 · 87 ★ 2026-10-23 · 88 ★
LanguagePython
LicenseMIT
Created2026-10-03 (19d ago)
Last push17d ago
Watchers1
OwnerUser

Links

README excerpt
# Prism Bridge
[![LINUX DO][linuxdo-badge]](https://linux.do)
把 Prism 变成本机的 OpenAI 兼容接口(Responses / Chat Completions),给 Codex CLI、OMP 以及任何能填 Base URL 的客户端使用。
- 用你自己的 Prism / OpenAI 账号登录。
 [code] 
## 功能
- **一键登录**:Windows 优先直接拉起系统 Chrome/Edge(不由 Playwright 托管),完成登录并关闭窗口后凭证保存在本机;没有系统浏览器时才使用 Playwright 窗口。
- **图形界面**:一个窗口里登录、启动/停止服务、看日志;也可以纯命令行使用。
- **两套接口**:`/v1/responses` 和 `/v1/chat/completions`,都支持 SSE 流式。
- **工具调用**:客户端带的工具(`function`、`custom` 自由文本、`namespace` 分组、Codex CLI 的 `additional_tools`)由桥中继给模型,调用结果回到客户端,在**客户端那台机器**上执行,不使用 Prism 自带的云端沙箱。
- **图片输入**:`input_image` / `image_url` 会先上传到 Prism 项目再交给模型。
- **会话延续**:客户端每轮重放全部历史,桥只把新增内容发进同一个 Prism 会话。
- **保活与自愈**:每 5 分钟心跳;页面崩溃自动重载;新账号自动创建工作区。
- **限流与失败保护**:SSE 保持心跳;普通 401/403、超时、断流或执行状态未知时不盲目重发最终作答,遇真人验证应手工处理。
## 环境
- Python 3.10+
- 能同时访问 `prism.openai.com` 和 `sentinel.openai.com` 的网络(两个都要通,见常见问题)
 [code] 
用图形界面时可以跳过第二条:缺少 Chromium 时界面会出现“下载浏览器”按钮。
## 使用
Windows 双击 `prism.cmd`,按数字键选择:
| 菜单 | 等价命令 | 说明 |
| :--- | :--- | :--- |
| `1` 图形界面 | `python gui.py` | 登录、启动/停止服务、日志都在一个窗口 |
| `2` 启动服务 | `python bridge.py serve` | 在控制台窗口里运行服务 |
| `3` 登录 | `python bridge.py login` | 打开登录浏览器;完成登录后关闭窗口,程序读取并保存会话 |
| `4` 查看状态 | `python bridge.py status` | 账号、会话剩余有效期、端口状态 |
Linux / macOS 直接用右边一列的命令。
第一次使用:先登录,再启动服务。启动需要 15–25 秒(唤醒 Chromium 和 Prism 工作区)。登录凭证大约十天过期,过期后重新登录一次。
图形界面的几点行为:
- 关闭窗口会停止服务。
- Windows 登录默认使用未由 Playwright 接管的系统 Chrome,其次 Edge;看到 Prism 编辑器后关闭该窗口,程序才读取会话。系统浏览器不可用时才退回 Playwright 有头登录。
- 图形界面和控制台方式不能同时运行服务。
## 接入客户端
- Base URL:`http://127.0.0.1:18765/v1`
- API Key:任意非空值(没设 `PRISM_BRIDGE_API_KEY` 时桥不校验)
### Codex CLI
`config.toml`(codex-cli 0.159.2 实测):
 [code] 
环境变量 `PRISM_BRIDGE_KEY` 填任意非空值,然后 `codex exec "Run whoami and tell me the output."`。
### OMP
`models.yml`:
 [code] 
各模型需要声明 `input: [text, image]`,否则 OMP 会把图片换成占位符。OMP 在流里长时间等不到事件时会切到 fallback 模型;不想被静默换模型,就把这个 provider 的 fallback 链设为空。
## 模型
目前prism仅仅支持以下三个模型,astra曾经上过但是被下掉了。
| Prism 显示名 | 请求用的 ID |
| :--- | :--- |
| 6.1 Sol | `gpt-6.1-sol` |
| 5.6 Sol | `gpt-5.6-sol` |
| 5.6 Terra | `gpt-5.6-terra` |
| 6 Luna | `gpt-6-luna` |
| 兼容别名 | `gpt-6-sol`(转发为 `gpt-6.1-sol`)、`gpt-6-astra` |
| 交给 Prism 决定 | `auto` |
以上是 2026-10 的目录。Prism 网页的模型下拉框由官方远程配置下发,配置没加载出来时网页只显示 5.6 Sol,这不代表其它模型下线。(一般是页面中文会触发)
Prism 拒绝某个模型 ID 时桥直接报错,不会悄悄换成别的模型。设 `PRISM_ALLOW_MODEL_FALLBACK=1` 才会回退到 Prism 默认模型,此时响应里的 `model` 是 `auto`。
推理挡位可通过 `reasoning.effort`(优先)或 `reasoning_effort` 传入;`max`、`ultra` 原样传给 Prism。默认仍为 `high`;`xhigh`/`highest` 映射为 `high`,`minimal`/`min` 映射为 `low`。
## 接口
- `GET /health`:服务状态、用户 ID、凭证过期时间
- `GET /v1/models`:模型列表
- `POST /v1/responses`:OpenAI Responses(SSE、函数调用、`custom` 工具、`namespace`、`additional_tools`)
- `POST /v1/chat/completions`:Chat Completions(SSE、`tool_calls`)
## 工具调用是怎么中继的
Prism 后端只把 `system` 条目和最后一条 `user` 消息交给模型,请求里的 `instructions` 和原生 `tools` 都会被丢弃(2026-10-03 实测)。所以桥把一段短协议和客户端的工具目录放进用户消息开头的 ` ` 里。模型需要工具时输出:
 [code] 
桥把它还原成 Responses 的 `function_call`(自由文本工具还原成 `custom_tool_call`),由客户端执行后把结果带回下一轮。能直接回答的问题模型输出纯文本,不走工具。
桥只做传输,不复制客户端的系统提示:超过