Skip to content

Releases: 1812095643/sub2api-excel2api-plugin

v0.6.0 · 修复 Excel2API 图片上传

Choose a tag to compare

@1812095643 1812095643 released this 25 Sep 04:36

图片问题修复

修复 Issue #1:BPS 拒绝客户端用户消息中的 data:image/...;base64,...,此前插件会直接返回 HTTP 400。

v0.6.0 的处理链是:

  1. 识别用户消息里的 input_image data URL;
  2. 在同一账号代理和授权下请求 https://bps.openai.com/basispoints/api/attachments;
  3. 使用 multipart file 上传图片;
  4. 读取返回的 openai_file_id;
  5. 将用户消息中的 image_url 替换成 file_id 后再请求 /basispoints/api/responses。

已经是 HTTPS 的用户图片会原样保留。工具返回的截图不会被误当成用户附件上传,会按工具结果继续回放。

其他能力

  • Excel2API BPS 工具隧道;
  • Codex CLI 35 个工具/namespace 声明;
  • function/custom 工具类型恢复;
  • 完整 run_officejs 调用项回放;
  • 稳定 turn_id 和 agent_iteration;
  • 请求时区与英文 Accept-Language;
  • 并行降智检测、Cron、条件任务和专用测试。

安装

在 Sub2API 0.2.7 插件管理页上传:

openai-account-health-0.6.0-linux-amd64.s2plugin

然后开启 Excel2API、填写账号 ID、开启“启用测试”,保存并点击“保存并测试 Excel2API”。

校验

SHA-256:8cd98d5bf65d5ff1e555e31698e69c9c561ec314166bf1073a4fc5bff22bed77

本地 Linux/WSL 回归测试和 multipart 附件上传契约测试通过。未使用真实账号进行上游图片请求验收。

v0.5.0 · Excel2API Codex 工具隧道

Choose a tag to compare

@1812095643 1812095643 released this 25 Sep 03:59

这是什么

openai-account-health 是面向 Sub2API 0.2.7 的 OpenAI OAuth Transport 插件。本版本把指定的 OpenAI OAuth 账号接入 ChatGPT Excel 的 BPS Responses 接口,并通过固定的 run_officejs 隧道保持 Codex CLI 的工具调用协议。

主要功能

  • Excel2API:按 Sub2API 账号 ID 单独启用,自动复用账号授权、ChatGPT account ID 和账号代理。
  • Codex CLI 工具目录:内置来自 openai/codex 固定提交的 35 个工具/命名空间声明,包含 exec_command、apply_patch、view_image、update_plan、MCP 资源、协作工具、代码模式和图片工具。
  • BPS 工具隧道:BPS 不接收客户端 tools;插件把工具目录写入 developer 消息,解析 BPS 原生 run_officejs,再恢复为客户端的 function_call 或 custom_tool_call。
  • 稳定工具续接:保留原始 BPS 调用项,固定 turn_id,只递增 agent_iteration。
  • 参数与错误保护:校验嵌套 JSON、工具类型、namespace 和 schema;半截/非法参数、未知工具和连续空回合会明确处理。
  • 请求时区与英文请求头:默认 Asia/Singapore,可按账号覆盖,已有 Accept-Language 统一为英文。
  • 并行降智检测:支持多个模型、并行度、指定账号、只检测启用调度账号、Cron 和条件任务。

安装和首次使用

  1. 在 Sub2API 管理后台打开“插件管理”。
  2. 上传本 Release 的 openai-account-health-0.5.0-linux-amd64.s2plugin。
  3. 确认签名可信后启用插件。
  4. 打开插件配置页,开启 Excel2API,填写需要走 BPS 的 Sub2API OpenAI OAuth 账号 ID。
  5. 开启 启用测试,填写至少一个检测模型并保存。
  6. 点击 保存并测试 Excel2API,确认 BPS、账号授权和账号代理可用。
  7. 再通过 Codex CLI 或经过 Sub2API 的 Responses 客户端使用这些账号。

账号管理页面的“测试连接”不属于本插件配置流程;Excel2API 使用插件页面内的专用测试按钮。

配置字段

插件 UI 使用以下 JSON 字段,字段名保持 snake_case:

字段 类型 默认值 说明
default_timezone string Asia/Singapore 默认 IANA 时区
account_timezones object {} 账号 ID 到时区的覆盖映射
direct_enabled boolean false Excel2API 总开关
direct_account_ids number[] [] 需要走 BPS 的账号 ID
diagnostic_enabled boolean true 降智检测总开关
diagnostic_models string[] [] 检测模型列表
diagnostic_account_ids number[] [] 留空表示全部 OpenAI OAuth 账号
diagnostic_schedulable_only boolean false 只检测启用调度的账号
diagnostic_concurrency integer 4 并行度,1 到 16
schedule_mode string disabled disabled、cron 或 condition
schedule_cron string "" 五段 Cron,例如 */30 * * * *
schedule_condition string has_schedulable_accounts 条件任务类型

YAML 配置

Sub2API 0.2.7 的插件业务配置不是从主 YAML 自动读取,而是通过插件 UI 或管理 API 保存后加密进数据库。仓库中的两个示例文件分别对应两类配置。

宿主主配置 YAML

把下面片段合并到服务器主 config.yaml 的 plugins 节点,用于信任发布者公钥:

plugins:
  allow_unsigned: false
  trusted_publishers:
    personal-astra-transport-20260921: "LPYLHgoVkZ4sCI1jDDlYXPkv8bErFM9mKFpN5/ngWjY="

不要把签名私钥、OAuth Token、refresh token、Cookie 或代理密码写进 YAML。

插件业务 YAML

仓库中的 docs/excel2api-config.example.yaml 是业务配置记录示例。Sub2API 0.2.7 不会自动读取这个文件:

plugin_id: local.personal.openai-account-health
config:
  default_timezone: Asia/Singapore
  account_timezones:
    "123": America/Los_Angeles
  direct_enabled: true
  direct_account_ids:
    - 123
  diagnostic_enabled: true
  diagnostic_models:
    - gpt-5.6-sol
    - gpt-6-astra
  diagnostic_account_ids: []
  diagnostic_schedulable_only: true
  diagnostic_concurrency: 4
  schedule_mode: cron
  schedule_cron: "*/30 * * * *"
  schedule_condition: has_schedulable_accounts

Sub2API 管理 API 保存时,只提交 config 对象。例如使用 Powershell:

$pluginId = 1
$config = Get-Content .\excel2api-config.json -Raw
Invoke-RestMethod `
  -Method Put `
  -Uri "http://127.0.0.1:8080/admin/plugins/$pluginId/config" `
  -ContentType "application/json" `
  -Body $config

实际部署需要使用你的管理认证和二次验证流程。$pluginId 是插件安装后后台返回的数据库 ID,不是插件字符串 ID。没有 yq 时,直接在插件 UI 填写保存更稳妥。

兼容和边界

  • Sub2API:>=0.2.7 <0.3.0,推荐并实际验证版本为 0.2.7。
  • 当前 Release 只提供 Linux amd64 运行时。
  • API Key 账号、其他 Provider 和 OAuth 刷新流程继续由 Sub2API 原有路径处理。
  • 工具执行仍由 Codex CLI/Sub2API 客户端负责,插件不会执行 shell、apply_patch、MCP 或图片工具。
  • 用户图片必须使用 HTTPS URL;BPS 拒绝的 data:image 会在插件本地拦截。

校验

  • 插件签名:Ed25519 校验通过。
  • SHA-256:c3631f9f788af401ed4b53b4bc83490f3da08f842463d55c4edf374ae7b37bff
  • 本地 Linux/WSL 回归测试、Codex 工具目录解析、namespace 回放、非法隧道调用、JavaScript 语法检查均通过。
  • 该 Release 未进行真实 BPS 上游请求验收;请先在插件页面执行“保存并测试 Excel2API”。

完整说明、YAML 示例和源码见仓库 README:

https://github.com/1812095643/sub2api-excel2api-plugin