[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-detail-guide":3},{"tree":4,"doc":142,"breadcrumbs":224,"path":144,"apiReference":229},[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达到并发上限，等待后重试。",[],{"title":143,"path":144,"order":33,"description":145,"requiredFlags":146,"navigationHidden":147,"content":148,"children":149},"使用文档","guide","从项目、凭据、模型选择到费用与排查的操作指南。",[],true,"# 使用文档\n\n按实际使用流程了解 SilvaMux 的项目、凭据、模型、在线体验、费用和问题排查。",[150,157,164,171,178,186,193,201,208,216],{"title":151,"path":152,"order":8,"description":153,"requiredFlags":154,"navigationHidden":11,"content":155,"children":156},"核心概念","guide\u002Fcore-concepts","了解工作区、项目、API Key、模型调用名和接口格式。",[],"# 核心概念\n\nSilvaMux 使用工作区承载账户与费用，使用项目隔离业务，再通过绑定项目的 API Key 调用模型。\n\n| 概念 | 作用 |\n| --- | --- |\n| 工作区 | 账户、余额、账单和实名认证的归属单位 |\n| 项目 | 隔离不同业务或环境，用量可按项目归属 |\n| API Key | 用于模型调用，并绑定到一个项目 |\n| AK\u002FSK | 用于需要 Access Key ID 和 Secret Key 签名的兼容接口 |\n| 模型调用名 | 请求体 `model` 字段使用的名称 |\n| 接口格式 | 决定请求路径、请求体和响应结构 |\n\n## 个人用户的完整流程\n\n1. 注册并登录 SilvaMux。\n2. 创建一个用于测试或正式使用的项目。\n3. 在项目下创建 API Key，并立即安全保存。\n4. 前往[模型广场](\u002Fmodels)选择模型，确认调用名和支持的接口格式。\n5. 使用对应的接口路径和 API Key 发起请求。\n6. 在账单、用量和错误日志中查看运行情况。\n\n> 判断顺序：选择模型 → 复制调用名 → 确认支持格式 → 使用对应接口。",[],{"title":158,"path":159,"order":84,"description":160,"requiredFlags":161,"navigationHidden":11,"content":162,"children":163},"项目管理","guide\u002Fproject-management","创建项目并用项目隔离业务、环境和用量。",[],"# 项目管理\n\n项目用于隔离不同业务、环境和调用用量。创建 API Key 前，需要先准备至少一个项目。\n\n## 创建项目\n\n1. 登录控制台，在侧边栏进入“项目”。\n2. 点击“新建项目”。\n3. 填写项目名称，建议包含业务和环境，例如“个人助手-测试”。\n4. 点击“创建”。\n5. 在项目列表确认名称、项目 ID 和创建时间。\n\n![新建项目](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fproject-create.png)\n\n| 场景 | 建议 |\n| --- | --- |\n| 测试与正式环境 | 分别创建项目 |\n| 多个独立应用 | 每个应用使用独立项目 |\n| 临时验证 | 使用独立测试项目，结束后撤销对应 Key |",[],{"title":165,"path":166,"order":25,"description":167,"requiredFlags":168,"navigationHidden":11,"content":169,"children":170},"API Key 与凭据","guide\u002Fcredentials","创建、保存和管理 API Key 与 AK\u002FSK。",[],"# API Key 与凭据\n\nAPI Key 用于模型调用；AK\u002FSK 用于需要 Access Key ID 和 Secret Key 签名的兼容接口。两类凭据不能混用。\n\n## 创建 API Key\n\n1. 确认当前工作区下已有项目。\n2. 进入“密钥”页面，点击“生成 API Key”。\n3. 填写名称，选择绑定项目和 API 版本。\n4. 创建后立即复制以 `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```bash\nexport SILVAMUX_API_KEY=\"sk_live_YOUR_API_KEY\"\n```\n\n## 安全规则\n\n- 不要把 Key 写入浏览器端代码、日志、截图或公开仓库。\n- 测试和正式环境使用不同 Key。\n- 发现泄露时先撤销旧 Key，再更新服务配置。\n- 完整 Key 关闭后无法找回，需要重新创建。",[],{"title":172,"path":173,"order":41,"description":174,"requiredFlags":175,"navigationHidden":11,"content":176,"children":177},"模型选择","guide\u002Fmodel-selection","在模型广场确认模型调用名、输入能力、兼容格式和价格。",[],"# 模型选择\n\n模型广场展示当前可以调用的模型。接入前先确认调用名和模型支持的输入类型，避免根据展示名称自行拼接 `model`。\n\n## 查找模型\n\n1. 打开 [模型广场](\u002Fmodels)。\n2. 使用搜索框输入模型名称，或按输入方式、厂商和模型系列筛选。\n3. 打开模型详情页，查看调用名、输入能力、价格和支持的接口格式。\n4. 复制详情页给出的调用名，填写到请求的 `model` 字段。\n\n## 如何选择\n\n- 文本对话：选择支持文本输入的模型。\n- 图片理解：选择明确支持图像输入的多模态模型。\n- 图片或视频生成：按模型详情页标注的能力与限制选择。\n- 已经使用某家厂商 SDK：优先选择模型详情页标注支持的对应兼容接口。\n\n模型与价格会持续更新，最终以模型广场和接口返回为准。",[],{"title":179,"path":180,"order":181,"description":182,"requiredFlags":183,"navigationHidden":11,"content":184,"children":185},"在线体验","guide\u002Fplayground",21,"在写代码前通过在线体验验证对话、图片和视频模型。",[],"# 在线体验\n\n在线体验适合在接入代码前验证模型是否满足需求。体验结果可用于确定模型调用名、提示词和常用参数。\n\n## 对话\n\n1. 进入官网“在线体验”，选择 **AI 对话**。\n2. 在输入框下方选择模型。\n3. 输入问题并发送，观察响应内容和生成速度。\n\n![AI 对话页面](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fplayground-chat.png)\n\n## 图片\n\n1. 选择 **AI 生图**。\n2. 选择模型，填写图片描述和尺寸。\n3. 生成后检查画面是否符合提示词，再将相同模型调用名用于接口接入。\n\n![AI 生图页面](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fplayground-image.png)\n\n## 视频\n\n1. 选择 **AI 生视频**。\n2. 选择模型，填写视频描述；需要参考图时填写可公开访问的图片 URL。\n3. 设置分辨率、比例和时长后提交。\n\n![AI 生视频页面](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fplayground-video.png)\n\n在线体验中的可选参数取决于具体模型。正式调用时，以对应接口文档和模型能力为准。",[],{"title":187,"path":188,"order":70,"description":189,"requiredFlags":190,"navigationHidden":11,"content":191,"children":192},"图片能力指南","guide\u002Fimage-capabilities","了解在线生图流程、模型选择和输入准备方式。",[],"# 图片能力指南\n\nSilvaMux 提供图片生成和图片编辑能力。开始前先在模型广场确认目标模型是否支持图片生成或编辑，再在在线体验中验证提示词和尺寸。\n\n## 在线验证图片生成\n\n1. 进入“在线体验”，选择 **AI 生图**。\n2. 选择图片模型。\n3. 填写清晰的主体、场景、风格和构图描述。\n4. 选择尺寸并生成图片。\n\n![在线生图参数](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fplayground-image.png)\n\n## 输入建议\n\n- 把主体、动作、环境和风格分开描述。\n- 图片编辑时提供清晰原图，并明确说明要保留和要修改的区域。\n- 生成失败时先减少输入图片数量或压缩文件，再检查模型是否支持当前能力。\n\n接口字段和请求格式请以“接口文档”中的图片生成与编辑接口为准。",[],{"title":194,"path":195,"order":196,"description":197,"requiredFlags":198,"navigationHidden":11,"content":199,"children":200},"视频能力指南","guide\u002Fvideo-capabilities",31,"了解在线视频生成流程、参考素材和任务结果。",[],"# 视频能力指南\n\n视频生成通常是异步任务：提交生成请求后，等待任务完成，再读取生成结果。接入前可以先在在线体验中验证模型、提示词、比例和时长。\n\n## 在线验证视频生成\n\n1. 进入“在线体验”，选择 **AI 生视频**。\n2. 选择视频模型并填写描述。\n3. 根据模型能力填写参考图 URL，设置分辨率、比例和时长。\n4. 提交后等待结果显示。\n\n![在线视频生成参数](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fplayground-video.png)\n\n## 使用建议\n\n- 提示词写清主体、动作、镜头和环境变化。\n- 参考图必须是服务端可以访问的 URL。\n- 使用人物或多素材生成前，先阅读“素材选用指南”。\n- 正式接口的任务创建、查询和取消方式以对应接口契约为准。",[],{"title":202,"path":203,"order":100,"description":204,"requiredFlags":205,"navigationHidden":11,"content":206,"children":207},"实名认证与充值","guide\u002Fverification-recharge","了解实名认证状态和在线充值的基本流程。",[],"# 实名认证与充值\n\n部分支付方式会要求当前工作区已完成实名认证。控制台提供个人认证和企业认证入口，页面展示的要求与状态为最终依据。\n\n## 提交实名认证\n\n1. 登录控制台，进入 **认证**。\n2. 选择个人认证或企业认证。\n3. 按页面要求填写资料并提交。\n4. 返回认证页面查看审核状态。\n\n![实名认证表单](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Fverification-form.png)\n\n## 在线充值\n\n1. 进入 **在线充值**。\n2. 输入充值点数，页面会显示点数与人民币的换算关系。\n3. 选择支付方式并创建订单。\n4. 支付完成后在充值历史和账单中心确认结果。\n\n![在线充值页面](https:\u002F\u002Fsilvamux-docs.tingyutech.com\u002Fdeveloper-docs\u002Frecharge.png)\n\n充值条件和可用支付方式以控制台当前页面提示为准。",[],{"title":209,"path":210,"order":211,"description":212,"requiredFlags":213,"navigationHidden":11,"content":214,"children":215},"账单、用量与导出","guide\u002Fbilling-usage",41,"在控制台查看充值记录、账单和模型用量。",[],"# 账单、用量与导出\n\n控制台的财务区域用于查看充值结果、账单明细和模型定价。项目用于区分 API Key 和用量归属。\n\n## 查看费用\n\n1. 在 **充值历史** 查看充值订单和状态。\n2. 在 **账单中心** 按时间和项目查看消费记录。\n3. 在 **模型定价** 查看当前模型价格。\n4. 需要进一步核对时，使用账单页面提供的筛选或导出能力。\n\n## 排查费用差异\n\n- 确认请求使用的 API Key 绑定到哪个项目。\n- 确认模型调用名和模型档位。\n- 对照账单时间、请求记录和用量统计。\n- 无法确认时保留 Request ID，并联系平台支持。",[],{"title":217,"path":218,"order":219,"description":220,"requiredFlags":221,"navigationHidden":11,"content":222,"children":223},"错误日志与问题排查","guide\u002Ferror-logs",42,"使用错误日志、状态码和 Request ID 定位调用失败。",[],"# 错误日志与问题排查\n\n控制台的 **错误日志** 页面记录 API 调用失败信息，可按错误码、端点、模型、Request ID 和时间范围检索。\n\n## 推荐排查顺序\n\n1. 记录响应的 HTTP 状态码、错误码和 Request ID。\n2. 进入控制台 **错误日志**，按 Request ID 搜索。\n3. 检查端点、模型、请求时间和上游错误信息。\n4. 401\u002F403 优先检查密钥和模型权限；429 检查限流或并发；5xx 可稍后重试。\n5. 持续失败时，将 Request ID、时间和模型调用名提供给平台支持。\n\n错误响应的具体结构和各模块错误码见“接口文档”中的错误码分组。",[],[225,228],{"title":226,"path":227},"文档","",{"title":143,"path":144},[230,260,271,282,292,303,314,343,351,361,383,400],{"name":231,"description":232,"operations":233},"OpenAI 兼容","OpenAI 兼容接口",[234,245,251],{"operationId":235,"kind":236,"tag":237,"summary":238,"description":239,"method":240,"path":241,"sourcePath":241,"contractUrl":242,"href":243,"currentPath":244},"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":246,"kind":236,"tag":237,"summary":247,"description":227,"method":240,"path":248,"sourcePath":248,"contractUrl":242,"href":249,"currentPath":250},"createOpenAIResponse","OpenAI Responses","\u002Fapi\u002Fv1\u002Fresponses","\u002Fdocs\u002Fapi-reference\u002FcreateOpenAIResponse","api-reference\u002FcreateOpenAIResponse",{"operationId":252,"kind":236,"tag":253,"summary":254,"description":255,"method":256,"path":257,"sourcePath":257,"contractUrl":242,"href":258,"currentPath":259},"listModels","Models","模型列表","返回可直接用于模型调用的聚合模型名。未鉴权时返回公开模型；鉴权后按组织模型权限过滤。","GET","\u002Fapi\u002Fv1\u002Fmodels","\u002Fdocs\u002Fapi-reference\u002FlistModels","api-reference\u002FlistModels",{"name":261,"description":262,"operations":263},"Anthropic 兼容","Anthropic 兼容接口",[264],{"operationId":265,"kind":236,"tag":266,"summary":261,"description":267,"method":240,"path":268,"sourcePath":268,"contractUrl":242,"href":269,"currentPath":270},"createAnthropicMessage","Anthropic","标准 Anthropic Messages 兼容路径；历史路径 \u002Fapi\u002Fanthropic\u002Fv1\u002Fmessages 继续兼容。","\u002Fapi\u002Fv1\u002Fmessages","\u002Fdocs\u002Fapi-reference\u002FcreateAnthropicMessage","api-reference\u002FcreateAnthropicMessage",{"name":272,"description":273,"operations":274},"Gemini 兼容","Gemini 兼容接口",[275],{"operationId":276,"kind":236,"tag":277,"summary":272,"description":278,"method":240,"path":279,"sourcePath":279,"contractUrl":242,"href":280,"currentPath":281},"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":283,"description":284,"operations":285},"Volcengine 兼容","Volcengine 兼容接口",[286],{"operationId":287,"kind":236,"tag":288,"summary":283,"description":227,"method":240,"path":289,"sourcePath":289,"contractUrl":242,"href":290,"currentPath":291},"createVolcengineChatCompletion","Volcengine","\u002Fapi\u002Fv3\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateVolcengineChatCompletion","api-reference\u002FcreateVolcengineChatCompletion",{"name":293,"description":294,"operations":295},"智谱兼容","智谱兼容接口",[296],{"operationId":297,"kind":236,"tag":298,"summary":293,"description":299,"method":240,"path":300,"sourcePath":300,"contractUrl":242,"href":301,"currentPath":302},"createZhipuChatCompletion","Zhipu","复用统一入口按 model 选路。","\u002Fapi\u002Fpaas\u002Fv4\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateZhipuChatCompletion","api-reference\u002FcreateZhipuChatCompletion",{"name":304,"description":305,"operations":306},"SilvaMux 统一入口","SilvaMux 跨协议统一入口",[307],{"operationId":308,"kind":236,"tag":309,"summary":304,"description":310,"method":240,"path":311,"sourcePath":311,"contractUrl":242,"href":312,"currentPath":313},"createUnifiedChatCompletion","Unified","可选的跨协议统一入口。按 model 选择上游，并将响应、SSE 和错误统一为 OpenAI Chat 格式。","\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions","\u002Fdocs\u002Fapi-reference\u002FcreateUnifiedChatCompletion","api-reference\u002FcreateUnifiedChatCompletion",{"name":315,"description":316,"operations":317},"图片生成与编辑","图片生成和编辑",[318,325,331,337],{"operationId":319,"kind":236,"tag":320,"summary":321,"description":227,"method":240,"path":322,"sourcePath":322,"contractUrl":242,"href":323,"currentPath":324},"createImageV1","Images","创建图片（OpenAI v1）","\u002Fapi\u002Fv1\u002Fimages\u002Fgenerations","\u002Fdocs\u002Fapi-reference\u002FcreateImageV1","api-reference\u002FcreateImageV1",{"operationId":326,"kind":236,"tag":320,"summary":327,"description":227,"method":240,"path":328,"sourcePath":328,"contractUrl":242,"href":329,"currentPath":330},"createImageV3","创建图片（Volcengine v3）","\u002Fapi\u002Fv3\u002Fimages\u002Fgenerations","\u002Fdocs\u002Fapi-reference\u002FcreateImageV3","api-reference\u002FcreateImageV3",{"operationId":332,"kind":236,"tag":320,"summary":333,"description":227,"method":240,"path":334,"sourcePath":334,"contractUrl":242,"href":335,"currentPath":336},"editImageV1","编辑图片（OpenAI v1）","\u002Fapi\u002Fv1\u002Fimages\u002Fedits","\u002Fdocs\u002Fapi-reference\u002FeditImageV1","api-reference\u002FeditImageV1",{"operationId":338,"kind":236,"tag":320,"summary":339,"description":227,"method":240,"path":340,"sourcePath":340,"contractUrl":242,"href":341,"currentPath":342},"editImageV3","编辑图片（Volcengine v3）","\u002Fapi\u002Fv3\u002Fimages\u002Fedits","\u002Fdocs\u002Fapi-reference\u002FeditImageV3","api-reference\u002FeditImageV3",{"name":54,"description":344,"operations":345},"多模态内容的输入方式与限制",[346],{"operationId":347,"kind":144,"tag":348,"summary":54,"description":349,"method":227,"path":227,"sourcePath":227,"contractUrl":227,"href":350,"currentPath":55},"multimodal-input","ConversationGuides","图片和音频等多模态内容的输入格式与限制。","\u002Fdocs\u002Fchat\u002Fmultimodal",{"name":352,"description":352,"operations":353},"火山兼容素材与即梦",[354],{"operationId":355,"kind":236,"tag":356,"summary":352,"description":357,"method":240,"path":358,"sourcePath":358,"contractUrl":242,"href":359,"currentPath":360},"callArkCompatibleAction","Ark","多个素材和 CV Action 共用该路径，请求体结构由 Action 和 Version 决定。","\u002Fapi\u002Fark","\u002Fdocs\u002Fapi-reference\u002FcallArkCompatibleAction","api-reference\u002FcallArkCompatibleAction",{"name":362,"description":363,"operations":364},"客户查询接口","客户余额与用量",[365,375],{"operationId":366,"kind":236,"tag":367,"summary":368,"description":369,"method":256,"path":370,"sourcePath":371,"contractUrl":372,"href":373,"currentPath":374},"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":376,"kind":236,"tag":367,"summary":377,"description":378,"method":256,"path":379,"sourcePath":380,"contractUrl":372,"href":381,"currentPath":382},"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":384,"description":385,"operations":386},"错误码","错误格式、错误码与处理建议",[387,391,394,397],{"operationId":388,"kind":144,"tag":389,"summary":31,"description":227,"method":227,"path":227,"sourcePath":227,"contractUrl":227,"href":390,"currentPath":32},"common-errors","ErrorGuides","\u002Fdocs\u002Fcommon\u002Ferrors",{"operationId":392,"kind":144,"tag":389,"summary":61,"description":227,"method":227,"path":227,"sourcePath":227,"contractUrl":227,"href":393,"currentPath":62},"chat-errors","\u002Fdocs\u002Fchat\u002Ferrors",{"operationId":395,"kind":144,"tag":389,"summary":90,"description":227,"method":227,"path":227,"sourcePath":227,"contractUrl":227,"href":396,"currentPath":91},"images-errors","\u002Fdocs\u002Fimages\u002Ferrors",{"operationId":398,"kind":144,"tag":389,"summary":113,"description":227,"method":227,"path":227,"sourcePath":227,"contractUrl":227,"href":399,"currentPath":114},"video-errors","\u002Fdocs\u002Fvideo\u002Ferrors",{"name":401,"description":402,"operations":403},"视频与 3D","视频与 3D 异步任务",[404,411,416,422],{"operationId":405,"kind":236,"tag":406,"summary":407,"description":227,"method":240,"path":408,"sourcePath":408,"contractUrl":242,"href":409,"currentPath":410},"createContentGenerationTask","VideoAnd3D","创建任务","\u002Fapi\u002Fv3\u002Fcontents\u002Fgenerations\u002Ftasks","\u002Fdocs\u002Fapi-reference\u002FcreateContentGenerationTask","api-reference\u002FcreateContentGenerationTask",{"operationId":412,"kind":236,"tag":406,"summary":413,"description":227,"method":256,"path":408,"sourcePath":408,"contractUrl":242,"href":414,"currentPath":415},"listContentGenerationTasks","任务列表","\u002Fdocs\u002Fapi-reference\u002FlistContentGenerationTasks","api-reference\u002FlistContentGenerationTasks",{"operationId":417,"kind":236,"tag":406,"summary":418,"description":227,"method":256,"path":419,"sourcePath":419,"contractUrl":242,"href":420,"currentPath":421},"getContentGenerationTask","查询任务","\u002Fapi\u002Fv3\u002Fcontents\u002Fgenerations\u002Ftasks\u002F{id}","\u002Fdocs\u002Fapi-reference\u002FgetContentGenerationTask","api-reference\u002FgetContentGenerationTask",{"operationId":423,"kind":236,"tag":406,"summary":424,"description":227,"method":425,"path":419,"sourcePath":419,"contractUrl":242,"href":426,"currentPath":427},"cancelContentGenerationTask","取消任务","DELETE","\u002Fdocs\u002Fapi-reference\u002FcancelContentGenerationTask","api-reference\u002FcancelContentGenerationTask"]