[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"api-reference-data":3,"api-reference-contract-\u002Fopenapi\u002Fcustomer.json":343},{"tree":4,"groups":142},[5,14,38,67,97,119,134],{"title":6,"path":7,"order":8,"description":9,"requiredFlags":10,"navigationHidden":11,"content":12,"children":13},"快速开始","getting-started",1,"创建 API Key，并使用 curl、Python 或 Node.js 完成第一次模型调用。",[],false,"# 快速开始\n\n本指南从当前工作区和项目开始，帮助你创建 API Key、确认模型调用名，并发出第一个 OpenAI Chat Completions 兼容请求。\n\n## 1. 获取 API Key\n\n1. 注册并登录控制台，进入当前工作区。\n2. 在“项目”页面确认至少有一个项目；没有项目时先创建。\n3. 进入“密钥”页面，点击“生成 API Key”。\n4. 填写名称，选择绑定项目和 API 版本，然后创建。\n5. 立即保存以 `sk_live_` 开头的完整 Key。完整值**仅在创建时显示一次**。\n\n![创建 API Key](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fapi-key-create.png)\n\n![API Key 创建成功](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fapi-key-created.png)\n\n建议将 Key 存为环境变量：\n\n```bash\nexport SILVAMUX_API_KEY=\"sk_live_YOUR_API_KEY\"\n```\n\n## 2. 发送第一个请求\n\nSilvaMux 支持 OpenAI Chat Completions 兼容格式。如果你已有 OpenAI SDK 代码，只需修改 Base URL 和 API Key。\n\n> **关于 `model` 字段**：填写[模型广场](\u002Fmodels)详情页展示的调用名，优先使用稳定的 alias。不要根据展示名称自行拼接。\n\n### curl\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"用一句话介绍你自己\"}\n    ]\n  }'\n```\n\n### Python (OpenAI SDK)\n\n安装依赖：`pip install openai`\n\n```python\nimport os\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"minimax-m2.5\",\n    messages=[{\"role\": \"user\", \"content\": \"用一句话介绍你自己\"}],\n)\n\nprint(response.choices[0].message.content)\n```\n\n### Node.js (OpenAI SDK)\n\n安装依赖：`npm install openai`\n\n```javascript\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: process.env.SILVAMUX_API_KEY,\n  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"minimax-m2.5\",\n  messages: [{ role: \"user\", content: \"用一句话介绍你自己\" }],\n});\n\nconsole.log(response.choices[0].message.content);\n```\n\n## 3. 流式输出\n\n设置 `stream: true` 即可获得流式响应（SSE）：\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"写一首五言绝句\"}],\n    \"stream\": true\n  }'\n```\n\n流式响应格式为 Server-Sent Events，每个事件的 `data` 字段包含一个 JSON chunk，最后一个事件为 `data: [DONE]`。\n\n## 4. 使用 Anthropic 格式\n\n如果你更熟悉 Anthropic 的 Messages API，SilvaMux 同样支持：\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fmessages \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n  }'\n```",[],{"title":15,"path":16,"order":17,"description":18,"requiredFlags":19,"navigationHidden":11,"content":20,"children":21},"通用信息","common",10,"查看计费等跨功能的通用信息。",[],"# 通用信息\n\n跨功能的通用信息。\n\n- 计费说明",[22,30],{"title":23,"path":24,"order":25,"description":26,"requiredFlags":27,"navigationHidden":11,"content":28,"children":29},"计费说明","common\u002Fbilling",3,"了解模型计费、账户充值、折扣和账单导出。",[],"# 计费说明\n\nSilvaMux 按实际用量计费，支持充值、折扣与账单导出。\n\n## 余额与充值\n\n- 余额不足时模型请求返回 `INSUFFICIENT_BALANCE`（HTTP 402），需充值后重试。\n- 充值：控制台「充值」页，或 `POST \u002Fbilling\u002Forders` 创建充值订单。\n- 充值记录：控制台或 `GET \u002Fbilling\u002Ftopups`。\n\n## 折扣\n\n平台支持按组织、按模型分组配置折扣，由管理员设置。未配置折扣时按原价计费。\n\n## 账单与导出\n\n- 实时账单：控制台「账单」页，或 `GET \u002Fbilling\u002Fledger`、`GET \u002Fbilling\u002Fusage-summaries`。\n- 账单导出：`POST \u002Fbilling\u002Fexports` 创建导出任务，完成后 `GET \u002Fbilling\u002Fexports\u002F{id}\u002Fdownload` 下载（CSV），有过期时间。\n\n## 模型价目\n\n完整模型价目调 `GET \u002Fbilling\u002Fmodels` 接口，返回每个模型的定价信息。各能力的计费方式：\n\n- 对话：按 token 用量（输入 + 输出）计费。\n- 图片生成：按生成张数计费。\n- 视频生成：按模型与视频参数（分辨率、时长、是否配音）计费。",[],{"title":31,"path":32,"order":33,"description":34,"requiredFlags":35,"navigationHidden":11,"content":36,"children":37},"通用错误处理","common\u002Ferrors",5,"查看通用错误格式、状态码和重试建议。",[],"# 通用错误处理\n\nSilvaMux 的错误格式取决于接口类型。本页介绍通用错误格式与重试建议，各模块的具体错误码见：\n\n- 对话错误码\n- 图片生成错误码\n- 视频生成错误码\n\n## Gateway API 错误（模型调用）\n\n对话、图片、视频等模型调用接口的错误格式由模型协议决定，分 OpenAI \u002F Anthropic \u002F Gemini \u002F Volcengine 四种渲染形状，`code` 字符串统一。\n\n```json\n{\n  \"error\": {\n    \"message\": \"具体错误信息\",\n    \"type\": \"gateway_error\",\n    \"code\": \"ERROR_CODE\"\n  }\n}\n```\n\n模型侧返回 4xx\u002F5xx 时，SilvaMux 会脱敏后透传错误响应，HTTP 状态码保持一致，此时不会产生扣费。\n\n## Billing \u002F Business API 错误（管理接口）\n\n账户、计费、自有素材等管理接口使用 RFC 7807 风格：\n\n```json\n{\n  \"status\": 400,\n  \"detail\": \"具体错误信息\",\n  \"type\": \"tag:hub,2026-03:ERROR_CODE\"\n}\n```\n\n验证错误包含 `errors` 数组：\n\n```json\n{\n  \"status\": 422,\n  \"detail\": \"validation failed\",\n  \"type\": \"tag:hub,2026-03:VALIDATION_FAILED\",\n  \"errors\": [{\"location\": \"body.email\", \"message\": \"required\"}]\n}\n```\n\n## 重试建议\n\n| HTTP 状态码 | 建议 |\n| --- | --- |\n| 400 | 不要重试，修正请求参数 |\n| 401 | 不要重试，检查认证信息 |\n| 402 | 不要重试，充值后再试 |\n| 403 | 不要重试，联系管理员 |\n| 429 | 等待后重试，建议指数退避 |\n| 500 | 可以重试，建议间隔 1-5 秒 |\n| 502 | 可以重试，模型侧暂时不可用 |\n\n## 请求 ID\n\n每个请求返回 `X-Request-Id` header（格式 `REQ-xxxx`）。排查问题时提供此 ID。你也可以在请求中自行设置 `X-Request-Id`，系统会沿用。",[],{"title":39,"path":40,"order":41,"description":42,"requiredFlags":43,"navigationHidden":11,"content":44,"children":45},"对话","chat",20,"对话接口的使用说明已统一收录到接口文档。",[],"# 对话\n\n对话接口概览、多模态输入和错误码已统一收录到接口文档。",[46,53,60],{"title":47,"path":48,"order":8,"description":49,"requiredFlags":50,"navigationHidden":11,"content":51,"children":52},"对话补全 API","chat\u002Foverview","查看统一入口和 OpenAI、Anthropic、Volcengine、Responses、智谱等兼容入口。",[],"# 对话补全 API\n\nSilvaMux 支持多种**厂商协议兼容入口**，也提供一个可选的**统一入口**。新项目建议按照目标模型支持的厂商协议接入；使用 OpenAI SDK 的项目默认选择 OpenAI Chat Completions 兼容入口。\n\n\n## 厂商协议兼容入口（推荐）\n\n下列端点接收对应厂商的请求格式，并保持相应的响应和错误结构，适合官方 SDK、已有代码迁移或需要字段级透传的场景。\n\n| 兼容格式 | 端点 | 适用 |\n| --- | --- | --- |\n| OpenAI Chat Completions | `POST \u002Fapi\u002Fv1\u002Fchat\u002Fcompletions` | 推荐给 OpenAI SDK 和大多数新项目 |\n| Anthropic | `POST \u002Fapi\u002Fv1\u002Fmessages` | 兼容 Anthropic SDK |\n| Volcengine v3 | `POST \u002Fapi\u002Fv3\u002Fchat\u002Fcompletions` | 兼容火山方舟 SDK |\n| Responses | `POST \u002Fapi\u002Fv1\u002Fresponses` | 兼容 OpenAI Responses API |\n| 智谱 | `POST \u002Fapi\u002Fpaas\u002Fv4\u002Fchat\u002Fcompletions` | 兼容智谱官方 SDK，配 `base_url=\"\u003C接入域名>\u002Fapi\u002Fpaas\u002Fv4\"` 不改代码迁入，`model` 用智谱官方名（如 `glm-5`） |\n| Gemini | `POST \u002Fapi\u002Fv1beta\u002Fmodels\u002F{model}:generateContent` | 兼容 Gemini `generateContent` 格式 |\n\n这些路径属于 SilvaMux 的兼容入口，并非模型厂商的官方服务地址。调用时使用 SilvaMux 提供的 API Key。历史地址 `\u002Fapi\u002Fanthropic\u002Fv1\u002Fmessages` 和 `\u002Fapi\u002Fv1\u002Fgemini\u002Fv1beta\u002Fmodels\u002F{model}:generateContent` 继续兼容，新接入建议使用上表中的标准路径。\n\n## SilvaMux 统一入口（可选）\n\n`POST \u002Fapi\u002Fv0\u002Fchat\u002Fcompletions` 接收 OpenAI Chat 格式，根据 `model` 自动选择上游，并将响应、SSE 和错误统一转换为 OpenAI Chat 格式。适合希望通过一个入口跨协议调用不同模型的场景。\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n  }'\n```\n\n> 统一入口会规范化请求和响应结构。需要厂商特有字段、事件或响应形状时，优先使用对应的厂商协议兼容入口。\n\n**认证：** `Authorization: Bearer \u003CAPI_KEY>` 或 `x-api-key: \u003CAPI_KEY>`。\n\n## OpenAI Chat 与统一入口的常用参数\n\n| 参数 | 类型 | 说明 |\n| --- | --- | --- |\n| `model` | string | 必填。模型调用名（`id` 或 `alias`），如 `minimax-m2.5`、`doubao-seed-2.0-pro` |\n| `messages` | array | 必填。对话消息列表，格式同 OpenAI（`role` + `content`） |\n| `stream` | boolean | 是否流式返回，默认 `false` |\n| `temperature` | number | 采样温度，默认 1.0 |\n| `max_tokens` | integer | 最大生成 token 数 |\n\n> 不同厂商协议的字段结构不同。`model` 调用名通过 `GET \u002Fbilling\u002Fmodels` 获取（hidden 不显示）。\n\n## OpenAI 格式示例\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [\n      {\"role\": \"system\", \"content\": \"你是一个有帮助的助手\"},\n      {\"role\": \"user\", \"content\": \"你好\"}\n    ],\n    \"stream\": false\n  }'\n```\n\n响应（OpenAI 格式）：\n\n```json\n{\n  \"id\": \"chatcmpl-xxxx\",\n  \"choices\": [\n    {\n      \"message\": {\"role\": \"assistant\", \"content\": \"你好！有什么可以帮你的吗？\"},\n      \"finish_reason\": \"stop\"\n    }\n  ],\n  \"usage\": {\"prompt_tokens\": 20, \"completion_tokens\": 15, \"total_tokens\": 35}\n}\n```\n\n## Anthropic 格式示例\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fmessages \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n  }'\n```\n\n响应（Anthropic 格式）：\n\n```json\n{\n  \"id\": \"msg_xxxx\",\n  \"type\": \"message\",\n  \"role\": \"assistant\",\n  \"content\": [{\"type\": \"text\", \"text\": \"你好！有什么可以帮你的吗？\"}],\n  \"usage\": {\"input_tokens\": 10, \"output_tokens\": 15}\n}\n```\n\n## Volcengine v3 格式示例\n\n兼容火山方舟 OpenAI 兼容接口，可用于豆包 Seed 系列等走火山 v3 协议的模型。\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"doubao-seed-2.0-pro\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n  }'\n```\n\n> `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3` 即接入域名下的 `\u002Fapi\u002Fv3`，对应路由 `\u002Fapi\u002Fv3\u002Fchat\u002Fcompletions`。\n\n## Responses 格式示例\n\n兼容 OpenAI Responses API，适用于支持的模型（如 codex 系列）。\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fresponses \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gpt-5.3-codex-maple\",\n    \"input\": \"用一句话介绍你自己\"\n  }'\n```\n\n## 流式输出\n\n设置 `stream: true` 即可获得流式响应（SSE）：\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"写一首五言绝句\"}],\n    \"stream\": true\n  }'\n```\n\n响应为 `text\u002Fevent-stream`，每个事件以 `data: ` 开头，最后一个为 `data: [DONE]`，最终 chunk 含 `usage` 用量。Anthropic 格式流式遵循 Anthropic SSE 规范。\n\nPython SDK 流式：\n\n```python\nstream = client.chat.completions.create(\n    model=\"minimax-m2.5\",\n    messages=[{\"role\": \"user\", \"content\": \"写一首五言绝句\"}],\n    stream=True,\n)\nfor chunk in stream:\n    delta = chunk.choices[0].delta.content\n    if delta:\n        print(delta, end=\"\", flush=True)\n```",[],{"title":54,"path":55,"order":25,"description":56,"requiredFlags":57,"navigationHidden":11,"content":58,"children":59},"多模态输入","chat\u002Fmultimodal","查看图片和音频等多模态内容的输入格式与模型能力限制。",[],"# 多模态输入\n\n本页说明对话接口的多模态输入能力。SilvaMux 对多模态内容**透传**给模型侧，能否处理取决于模型本身。\n\n## 图片输入（vision）\n\n支持 OpenAI vision 格式，在 `messages` 的 `content` 中传入 `image_url`：\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n        ]\n      }\n    ]\n  }'\n```\n\n- `image_url.url` 可以是公网 URL，或 base64 编码（`data:image\u002Fjpeg;base64,...`）。\n- 平台不解析也不剥离图片内容，原样转发给模型侧。\n- 是否支持图片输入由模型决定（如部分多模态模型支持，纯文本模型会报错）。\n\n## 音频输入\n\n支持 OpenAI audio 格式，在 `content` 中传入 `input_audio`：\n\n```json\n{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n```\n\n- 平台透传，能否处理由模型决定。\n- 音频 token 按普通输入 token 计价（无独立多模态单价）。",[],{"title":61,"path":62,"order":33,"description":63,"requiredFlags":64,"navigationHidden":11,"content":65,"children":66},"对话错误码","chat\u002Ferrors","查看对话接口的错误格式、错误码和处理建议。",[],"# 对话错误码\n\n对话接口（Gateway API）使用 OpenAI 兼容错误格式：\n\n```json\n{\n  \"error\": {\n    \"message\": \"具体错误信息\",\n    \"type\": \"gateway_error\",\n    \"code\": \"ERROR_CODE\"\n  }\n}\n```\n\nAnthropic \u002F Volcengine 格式的错误形状各有差异，但 `code` 字段一致。\n\n## 常见错误码\n\n| 错误码 | HTTP | 说明 |\n| --- | --- | --- |\n| `MODEL_REQUIRED` | 400 | 请求体缺少 `model` 字段 |\n| `MODEL_NOT_FOUND` | 400 | 模型不存在或不可用 |\n| `INVALID_REQUEST` | 400 | 请求参数无效 |\n| `INVALID_REQUEST_BODY` | 400 | 请求体解析失败 |\n| `UNAUTHORIZED` | 401 | 认证失败（API Key\u002FJWT 无效） |\n| `MODEL_ACCESS_DENIED` | 403 | 组织缺少该模型所需权限标志 |\n| `INSUFFICIENT_BALANCE` | 402 | 余额不足 |\n| `PRE_DEDUCT_FAILED` | 400\u002F402 | 预扣费失败（参数错误=400，落库失败=402） |\n| `RATE_LIMITED` | 429 | 触发限流 |\n| `UPSTREAM_UNAVAILABLE` | 502 | 模型侧请求发送失败 |\n| `UPSTREAM_HTTP_ERROR` | 502 | 模型侧返回 4xx\u002F5xx |\n| `UPSTREAM_PROVIDER_ERROR` | 502 | 模型侧业务错误 |\n| `UPSTREAM_INVALID_RESPONSE` | 502 | 模型侧响应无法解析 |\n| `INTERNAL` | 500 | 内部错误 |\n\n## 模型侧错误透传\n\n模型侧返回 4xx\u002F5xx 时，SilvaMux 会脱敏后透传错误响应，HTTP 状态码保持一致，此时不会产生扣费。\n\n## 重试建议\n\n| HTTP 状态码 | 建议 |\n| --- | --- |\n| 400 | 不要重试，修正请求参数 |\n| 401 | 不要重试，检查认证信息 |\n| 402 | 不要重试，充值后再试 |\n| 403 | 不要重试，联系管理员 |\n| 429 | 等待后重试，建议指数退避 |\n| 500 | 可以重试，建议间隔 1-5 秒 |\n| 502 | 可以重试，模型侧暂时不可用 |\n\n每个请求返回 `X-Request-Id` header（格式 `REQ-xxxx`），排查问题时提供此 ID。",[],{"title":68,"path":69,"order":70,"description":71,"requiredFlags":72,"navigationHidden":11,"content":73,"children":74},"图片生成","images",30,"了解文生图和图片编辑两类图片生成能力。",[],"# 图片生成\n\n图片生成支持文生图与图生图（图片编辑）。\n\n- 图片生成\n- 图片编辑",[75,81,89],{"title":68,"path":76,"order":8,"description":77,"requiredFlags":78,"navigationHidden":11,"content":79,"children":80},"images\u002Ftext-to-image","使用 OpenAI Images 或 Gemini 兼容格式根据提示词生成图片。",[],"# 图片生成\n\n文生图接口根据模型分为两种风格：OpenAI Images API 风格（豆包 Seedream）和 Gemini `generateContent` 风格。\n\n\n## OpenAI 风格（Seedream）\n\n```\nPOST \u002Fapi\u002Fv3\u002Fimages\u002Fgenerations\n```\n\n**认证：** `Authorization: Bearer \u003CAPI_KEY>` 或 `x-api-key: \u003CAPI_KEY>`\n\n### 关键参数\n\n| 参数 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| `model` | string | 是 | 模型调用名，如 `doubao-seedream-5-0-260128` |\n| `prompt` | string | 是 | 图片描述 |\n| `n` | integer | 否 | 图片数量，默认 1 |\n| `size` | string | 否 | 尺寸，如 `1024x1024`，具体支持尺寸因模型而异 |\n| `stream` | boolean | 否 | 是否开启 SSE 流式返回中间图 |\n\n> `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3` 即接入域名下的 `\u002Fapi\u002Fv3`，对应路由 `\u002Fapi\u002Fv3\u002Fimages\u002Fgenerations`。\n\n### 示例\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3\u002Fimages\u002Fgenerations \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"doubao-seedream-5-0-260128\",\n    \"prompt\": \"一只戴墨镜的柴犬坐在咖啡馆里\",\n    \"size\": \"1024x1024\",\n    \"n\": 1\n  }'\n```\n\n响应：\n\n```json\n{\n  \"created\": 1234567890,\n  \"data\": [{\"url\": \"https:\u002F\u002F...\"}],\n  \"usage\": {\"output_images\": 1}\n}\n```\n\n## Gemini 风格\n\nGemini `generateContent` 风格，适合 Gemini 图像模型。\n\n```\nPOST \u002Fapi\u002Fv1beta\u002Fmodels\u002F{model}:generateContent\n```\n\n**认证：** `Authorization: Bearer \u003CAPI_KEY>` 或 `x-api-key: \u003CAPI_KEY>`\n\n### 示例\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1beta\u002Fmodels\u002Fgemini-3.1-flash-image:generateContent \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"contents\": [\n      {\"role\": \"user\", \"parts\": [{\"text\": \"画一只坐在窗台上的猫\"}]}\n    ],\n    \"generationConfig\": {\n      \"responseModalities\": [\"TEXT\", \"IMAGE\"],\n      \"imageConfig\": {\"aspectRatio\": \"1:1\", \"imageSize\": \"1K\"}\n    }\n  }'\n```\n\n响应保持 Gemini 格式，计费字段在 `usageMetadata` 中。\n\n## 上传限制\n\n请求体大小不超过 64 MB。超出返回 `413`（`REQUEST_TOO_LARGE`）。\n\n## 可用模型\n\n样例模型：`doubao-seedream-5-0-260128`（Seedream）、`gemini-3.1-flash-image`（Gemini）。\n\n> 完整模型清单见[模型广场](\u002Fmodels)。\n\n## 计费\n\n文生图按生成张数计费，具体单价调 `GET \u002Fbilling\u002Fmodels` 接口。",[],{"title":82,"path":83,"order":84,"description":85,"requiredFlags":86,"navigationHidden":11,"content":87,"children":88},"图片编辑","images\u002Fimage-edit",2,"使用 multipart\u002Fform-data 上传图片并根据提示词进行编辑。",[],"# 图片编辑\n\n图生图（图片编辑）接口兼容 OpenAI Images Edits 风格，使用 `multipart\u002Fform-data` 上传图片并按提示词编辑。\n\n\n```\nPOST \u002Fapi\u002Fv3\u002Fimages\u002Fedits\n```\n\n**认证：** `Authorization: Bearer \u003CAPI_KEY>` 或 `x-api-key: \u003CAPI_KEY>`\n\n## 关键参数\n\n| 参数 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| `model` | string | 是 | 模型调用名，如 `gpt-image-2` |\n| `image` | file | 是 | 输入图片，最多 16 张（重复传入 `image=@...`） |\n| `prompt` | string | 是 | 编辑指令 |\n| `size` | string | 否 | 尺寸，如 `1024x1024` |\n| `mask` | file | 否 | 蒙版图 |\n| `n` | integer | 否 | 输出图片数量 |\n| `stream` | boolean | 否 | 是否开启 SSE 流式返回中间图 |\n\n> `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3` 即接入域名下的 `\u002Fapi\u002Fv3`，对应路由 `\u002Fapi\u002Fv3\u002Fimages\u002Fedits`。\n\n## 示例\n\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv3\u002Fimages\u002Fedits \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -F \"model=gpt-image-2\" \\\n  -F \"image=@photo.png\" \\\n  -F \"prompt=给图片加上一些装饰文字\" \\\n  -F \"size=1024x1024\"\n```\n\n`background`、`partial_images` 等字段透传给模型侧。\n\n## 上传限制\n\n请求体大小不超过 64 MB。超出返回 `413`（`REQUEST_TOO_LARGE`）。\n\n## 可用模型\n\n样例模型：`gpt-image-2`。\n\n> 完整模型清单见[模型广场](\u002Fmodels)。\n\n## 计费\n\n图生图按生成张数计费，具体单价调 `GET \u002Fbilling\u002Fmodels` 接口。",[],{"title":90,"path":91,"order":92,"description":93,"requiredFlags":94,"navigationHidden":11,"content":95,"children":96},"图片错误码","images\u002Ferrors",4,"查看图片接口的错误格式、错误码和处理建议。",[],"# 图片错误码\n\n图片生成接口的错误格式与对话接口一致（OpenAI 兼容）。常见错误码：\n\n| 错误码 | HTTP | 说明 |\n| --- | --- | --- |\n| `MODEL_NOT_FOUND` | 400 | 模型不存在或不可用 |\n| `INVALID_REQUEST` | 400 | 请求参数无效 |\n| `UNAUTHORIZED` | 401 | 认证失败 |\n| `INSUFFICIENT_BALANCE` | 402 | 余额不足 |\n| `PRE_DEDUCT_FAILED` | 400\u002F402 | 预扣费失败 |\n| `CONCURRENCY_LIMIT_EXCEEDED` | 429 | 图片生成并发上限 |\n| `RATE_LIMITED` | 429 | 触发限流 |\n| `REQUEST_TOO_LARGE` | 413 | 请求体超过 64MB |\n| `UPSTREAM_HTTP_ERROR` | 502 | 模型侧返回 4xx\u002F5xx |\n| `UPSTREAM_PROVIDER_ERROR` | 502 | 模型侧业务错误 |\n| `INTERNAL` | 500 | 内部错误 |",[],{"title":98,"path":99,"order":100,"description":101,"requiredFlags":102,"navigationHidden":11,"content":103,"children":104},"视频生成","video",40,"了解视频与 3D 的素材选用。",[],"# 视频生成\n\n视频与 3D 生成相关的素材选用说明。\n\n- 素材选用指南",[105,112],{"title":106,"path":107,"order":84,"description":108,"requiredFlags":109,"navigationHidden":11,"content":110,"children":111},"素材选用指南","video\u002Fmaterial-guide","根据视频生成场景准备和选择图片、视频及音频素材。",[],"# 素材选用指南\n\n视频生成支持参考图片、视频、音频等多种素材。本页通过对比案例说明如何准备和上传素材，以获得更理想的生成效果。\n\n> ⚠️ 上传素材时，**若将目标人脸图、全身参考图及细节参考图合并为同一张图片**，可能导致各参考元素在画面中占比较小，增加模型识别难度，造成生成视频中的人物形象与所上传素材出现偏差，或触发风控拦截。\n\n建议将人物面部特写、服装细节等关键内容**独立分割为单独的图片**上传。\n\n## 案例对比：3D 动画亲子\n\n### 案例 A（推荐）\n\n输入：背景参考图 + 人物妆造三视图 + **人物面部无表情特写图** + 提示词\n\n![](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2a.webp)\n\n提示词：\n\n> 3d 动画风格，背景参考图片 1。人物 A（妆造参考图片 2；面部特征严格参考图片 3）和人物 B（妆造参考图片 4；面部特征严格参考图片 5）手牵手走在花园的小径上，镜头处于人物背后。镜头切到前面，人物 A 拿起一朵鲜花，轻轻递给人物 B。背景音效：轻柔的风吹动树叶和花朵，鸟鸣声。人物 B 微笑接过花，轻轻闻了闻花香，然后蹲下低头与人物 A 微笑对视，轻轻拍拍人物 A 的头，说：\"thank you\"。背景音效：风铃轻响。\n\n\u003Cvideo style=\"max-width: 480px; margin: 0 auto;\" src=\"https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2a-h265.mp4\" controls>\u003C\u002Fvideo>\n\n### 案例 B\n\n输入：背景参考图 + 人物妆造三视图 + 提示词（**缺少人物面部特写图**）\n\n![](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2b.webp)\n\n\u003Cvideo style=\"max-width: 480px; margin: 0 auto;\" src=\"https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2b-h265.mp4\" controls>\u003C\u002Fvideo>\n\n### 案例 C\n\n输入：背景参考图 + **人物妆造正视图**（非三视图）+ 提示词\n\n![](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2c.webp)\n\n\u003Cvideo style=\"max-width: 480px; margin: 0 auto;\" src=\"https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fcases\u002F2c-h265.mp4\" controls>\u003C\u002Fvideo>\n\n### 对比\n\n- 案例 A（三视图 + 面部特写图）：人物面部特征还原最佳。\n- 案例 B（三视图，无面部特写图）：面部特征一致性较差。\n- 案例 C（正视图，非三视图）：妆造与面部特征一致性均较差。\n\n## 小结\n\n| 素材组合 | 效果 |\n| --- | --- |\n| 背景图 + 妆造三视图 + 面部特写图 | 最佳 |\n| 背景图 + 妆造三视图（无面部特写） | 面部一致性差 |\n| 背景图 + 妆造正视图 | 妆造与面部都差 |\n\n需要使用平台素材库时，请联系 SilvaMux 团队获取接入说明。",[],{"title":113,"path":114,"order":33,"description":115,"requiredFlags":116,"navigationHidden":11,"content":117,"children":118},"视频与任务错误码","video\u002Ferrors","查看视频与 3D 任务接口的错误码和处理建议。",[],"# 视频与任务错误码\n\n视频生成接口的错误格式与对话接口一致（OpenAI 兼容）。常见错误码：\n\n| 错误码 | HTTP | 说明 |\n| --- | --- | --- |\n| `MODEL_NOT_FOUND` | 400 | 模型不存在或不可用 |\n| `INVALID_REQUEST` | 400 | 请求参数无效 |\n| `INVALID_CALLBACK_URL` | 400 | 回调 URL 无效 |\n| `UNAUTHORIZED` | 401 | 认证失败 |\n| `MODEL_ACCESS_DENIED` | 403 | 组织缺少模型权限标志 |\n| `INSUFFICIENT_BALANCE` | 402 | 余额不足 |\n| `PRE_DEDUCT_FAILED` | 400\u002F402 | 预扣费失败 |\n| `CONCURRENCY_LIMIT_EXCEEDED` | 429 | 视频生成并发上限 |\n| `RATE_LIMITED` | 429 | 触发限流 |\n| `UPSTREAM_HTTP_ERROR` | 502 | 模型侧返回 4xx\u002F5xx |\n| `UPSTREAM_PROVIDER_ERROR` | 502 | 模型侧业务错误 |\n| `UPSTREAM_INVALID_RESPONSE` | 502 | 模型侧响应无法解析 |\n| `INTERNAL` | 500 | 内部错误 |\n\n取消任务的错误：\n\n| HTTP | 错误码 | 说明 |\n| --- | --- | --- |\n| 404 | `NOT_FOUND` | 任务不存在 |\n| 409 | `INVALID_STATE` | 任务不在 queued 状态 |\n| 502 | `UPSTREAM_CANCEL_FAILED` | 模型侧取消失败 |",[],{"title":120,"path":121,"order":122,"description":123,"requiredFlags":124,"navigationHidden":11,"content":125,"children":126},"即梦AI","dreamina",50,"查看即梦 AI 能力和数字人文档入口。",[],"# 即梦AI\n\n- OmniHuman 数字人",[127],{"title":128,"path":129,"order":17,"description":130,"requiredFlags":131,"navigationHidden":11,"content":132,"children":133},"OmniHuman 1.5","dreamina\u002Fomni-human","使用图片和音频生成 OmniHuman 数字人视频。",[],"# 即梦 OmniHuman 1.5\n\nOmniHuman1.5（即梦同源数字人模型），该模型可根据用户上传的单张图片+音频，生成与图片对应的视频效果。支持输入任意画幅包含人物或其他主体（宠物、动漫等）的图片，结合音频，生成高质量的视频。\n\n人物的情绪、动作与音频具有强关联性，支持通过提示词（prompt）对画面、动作、运镜进行调整。同时OmniHuman1.5对动漫、宠物等形象支持较好，允许指定讲话人\u002F主体，可广泛应用于内容表达、唱歌和表演等场景。\n\n相较于上一代模型，OmniHuman1.5 在运动自然度和结构稳定性提升明显，在人物\u002F主体的运动表现力和画面质量上更优。可以广泛应用于制作剧情对话、多人对话\u002F对唱、商品交互、漫剧等内容。对比其他视频通用模型，OmniHuman 数字人大模型在人物\u002F主体的剧情演绎效果上极具优势。\n\n具体模型介绍细节，可参考[火山文档](https:\u002F\u002Fdocs.volcengine.com\u002Fdocs\u002F85621\u002F1834143?lang=zh)。\n\n## 调用示例\n\n千木提供与火山相同的即梦 OmniHuman 1.5 API，您可以使用火山 SDK 或是通过自研 API 接入即梦 OmniHuman 1.5。\n\n\n以火山 Python SDK 为例，使用 `pip install volcengine` 安装示例所需 SDK 后，运行如下示例脚本：\n\n```python\n# coding:utf-8\nimport json\nimport threading\nfrom time import sleep\n\nfrom volcengine.ApiInfo import ApiInfo\nfrom volcengine.Credentials import Credentials\nfrom volcengine.base.Service import Service\nfrom volcengine.ServiceInfo import ServiceInfo\nfrom volcengine.visual.VisualService import VisualService\n\nclass SilvaMuxVisualService(VisualService):\n    def __new__(cls, *args, **kwargs):\n        return object.__new__(cls, *args, **kwargs)\n\n    def __init__(self):\n        self.service_info = SilvaMuxVisualService.get_service_info()\n        self.api_info = SilvaMuxVisualService.get_api_info()\n        super(VisualService, self).__init__(self.service_info, self.api_info)\n\n    def get_service_info():\n        service_info = ServiceInfo(\"www.silvamux.com\", # 如需使用海外版，请替换为 www.silvamux.io\n                                   {}, Credentials('', '', 'cv', 'cn-north-1'), 30, 30, 'https')\n        return service_info\n\n    def get_api_info():\n        api_info = {\n            \"CVGetResult\": ApiInfo(\"POST\", \"\u002Fapi\u002Fark\", {\"Action\": \"CVGetResult\", \"Version\": \"2022-08-31\"}, {}, {}),\n            \"CVSubmitTask\": ApiInfo(\"POST\", \"\u002Fapi\u002Fark\", {\"Action\": \"CVSubmitTask\", \"Version\": \"2022-08-31\"}, {}, {}),\n            \"CVProcess\": ApiInfo(\"POST\", \"\u002Fapi\u002Fark\", {\"Action\": \"CVProcess\", \"Version\": \"2022-08-31\"}, {}, {}),\n        }\n        return api_info\n\n\ndef get_result(req_key, task_id):\n    i = 0\n    while True:\n        i += 1\n        result_resp = visual_service.cv_get_result({\n            \"req_key\": req_key,\n            \"task_id\": task_id\n        })\n        result_status = result_resp['data']['status']\n        print(f\"  第 {i} 次查询结果，状态: {result_status}\")\n        if result_status == \"in_queue\" or result_status == \"generating\":\n            sleep(3)\n            continue\n        if result_status == \"done\":\n            if 'data' in result_resp and 'resp_data' in result_resp['data']:\n                return json.loads(result_resp['data']['resp_data'])\n            elif 'data' in result_resp and 'video_url' in result_resp['data']:\n                return result_resp['data']['video_url']\n            else:\n                print(f\"  解析失败：{result_resp}\")\n                raise Exception(\"result parse failed\")\n        raise Exception(f\"task {result_status}\")\n\nif __name__ == '__main__':\n    image_url = \"https:\u002F\u002Fportal.volccdn.com\u002Fobj\u002Fvolcfe\u002Fcloud-universal-doc\u002Fupload_7297f5f099cee6b48f5417e47ac8291b.png\"\n    audio_url = \"https:\u002F\u002Fp9-arcosite.byteimg.com\u002Fobj\u002Ftos-cn-i-goo7wpa0wc\u002F64c66c987973400491c0b487d832537c\"\n    mask_urls = []\n\n    visual_service = SilvaMuxVisualService()\n\n    # 请使用千木后台生成的兼容“凭据”以调用火山兼容 API\n    visual_service.set_ak('AKexampleReplaceWithRealAK')\n    visual_service.set_sk('SKexampleReplaceWithRealSK')\n\n    print(\"第一步：主体识别 如果确认图片中有人类主体，可以跳过该步骤\")\n    step1_resp = visual_service.cv_submit_task({\n        \"req_key\": \"jimeng_realman_avatar_picture_create_role_omni_v15\",\n        \"image_url\": image_url\n    })\n    step1_resp_task_id = step1_resp['data']['task_id']\n    print(f\"  任务ID: {step1_resp_task_id}\")\n\n    step1_result = get_result(\"jimeng_realman_avatar_picture_create_role_omni_v15\", step1_resp_task_id)\n    if step1_result['status'] != 1:\n        raise Exception(\"没有检测到主体，任务失败，请更换图片尝试\")\n\n    print(\"第二步：主体检测 如果在视频生成时不需要指定主体说话，可以跳过该步骤\")\n    step2_resp = visual_service.cv_process({\n        \"req_key\": \"jimeng_realman_avatar_object_detection\",\n        \"image_url\": image_url\n    })\n    step2_data = json.loads(step2_resp['data']['resp_data'])\n    mask_urls = step2_data['object_detection_result']['mask']['url']\n    print(f\"  遮罩列表: {mask_urls}\")\n\n    print(\"第三步：视频生成\")\n    step3_resp = visual_service.cv_submit_task({\n        \"req_key\": \"jimeng_realman_avatar_picture_omni_v15\",\n        \"image_url\": image_url,\n        \"mask_url\": mask_urls,\n        \"audio_url\": audio_url,\n    })\n    step3_resp_task_id = step3_resp['data']['task_id']\n    print(f\"  任务ID: {step3_resp_task_id}\")\n\n    step3_result = get_result(\"jimeng_realman_avatar_picture_omni_v15\", step3_resp_task_id)\n    print(f\"  结果： {step3_result}\")\n```\n\n具体 API 文档如下：\n\n- [调用步骤1：主体识别](https:\u002F\u002Fdocs.volcengine.com\u002Fdocs\u002F85621\u002F1828975?lang=zh)\n- [调用步骤2：主体检测](https:\u002F\u002Fdocs.volcengine.com\u002Fdocs\u002F85621\u002F1829011?lang=zh)\n- [调用步骤3：视频生成](https:\u002F\u002Fdocs.volcengine.com\u002Fdocs\u002F85621\u002F1829013?lang=zh)",[],{"title":135,"path":136,"order":137,"description":138,"requiredFlags":139,"navigationHidden":11,"content":140,"children":141},"常见问题","faq",60,"集中查看接入、对话、图片和视频任务中的常见问题。",[],"# 常见问题\n\n## 接入与账号\n\n### Base URL 是什么？\n\nBase URL 是 SilvaMux 的接入域名。文档示例中的 `https:\u002F\u002Fwww.silvamux.com` 会在网站构建时替换为当前站点配置的域名。\n\n### API Key 在哪创建？\n\n在控制台 **密钥** 页面创建。API Key 以 `sk_live_` 开头，仅在创建时完整显示一次，建议存入环境变量 `SILVAMUX_API_KEY`。\n\n### `model` 字段填什么？\n\n填写模型详情页展示的调用名，优先使用稳定的 alias。不要根据展示名称自行拼接。\n\n## 对话与模型\n\n### 应该选择统一入口还是兼容入口？\n\n已经使用 OpenAI、Anthropic、Gemini、Volcengine 或智谱 SDK 时，优先选择对应兼容入口；需要通过一个入口跨协议调用时，可使用 SilvaMux 统一入口。\n\n### 多模态内容为什么调用失败？\n\n模型必须支持对应输入类型。纯文本模型收到图片或音频内容时可能返回错误。\n\n## 图片生成\n\n### 文生图和图片编辑用同一个接口吗？\n\n不是。文生图和图片编辑使用不同接口，请按接口文档选择。\n\n### 413 REQUEST_TOO_LARGE\n\n请求体超过大小上限。压缩图片或减少输入图片数量后重试。\n\n## 视频与任务\n\n### 视频生成使用火山 AK\u002FSK 吗？\n\n视频生成使用 SilvaMux API Key；火山 V4 签名用于火山兼容的素材管理接口。\n\n### 视频任务怎么查询结果？\n\n创建任务后轮询任务查询接口，直到状态变为成功或失败。具体状态和结果字段以接口契约为准。\n\n### 429 CONCURRENCY_LIMIT_EXCEEDED\n\n达到并发上限，等待后重试。",[],[143,174,185,196,206,217,228,257,266,276,298,315],{"name":144,"description":145,"operations":146},"OpenAI 兼容","OpenAI 兼容接口",[147,158,165],{"operationId":148,"kind":149,"tag":150,"summary":151,"description":152,"method":153,"path":154,"sourcePath":154,"contractUrl":155,"href":156,"currentPath":157},"createOpenAIChatCompletion","operation","OpenAI","OpenAI Chat Completions","OpenAI Chat Completions 兼容入口，额外字段按模型能力透传。","POST","\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions","\u002Fopenapi\u002Fsilvamux.json","\u002Fdocs\u002Fapi-reference\u002FcreateOpenAIChatCompletion","api-reference\u002FcreateOpenAIChatCompletion",{"operationId":159,"kind":149,"tag":150,"summary":160,"description":161,"method":153,"path":162,"sourcePath":162,"contractUrl":155,"href":163,"currentPath":164},"createOpenAIResponse","OpenAI Responses","","\u002Fapi\u002Fv1\u002Fresponses","\u002Fdocs\u002Fapi-reference\u002FcreateOpenAIResponse","api-reference\u002FcreateOpenAIResponse",{"operationId":166,"kind":149,"tag":167,"summary":168,"description":169,"method":170,"path":171,"sourcePath":171,"contractUrl":155,"href":172,"currentPath":173},"listModels","Models","模型列表","返回可直接用于模型调用的聚合模型名。未鉴权时返回公开模型；鉴权后按组织模型权限过滤。","GET","\u002Fapi\u002Fv1\u002Fmodels","\u002Fdocs\u002Fapi-reference\u002FlistModels","api-reference\u002FlistModels",{"name":175,"description":176,"operations":177},"Anthropic 兼容","Anthropic 兼容接口",[178],{"operationId":179,"kind":149,"tag":180,"summary":175,"description":181,"method":153,"path":182,"sourcePath":182,"contractUrl":155,"href":183,"currentPath":184},"createAnthropicMessage","Anthropic","标准 Anthropic Messages 兼容路径；历史路径 \u002Fapi\u002Fanthropic\u002Fv1\u002Fmessages 继续兼容。","\u002Fapi\u002Fv1\u002Fmessages","\u002Fdocs\u002Fapi-reference\u002FcreateAnthropicMessage","api-reference\u002FcreateAnthropicMessage",{"name":186,"description":187,"operations":188},"Gemini 兼容","Gemini 兼容接口",[189],{"operationId":190,"kind":149,"tag":191,"summary":186,"description":192,"method":153,"path":193,"sourcePath":193,"contractUrl":155,"href":194,"currentPath":195},"generateGeminiContent","Gemini","标准 Gemini v1beta 兼容路径；历史路径 \u002Fapi\u002Fv1\u002Fgemini\u002Fv1beta\u002Fmodels\u002F{model_action} 继续兼容。","\u002Fapi\u002Fv1beta\u002Fmodels\u002F{model_action}","\u002Fdocs\u002Fapi-reference\u002FgenerateGeminiContent","api-reference\u002FgenerateGeminiContent",{"name":197,"description":198,"operations":199},"Volcengine 兼容","Volcengine 兼容接口",[200],{"operationId":201,"kind":149,"tag":202,"summary":197,"description":161,"method":153,"path":203,"sourcePath":203,"contractUrl":155,"href":204,"currentPath":205},"createVolcengineChatCompletion","Volcengine","\u002Fapi\u002Fv3\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateVolcengineChatCompletion","api-reference\u002FcreateVolcengineChatCompletion",{"name":207,"description":208,"operations":209},"智谱兼容","智谱兼容接口",[210],{"operationId":211,"kind":149,"tag":212,"summary":207,"description":213,"method":153,"path":214,"sourcePath":214,"contractUrl":155,"href":215,"currentPath":216},"createZhipuChatCompletion","Zhipu","复用统一入口按 model 选路。","\u002Fapi\u002Fpaas\u002Fv4\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateZhipuChatCompletion","api-reference\u002FcreateZhipuChatCompletion",{"name":218,"description":219,"operations":220},"SilvaMux 统一入口","SilvaMux 跨协议统一入口",[221],{"operationId":222,"kind":149,"tag":223,"summary":218,"description":224,"method":153,"path":225,"sourcePath":225,"contractUrl":155,"href":226,"currentPath":227},"createUnifiedChatCompletion","Unified","可选的跨协议统一入口。按 model 选择上游，并将响应、SSE 和错误统一为 OpenAI Chat 格式。","\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateUnifiedChatCompletion","api-reference\u002FcreateUnifiedChatCompletion",{"name":229,"description":230,"operations":231},"图片生成与编辑","图片生成和编辑",[232,239,245,251],{"operationId":233,"kind":149,"tag":234,"summary":235,"description":161,"method":153,"path":236,"sourcePath":236,"contractUrl":155,"href":237,"currentPath":238},"createImageV1","Images","创建图片（OpenAI v1）","\u002Fapi\u002Fv1\u002Fimages\u002Fgenerations","\u002Fdocs\u002Fapi-reference\u002FcreateImageV1","api-reference\u002FcreateImageV1",{"operationId":240,"kind":149,"tag":234,"summary":241,"description":161,"method":153,"path":242,"sourcePath":242,"contractUrl":155,"href":243,"currentPath":244},"createImageV3","创建图片（Volcengine v3）","\u002Fapi\u002Fv3\u002Fimages\u002Fgenerations","\u002Fdocs\u002Fapi-reference\u002FcreateImageV3","api-reference\u002FcreateImageV3",{"operationId":246,"kind":149,"tag":234,"summary":247,"description":161,"method":153,"path":248,"sourcePath":248,"contractUrl":155,"href":249,"currentPath":250},"editImageV1","编辑图片（OpenAI v1）","\u002Fapi\u002Fv1\u002Fimages\u002Fedits","\u002Fdocs\u002Fapi-reference\u002FeditImageV1","api-reference\u002FeditImageV1",{"operationId":252,"kind":149,"tag":234,"summary":253,"description":161,"method":153,"path":254,"sourcePath":254,"contractUrl":155,"href":255,"currentPath":256},"editImageV3","编辑图片（Volcengine v3）","\u002Fapi\u002Fv3\u002Fimages\u002Fedits","\u002Fdocs\u002Fapi-reference\u002FeditImageV3","api-reference\u002FeditImageV3",{"name":54,"description":258,"operations":259},"多模态内容的输入方式与限制",[260],{"operationId":261,"kind":262,"tag":263,"summary":54,"description":264,"method":161,"path":161,"sourcePath":161,"contractUrl":161,"href":265,"currentPath":55},"multimodal-input","guide","ConversationGuides","图片和音频等多模态内容的输入格式与限制。","\u002Fdocs\u002Fchat\u002Fmultimodal",{"name":267,"description":267,"operations":268},"火山兼容素材与即梦",[269],{"operationId":270,"kind":149,"tag":271,"summary":267,"description":272,"method":153,"path":273,"sourcePath":273,"contractUrl":155,"href":274,"currentPath":275},"callArkCompatibleAction","Ark","多个素材和 CV Action 共用该路径，请求体结构由 Action 和 Version 决定。","\u002Fapi\u002Fark","\u002Fdocs\u002Fapi-reference\u002FcallArkCompatibleAction","api-reference\u002FcallArkCompatibleAction",{"name":277,"description":278,"operations":279},"客户查询接口","客户余额与用量",[280,290],{"operationId":281,"kind":149,"tag":282,"summary":283,"description":284,"method":170,"path":285,"sourcePath":286,"contractUrl":287,"href":288,"currentPath":289},"customer-balance","Customer","查询余额","Return the current balance for the API key's organization. API key only.","\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Fbalance","\u002Fcustomer\u002Fbalance","\u002Fopenapi\u002Fcustomer.json","\u002Fdocs\u002Fapi-reference\u002Fcustomer-balance","api-reference\u002Fcustomer-balance",{"operationId":291,"kind":149,"tag":282,"summary":292,"description":293,"method":170,"path":294,"sourcePath":295,"contractUrl":287,"href":296,"currentPath":297},"customer-usage","查询用量","Return aggregated usage (totals + per-model) for the API key's project over a time range. API key only.","\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Fusage","\u002Fcustomer\u002Fusage","\u002Fdocs\u002Fapi-reference\u002Fcustomer-usage","api-reference\u002Fcustomer-usage",{"name":299,"description":300,"operations":301},"错误码","错误格式、错误码与处理建议",[302,306,309,312],{"operationId":303,"kind":262,"tag":304,"summary":31,"description":161,"method":161,"path":161,"sourcePath":161,"contractUrl":161,"href":305,"currentPath":32},"common-errors","ErrorGuides","\u002Fdocs\u002Fcommon\u002Ferrors",{"operationId":307,"kind":262,"tag":304,"summary":61,"description":161,"method":161,"path":161,"sourcePath":161,"contractUrl":161,"href":308,"currentPath":62},"chat-errors","\u002Fdocs\u002Fchat\u002Ferrors",{"operationId":310,"kind":262,"tag":304,"summary":90,"description":161,"method":161,"path":161,"sourcePath":161,"contractUrl":161,"href":311,"currentPath":91},"images-errors","\u002Fdocs\u002Fimages\u002Ferrors",{"operationId":313,"kind":262,"tag":304,"summary":113,"description":161,"method":161,"path":161,"sourcePath":161,"contractUrl":161,"href":314,"currentPath":114},"video-errors","\u002Fdocs\u002Fvideo\u002Ferrors",{"name":316,"description":317,"operations":318},"视频与 3D","视频与 3D 异步任务",[319,326,331,337],{"operationId":320,"kind":149,"tag":321,"summary":322,"description":161,"method":153,"path":323,"sourcePath":323,"contractUrl":155,"href":324,"currentPath":325},"createContentGenerationTask","VideoAnd3D","创建任务","\u002Fapi\u002Fv3\u002Fcontents\u002Fgenerations\u002Ftasks","\u002Fdocs\u002Fapi-reference\u002FcreateContentGenerationTask","api-reference\u002FcreateContentGenerationTask",{"operationId":327,"kind":149,"tag":321,"summary":328,"description":161,"method":170,"path":323,"sourcePath":323,"contractUrl":155,"href":329,"currentPath":330},"listContentGenerationTasks","任务列表","\u002Fdocs\u002Fapi-reference\u002FlistContentGenerationTasks","api-reference\u002FlistContentGenerationTasks",{"operationId":332,"kind":149,"tag":321,"summary":333,"description":161,"method":170,"path":334,"sourcePath":334,"contractUrl":155,"href":335,"currentPath":336},"getContentGenerationTask","查询任务","\u002Fapi\u002Fv3\u002Fcontents\u002Fgenerations\u002Ftasks\u002F{id}","\u002Fdocs\u002Fapi-reference\u002FgetContentGenerationTask","api-reference\u002FgetContentGenerationTask",{"operationId":338,"kind":149,"tag":321,"summary":339,"description":161,"method":340,"path":334,"sourcePath":334,"contractUrl":155,"href":341,"currentPath":342},"cancelContentGenerationTask","取消任务","DELETE","\u002Fdocs\u002Fapi-reference\u002FcancelContentGenerationTask","api-reference\u002FcancelContentGenerationTask",{"openapi":344,"info":345,"servers":349,"tags":352,"paths":354,"components":418},"3.0.3",{"title":346,"version":347,"description":348},"SilvaMux Customer API","1.0.0","SilvaMux 客户余额与用量查询接口。",[350],{"url":351},"\u002Fapi\u002Fbusiness\u002Fv1",[353],{"name":282,"description":278},{"\u002Fcustomer\u002Fbalance":355,"\u002Fcustomer\u002Fusage":387},{"get":356},{"description":284,"operationId":281,"parameters":357,"responses":369,"security":382,"summary":385,"tags":386},[358,365],{"description":359,"in":360,"name":361,"required":362,"schema":363},"Bearer API Key (sk_live_...)","header","Authorization",true,{"description":359,"type":364},"string",{"description":366,"in":360,"name":367,"schema":368},"Not required for API key auth","X-Organization-Id",{"description":366,"type":364},{"200":370,"default":376},{"content":371,"description":375},{"application\u002Fjson":372},{"schema":373},{"$ref":374},"#\u002Fcomponents\u002Fschemas\u002FCustomerBalanceResponse","OK",{"content":377,"description":381},{"application\u002Fproblem+json":378},{"schema":379},{"$ref":380},"#\u002Fcomponents\u002Fschemas\u002FErrorModel","Error",[383],{"apikey":384},[],"Get customer balance",[282],{"get":388},{"description":293,"operationId":291,"parameters":389,"responses":403,"security":413,"summary":416,"tags":417},[390,392,394,399],{"description":359,"in":360,"name":361,"required":362,"schema":391},{"description":359,"type":364},{"description":366,"in":360,"name":367,"schema":393},{"description":366,"type":364},{"description":395,"explode":11,"in":396,"name":397,"required":362,"schema":398},"RFC3339 start time (inclusive)","query","from",{"description":395,"type":364},{"description":400,"explode":11,"in":396,"name":401,"required":362,"schema":402},"RFC3339 end time (exclusive)","to",{"description":400,"type":364},{"200":404,"default":409},{"content":405,"description":375},{"application\u002Fjson":406},{"schema":407},{"$ref":408},"#\u002Fcomponents\u002Fschemas\u002FBillingUsageReportResponse",{"content":410,"description":381},{"application\u002Fproblem+json":411},{"schema":412},{"$ref":380},[414],{"apikey":415},[],"Get customer usage report",[282],{"schemas":419,"securitySchemes":714},{"AssetView":420,"BillingUsageReportResponse":450,"BuiltinToolCallsPricing":472,"CreateAssetRequest":479,"CustomerBalanceResponse":490,"ErrorDetail":498,"ErrorModel":506,"FlatTokenPricing":532,"InputTokensTiersPricing":544,"ModalityPriceTable":551,"ModalityTokenPricing":559,"ModelCapabilities":567,"PageResultAssetView":576,"Pricing":590,"PricingOutputTokensByAudioStruct":614,"PricingOutputTokensByVideoInputStruct":621,"PricingTier":628,"PublicListModelsOutputBody":635,"PublicModelView":644,"UsageReportModelBreakdown":664,"UsageReportTotals":697,"VideoResolutionPrice":709},{"additionalProperties":11,"properties":421,"required":441,"type":449},{"$schema":422,"asset_type":426,"asset_url":428,"created_at":430,"id":433,"name":435,"status":437,"url":439},{"description":423,"example":424,"format":425,"readOnly":362,"type":364},"A URL to the JSON Schema for this object.","https:\u002F\u002Fexample.com\u002Fschemas\u002FAssetView.json","uri",{"description":427,"type":364},"Asset type",{"description":429,"type":364},"Asset reference URL (asset:\u002F\u002F$volcengineAssetId)",{"description":431,"format":432,"type":364},"Creation time","date-time",{"description":434,"type":364},"Asset ID",{"description":436,"type":364},"Asset name",{"description":438,"type":364},"Asset status: processing, active, failed",{"description":440,"type":364},"Original asset URL",[442,443,444,445,446,447,448],"id","url","asset_type","name","asset_url","status","created_at","object",{"additionalProperties":11,"properties":451,"required":468,"type":449},{"$schema":452,"by_model":454,"from":459,"project_id":461,"to":463,"totals":465},{"description":423,"example":453,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FBillingUsageReportResponse.json",{"description":455,"items":456,"nullable":362,"type":458},"Per-model breakdown, ordered by cost_points desc",{"$ref":457},"#\u002Fcomponents\u002Fschemas\u002FUsageReportModelBreakdown","array",{"description":460,"format":432,"type":364},"Report start (RFC3339, inclusive)",{"description":462,"type":364},"Project filter ('' means org-wide)",{"description":464,"format":432,"type":364},"Report end (RFC3339, exclusive)",{"$ref":466,"description":467},"#\u002Fcomponents\u002Fschemas\u002FUsageReportTotals","Aggregated totals across all models",[397,401,469,470,471],"project_id","totals","by_model",{"additionalProperties":11,"properties":473,"required":476,"type":449},{"price_per_unit":474,"tool_name":475},{"type":364},{"type":364},[477,478],"tool_name","price_per_unit",{"additionalProperties":11,"properties":480,"required":489,"type":449},{"$schema":481,"asset_type":483,"name":485,"url":487},{"description":423,"example":482,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FCreateAssetRequest.json",{"description":484,"type":364},"Asset type: one of Image, Video, Audio",{"description":486,"type":364},"Asset name (derived from URL if empty)",{"description":488,"type":364},"Publicly accessible URL of the asset",[443,444,445],{"additionalProperties":11,"properties":491,"required":496,"type":449},{"$schema":492,"balance_points":494},{"description":423,"example":493,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FCustomerBalanceResponse.json",{"description":495,"type":364},"Current balance in points",[497],"balance_points",{"additionalProperties":11,"properties":499,"type":449},{"location":500,"message":502,"value":504},{"description":501,"type":364},"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",{"description":503,"type":364},"Error message text",{"description":505},"The value at the given location",{"additionalProperties":11,"properties":507,"type":449},{"$schema":508,"detail":510,"errors":513,"instance":517,"status":520,"title":525,"type":528},{"description":423,"example":509,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FErrorModel.json",{"description":511,"example":512,"type":364},"A human-readable explanation specific to this occurrence of the problem.","Property foo is required but is missing.",{"description":514,"items":515,"nullable":362,"type":458},"Optional list of individual error details",{"$ref":516},"#\u002Fcomponents\u002Fschemas\u002FErrorDetail",{"description":518,"example":519,"format":425,"type":364},"A URI reference that identifies the specific occurrence of the problem.","https:\u002F\u002Fexample.com\u002Ferror-log\u002Fabc123",{"description":521,"example":522,"format":523,"type":524},"HTTP status code",400,"int64","integer",{"description":526,"example":527,"type":364},"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","Bad Request",{"default":529,"description":530,"example":531,"format":425,"type":364},"about:blank","A URI reference to human-readable documentation for the error.","https:\u002F\u002Fexample.com\u002Ferrors\u002Fexample",{"additionalProperties":11,"properties":533,"required":539,"type":449},{"cache_read_explicit_tokens":534,"cache_read_tokens":535,"cache_write_tokens":536,"input_tokens":537,"output_tokens":538},{"type":364},{"type":364},{"type":364},{"type":364},{"type":364},[540,541,542,543],"input_tokens","output_tokens","cache_read_tokens","cache_write_tokens",{"additionalProperties":11,"properties":545,"required":549,"type":449},{"tiers":546},{"items":547,"nullable":362,"type":458},{"$ref":548},"#\u002Fcomponents\u002Fschemas\u002FPricingTier",[550],"tiers",{"additionalProperties":11,"properties":552,"type":449},{"audio":553,"default":554,"document":555,"image":556,"text":557,"video":558},{"type":364},{"type":364},{"type":364},{"type":364},{"type":364},{"type":364},{"additionalProperties":11,"properties":560,"required":566,"type":449},{"cache_read_tokens":561,"cache_write_tokens":563,"input_tokens":564,"output_tokens":565},{"$ref":562},"#\u002Fcomponents\u002Fschemas\u002FModalityPriceTable",{"$ref":562},{"$ref":562},{"$ref":562},[540,541],{"additionalProperties":11,"properties":568,"type":449},{"cache_size":569,"context_window":570,"icon_path":571,"max_output":572,"modalities":573,"released_at":575},{"format":523,"type":524},{"format":523,"type":524},{"type":364},{"format":523,"type":524},{"items":574,"nullable":362,"type":458},{"type":364},{"type":364},{"additionalProperties":11,"properties":577,"required":586,"type":449},{"$schema":578,"has_more":580,"items":582,"next_cursor":585},{"description":423,"example":579,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FPageResultAssetView.json",{"type":581},"boolean",{"items":583,"nullable":362,"type":458},{"$ref":584},"#\u002Fcomponents\u002Fschemas\u002FAssetView",{"nullable":362,"type":364},[587,588,589],"items","next_cursor","has_more",{"additionalProperties":11,"properties":591,"type":449},{"builtin_tool_calls":592,"flat_tokens":595,"input_tokens_tiers":597,"modality_tokens":599,"output_images":601,"output_images_by_resolution":602,"output_tokens":604,"output_tokens_by_audio":605,"output_tokens_by_video_input":607,"output_tokens_by_video_resolution":609,"per_request":612,"per_second":613},{"items":593,"type":458},{"$ref":594},"#\u002Fcomponents\u002Fschemas\u002FBuiltinToolCallsPricing",{"$ref":596},"#\u002Fcomponents\u002Fschemas\u002FFlatTokenPricing",{"$ref":598},"#\u002Fcomponents\u002Fschemas\u002FInputTokensTiersPricing",{"$ref":600},"#\u002Fcomponents\u002Fschemas\u002FModalityTokenPricing",{"type":364},{"additionalProperties":603,"type":449},{"type":364},{"type":364},{"$ref":606},"#\u002Fcomponents\u002Fschemas\u002FPricingOutputTokensByAudioStruct",{"$ref":608},"#\u002Fcomponents\u002Fschemas\u002FPricingOutputTokensByVideoInputStruct",{"additionalProperties":610,"type":449},{"$ref":611},"#\u002Fcomponents\u002Fschemas\u002FVideoResolutionPrice",{"type":364},{"type":364},{"additionalProperties":11,"properties":615,"required":618,"type":449},{"with_audio":616,"without_audio":617},{"type":364},{"type":364},[619,620],"with_audio","without_audio",{"additionalProperties":11,"properties":622,"required":625,"type":449},{"with_video_input":623,"without_video_input":624},{"type":364},{"type":364},[626,627],"with_video_input","without_video_input",{"additionalProperties":11,"properties":629,"required":632,"type":449},{"max_tokens":630,"pricing":631},{"format":523,"type":524},{"$ref":596},[633,634],"max_tokens","pricing",{"additionalProperties":11,"properties":636,"required":642,"type":449},{"$schema":637,"models":639},{"description":423,"example":638,"format":425,"readOnly":362,"type":364},"https:\u002F\u002Fexample.com\u002Fschemas\u002FPublicListModelsOutputBody.json",{"items":640,"nullable":362,"type":458},{"$ref":641},"#\u002Fcomponents\u002Fschemas\u002FPublicModelView",[643],"models",{"additionalProperties":11,"properties":645,"required":663,"type":449},{"aliases":646,"capabilities":648,"display_name":650,"id":651,"model_capabilities":652,"model_data":654,"pricing":656,"pricing_group":658,"priority":659,"tier":660,"types":661},{"items":647,"nullable":362,"type":458},{"type":364},{"$ref":649},"#\u002Fcomponents\u002Fschemas\u002FModelCapabilities",{"type":364},{"type":364},{"additionalProperties":653,"type":449},{},{"additionalProperties":655,"type":449},{},{"$ref":657},"#\u002Fcomponents\u002Fschemas\u002FPricing",{"type":364},{"format":523,"type":524},{"type":364},{"items":662,"nullable":362,"type":458},{"type":364},[442],{"additionalProperties":11,"properties":665,"required":686,"type":449},{"billable_prompt_tokens":666,"cache_creation_tokens":668,"cached_tokens":670,"completion_tokens":672,"cost_points":674,"generated_artifacts":676,"model":678,"prompt_tokens":680,"request_count":682,"total_tokens":684},{"description":667,"format":523,"type":524},"Summed billable prompt tokens",{"description":669,"format":523,"type":524},"Summed cache creation tokens",{"description":671,"format":523,"type":524},"Summed cached tokens",{"description":673,"format":523,"type":524},"Summed completion tokens",{"description":675,"type":364},"Total cost in points",{"description":677,"format":523,"type":524},"Summed generated artifacts",{"description":679,"type":364},"Aggregation key: user-supplied request_model, falling back to the configured model ID for legacy rows",{"description":681,"format":523,"type":524},"Summed prompt tokens",{"description":683,"format":523,"type":524},"Number of billed requests",{"description":685,"format":523,"type":524},"Summed total tokens",[687,688,689,690,691,692,693,694,695,696],"model","cost_points","prompt_tokens","cached_tokens","billable_prompt_tokens","completion_tokens","cache_creation_tokens","total_tokens","generated_artifacts","request_count",{"additionalProperties":11,"properties":698,"required":708,"type":449},{"billable_prompt_tokens":699,"cache_creation_tokens":700,"cached_tokens":701,"completion_tokens":702,"cost_points":703,"generated_artifacts":704,"prompt_tokens":705,"request_count":706,"total_tokens":707},{"format":523,"type":524},{"format":523,"type":524},{"format":523,"type":524},{"format":523,"type":524},{"description":675,"type":364},{"format":523,"type":524},{"format":523,"type":524},{"format":523,"type":524},{"format":523,"type":524},[688,689,690,691,692,693,694,695,696],{"additionalProperties":11,"properties":710,"required":713,"type":449},{"with_video_input":711,"without_video_input":712},{"type":364},{"type":364},[626,627],{"apikey":715},{"bearerFormat":716,"scheme":717,"type":718},"API Key","bearer","http"]