这个项目能做什么

opencode2api 是一个用于 OpenCode Zen 和 Zen Go 的 Go 网关。它提供 Chat Completions、Responses 和 Anthropic Messages 端点,在管理上游密钥和代理的同时转换它们之间的原生协议。该可执行文件包含一个 WebUI,不需要 Node.js 运行时或数据库。 功能包括所有三种推理协议的 JSON 和 SSE 响应,支持文本、图像、推理、函数工具、工具调用和工具结果,独立的 Zen 和 Go 密钥池,可配置的层级偏好、重试和会话亲和性,可选的匿名 Zen 访问,直接/HTTP/HTTPS/SOCKS5/SOCKS5H 代理支持,带磁盘缓存的动态模型发现,带配置编辑的独立管理端口,Playground,诊断,令牌统计和实时日志,以及带验证的配置热重载。 快速开始:从 GitHub Releases 下载二进制文件或使用 Go 1.24+ 构建。编辑 config.json 设置 server_keys、Zen/Go 密钥(或启用匿名)和 WebUI 密码。使用 `./opencode2api -config config.json` 运行。Docker 镜像可通过 ghcr.io/jasonxu114514/opencode2api 获取,支持 docker compose。 API 端点包括 GET /v1/models、POST /v1/chat/completions、POST /v1/responses、POST /v1/messages 和 GET /healthz。认证使用本地 server_keys 通过 Bearer 或 x-api-key 头。支持使用 `stream: true` 进行流式传输。网关不实现嵌入、文件上传、图像生成或 Responses 检索/取消,也不存储对话历史。 路由使用来自上游 /v1/models 和 OpenCode 能力目录的模型发现,可进行协议覆盖。对于 ID 中包含 'free' 或零成本非弃用模型,启用匿名访问。路由顺序先尝试匿名代理,然后按偏好顺序尝试认证层级,每层有重试。会话亲和性使用基于显式会话 ID 或第一条用户消息的稳定哈希。 配置涵盖密钥、监听器、路由偏好、推理努力(带每模型覆盖)、代理(内联列表和 proxyfile)、超时、连接池、日志和 WebUI 设置。WebUI 提供配置中心、Playground、诊断、监控和实时日志。管理 API 路由处理认证、配置检索/更新、重载、密钥揭示、账户更新、监控统计、模型诊断、推理测试和日志。 监控跟踪请求结果、上游尝试、令牌使用和资源统计。数据持久化包括配置文件、备份和模型缓存;会话和指标在内存中。健康检查根据目录可用性和代理健康报告就绪状态。开发需要 Go 1.24+ 并使用标准 Go 工具。