开始
交给 AI 接入
复制完整的 HopBase 接入契约,让编程 AI 在现有项目中完成接入与验证。
把下面整段交给 Codex、Claude Code、Cursor 或其他编程 AI。它会先识别项目技术栈和调用场景,再做最小修改、调用模型发现接口,并完成一次真实冒烟测试。
先在本机准备密钥
设置 HOPBASE_API_KEY 环境变量。不要把真实密钥粘贴到 AI 对话,也不要写进源码、提交记录、截图或日志;如果变量尚未设置,让 AI 停下来提示你在本机设置。
请在当前项目中接入 HopBase,并遵守以下接入契约:目标- 保留项目现有框架、SDK 和代码风格,只做完成接入所需的最小修改。- 先识别这是终端用户直连、内部服务调用,还是代表下游客户 / 多租户发起请求,再选择接入架构。- 完成配置后执行一次真实冒烟测试,并报告修改文件、所用模型、HTTP 状态和响应摘要。连接参数- OpenAI 兼容 Base URL:https://api.hop-base.com/v1- Anthropic 兼容 Base URL:https://api.hop-base.com- API Key:只从本机环境变量 HOPBASE_API_KEY 或项目现有密钥管理器读取;如果不存在,停止并提示我在本机设置,绝不能要求我把真实密钥粘贴进对话。- OpenAI 兼容路由鉴权:Authorization: Bearer $HOPBASE_API_KEY- Anthropic 兼容路由鉴权:使用 Anthropic SDK 的 api_key,或 HTTP header x-api-key: $HOPBASE_API_KEY;网关也接受 Bearer,但优先保持 SDK 原生方式。- 模型发现:GET https://api.hop-base.com/v1/models- Codex / Responses:POST https://api.hop-base.com/v1/responses- 对话:POST https://api.hop-base.com/v1/chat/completions- Gemini Omni 多模态与视频生成:POST https://api.hop-base.com/v1/interactions- 图片生成:POST https://api.hop-base.com/v1/images/generations- 图片编辑:POST https://api.hop-base.com/v1/images/edits- Seedance 视频提交:POST https://api.hop-base.com/v1/video/generate- Seedance 视频查询:GET https://api.hop-base.com/v1/video/tasks/{task_id}协议选择- Claude / Claude Code:使用 Anthropic 协议,Base URL 不带 /v1。- Codex CLI:使用 OpenAI Responses API,Base URL 带 /v1,wire_api = "responses"。- 普通 GPT 应用、GLM、Gemini 对话:使用 OpenAI Chat Completions 兼容协议,Base URL 带 /v1。- Gemini Omni:gemini-omni-flash-preview 使用 POST /v1/interactions,支持文字、图片、视频输入和视频输出;输入视频最长 10 秒,输出为 3-10 秒、720p、24 FPS。不要用 Chat Completions 的纯文本结构解析视频结果。- GPT Image、Gemini Banana:使用 OpenAI Images 兼容协议,并按当前线路能力选择生成或编辑接口;不要给图片接口发送 Gemini generateContent 请求体。- Seedream 5.0 Pro:支持同步文生图、单图 / 多图图生图与图片编辑。推荐调用 POST /v1/images/generations,并在编辑时加入 image;已有 OpenAI 编辑代码也可调用 POST /v1/images/edits。- Seedance:使用 HopBase 异步视频任务 API;提交后轮询 task_id,不要按 Chat Completions 解析。密钥与模型规则- 一把密钥只属于一个套餐分组,不能假设它能跨 Claude、OpenAI、Gemini、Seedream 分组调用。- 写配置前必须先用该密钥调用 GET /v1/models;只选择响应里实际返回的模型 ID。- Gemini 常用默认模型:gemini-3.5-flash。- Gemini 工具调用可选:gemini-3.1-pro-preview-customtools,但仅在 /v1/models 返回它时使用。- Gemini Omni 多模态视频模型:gemini-omni-flash-preview;仅在 /v1/models 返回它时使用。- Seedream 模型:seedream-5-0-pro;仅在 /v1/models 返回它时使用。- Seedance 视频模型:只使用 /v1/models 返回的 dreamina-seedance-2-0-* 完整 ID。下游、多租户与外部调用场景- 如果项目代表终端用户、租户或下游客户调用模型,必须把 HOPBASE_API_KEY 保留在服务端,禁止下发到浏览器、移动端或客户环境。- 复用项目现有调用方鉴权;没有鉴权时先说明风险,不要暴露一个匿名代理端点。- 对调用方实施模型 allowlist、请求大小限制、超时、并发与速率限制,防止越权和费用失控。- 将每次调用归因到调用方 / 租户,并记录模型、状态、延迟与用量;日志必须脱敏,禁止记录密钥和完整敏感提示词。- 流式响应必须端到端透传 SSE 并关闭中间层缓冲;上游 4xx / 5xx 状态码和可公开错误信息必须保真,不要全部改写成 200。- 只有确认存在下游、多租户或外部调用时才加入上述网关层;单用户本地工具不要为此引入无关架构。实施要求1. 检查现有依赖与配置,复用已经安装的 OpenAI 或 Anthropic SDK。2. 将 Base URL、API Key 和默认模型放进环境变量或项目现有的密钥管理方案;同步更新 .env.example,但绝不写入真实密钥。3. 保持现有业务行为,不重写无关文件,不删除其他供应商配置。4. 先验证 GET /v1/models,再发送一个最小非流式请求;项目使用流式响应时再追加流式测试。5. 遇到 model_not_found 时,重新读取 /v1/models 并换用返回列表中的模型,不要猜测模型名。6. 最后给出可复制的启动命令、验证命令和回滚方法。如果只想测试连通性,让 AI 先执行模型发现,再选择返回列表中的一个对话模型请求“只回复 ok”。这比硬编码某个模型更不容易因套餐差异失败。
AI 会如何判断下游场景
当项目代表终端用户、租户或外部客户发起请求时,契约会要求 AI 自动补齐服务端密钥隔离、调用方鉴权、模型 allowlist、限流、用量归因、SSE 透传、错误状态保真和脱敏日志。普通的单用户本地接入不会因此被改造成复杂网关。