[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-zh":3,"docs-zh-models\u002Fchat\u002Funified":167,"$frtdsVwoDRU794LJrfL71HeTMjkaPETQWALXSWQmo__0":654},[4,52,69,92,142,159,163],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"快速开始","\u002Fgetting-started","1.getting-started",[9,12,30,44,48],{"title":10,"path":6,"stem":11},"关于 SilvaMux","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":-1},"首次调用千木 API","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start\u002Findex",[17,18,22,26],{"title":13,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"项目和账户设置","\u002Fgetting-started\u002Fquick-start\u002Fproject-and-account","1.getting-started\u002F1.quick-start\u002F2.project-and-account",{"title":23,"path":24,"stem":25},"获取 API Key","\u002Fgetting-started\u002Fquick-start\u002Fapi-key","1.getting-started\u002F1.quick-start\u002F3.api-key",{"title":27,"path":28,"stem":29},"第一个请求","\u002Fgetting-started\u002Fquick-start\u002Ffirst-request","1.getting-started\u002F1.quick-start\u002F4.first-request",{"title":31,"path":32,"stem":33,"children":34,"page":43},"模型与体验","\u002Fgetting-started\u002Fmodels-and-experience","1.getting-started\u002F2.models-and-experience",[35,39],{"title":36,"path":37,"stem":38},"模型选择","\u002Fgetting-started\u002Fmodels-and-experience\u002Fmodel-selection","1.getting-started\u002F2.models-and-experience\u002F1.model-selection",{"title":40,"path":41,"stem":42},"在线体验","\u002Fgetting-started\u002Fmodels-and-experience\u002Fplayground","1.getting-started\u002F2.models-and-experience\u002F2.playground",false,{"title":45,"path":46,"stem":47},"限流","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":49,"path":50,"stem":51},"常见问题","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",{"title":53,"path":54,"stem":55,"children":56,"page":43},"产品计费","\u002Fbilling","2.billing",[57,61,65],{"title":58,"path":59,"stem":60},"计费说明","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":62,"path":63,"stem":64},"在线充值","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":66,"path":67,"stem":68},"账单、用量与导出","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":70,"path":71,"stem":72,"children":73,"page":43},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[74,78],{"title":75,"path":76,"stem":77},"Coding Plan 概述","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":79,"path":80,"stem":81,"children":82,"page":-1},"个人版","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F2.personal\u002Findex",[83,85,89],{"title":84,"path":80,"stem":81},"价格和权益",{"title":86,"path":87,"stem":88},"快速接入","\u002Fcoding-plan\u002Fpersonal\u002Fquick-start","3.coding-plan\u002F2.personal\u002F2.quick-start",{"title":49,"path":90,"stem":91},"\u002Fcoding-plan\u002Fpersonal\u002Ffaq","3.coding-plan\u002F2.personal\u002F3.faq",{"title":93,"path":94,"stem":95,"children":96,"page":43},"模型接口","\u002Fmodels","4.models",[97,130],{"title":98,"path":99,"stem":100,"children":101,"page":43},"文本生成","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[102,106,110,114,118,122,126],{"title":103,"path":104,"stem":105},"概述","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":107,"path":108,"stem":109},"OpenAI 兼容接口","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":111,"path":112,"stem":113},"Anthropic 兼容","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":115,"path":116,"stem":117},"Volcengine 兼容","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":119,"path":120,"stem":121},"智谱兼容","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":123,"path":124,"stem":125},"SilvaMux 统一入口","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":127,"path":128,"stem":129},"多模态输入","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":131,"path":132,"stem":133,"children":134,"page":43},"图片生成","\u002Fmodels\u002Fimages","4.models\u002F2.images",[135,138],{"title":103,"path":136,"stem":137},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":139,"path":140,"stem":141},"图片生成接口","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":143,"path":144,"stem":145,"children":146,"page":43},"用量与余额","\u002Fusage-and-balance","5.usage-and-balance",[147,151,155],{"title":148,"path":149,"stem":150},"查询余额","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":152,"path":153,"stem":154},"查询用量","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":156,"path":157,"stem":158},"查询单次请求消耗","\u002Fusage-and-balance\u002Frequest-usage","5.usage-and-balance\u002F3.request-usage",{"title":160,"path":161,"stem":162},"错误码参考","\u002Ferrors","6.errors",{"title":164,"path":165,"stem":166},"文档首页","\u002F","index",{"id":168,"title":123,"body":169,"description":647,"extension":648,"meta":649,"navigation":311,"path":124,"rawbody":650,"requiredFlags":651,"seo":652,"stem":125,"__hash__":653},"docs\u002F4.models\u002F1.chat\u002F6.unified.md",{"type":170,"value":171,"toc":644},"minimark",[172,176,185,190,194,633,640],[173,174,123],"h1",{"id":175},"silvamux-统一入口",[177,178,179,180,184],"p",{},"可选的跨协议统一入口。接收 OpenAI Chat 格式，根据 ",[181,182,183],"code",{},"model"," 自动选择上游，并将响应、SSE 和错误统一转换为 OpenAI Chat 格式。适合希望通过一个入口跨协议调用不同模型的场景。",[186,187],"api-endpoint",{"method":188,"path":189},"POST","\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[191,192,193],"h2",{"id":193},"示例",[195,196,197,282,373,449],"code-tabs",{},[198,199,201],"code-tab",{"label":200},"cURL",[202,203,208],"pre",{"className":204,"code":205,"language":206,"meta":207,"style":207},"language-bash shiki shiki-themes github-light github-dark","curl 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","bash","",[181,209,210,227,245,255,264,270,276],{"__ignoreMap":207},[211,212,215,219,223],"span",{"class":213,"line":214},"line",1,[211,216,218],{"class":217},"sScJk","curl",[211,220,222],{"class":221},"sZZnC"," https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[211,224,226],{"class":225},"sj4cs"," \\\n",[211,228,230,233,236,240,243],{"class":213,"line":229},2,[211,231,232],{"class":225},"  -H",[211,234,235],{"class":221}," \"Authorization: Bearer ",[211,237,239],{"class":238},"sVt8B","$SILVAMUX_API_KEY",[211,241,242],{"class":221},"\"",[211,244,226],{"class":225},[211,246,248,250,253],{"class":213,"line":247},3,[211,249,232],{"class":225},[211,251,252],{"class":221}," \"Content-Type: application\u002Fjson\"",[211,254,226],{"class":225},[211,256,258,261],{"class":213,"line":257},4,[211,259,260],{"class":225},"  -d",[211,262,263],{"class":221}," '{\n",[211,265,267],{"class":213,"line":266},5,[211,268,269],{"class":221},"    \"model\": \"minimax-m2.5\",\n",[211,271,273],{"class":213,"line":272},6,[211,274,275],{"class":221},"    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n",[211,277,279],{"class":213,"line":278},7,[211,280,281],{"class":221},"  }'\n",[198,283,285],{"label":284},"Python",[202,286,290],{"className":287,"code":288,"language":289,"meta":207,"style":207},"language-python shiki shiki-themes github-light github-dark","# pip install openai\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\u002Fv0\",\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","python",[181,291,292,297,302,307,313,318,323,328,334,339,345,351,357,362,367],{"__ignoreMap":207},[211,293,294],{"class":213,"line":214},[211,295,296],{},"# pip install openai\n",[211,298,299],{"class":213,"line":229},[211,300,301],{},"import os\n",[211,303,304],{"class":213,"line":247},[211,305,306],{},"from openai import OpenAI\n",[211,308,309],{"class":213,"line":257},[211,310,312],{"emptyLinePlaceholder":311},true,"\n",[211,314,315],{"class":213,"line":266},[211,316,317],{},"client = OpenAI(\n",[211,319,320],{"class":213,"line":272},[211,321,322],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[211,324,325],{"class":213,"line":278},[211,326,327],{},"    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[211,329,331],{"class":213,"line":330},8,[211,332,333],{},")\n",[211,335,337],{"class":213,"line":336},9,[211,338,312],{"emptyLinePlaceholder":311},[211,340,342],{"class":213,"line":341},10,[211,343,344],{},"response = client.chat.completions.create(\n",[211,346,348],{"class":213,"line":347},11,[211,349,350],{},"    model=\"minimax-m2.5\",\n",[211,352,354],{"class":213,"line":353},12,[211,355,356],{},"    messages=[{\"role\": \"user\", \"content\": \"你好\"}],\n",[211,358,360],{"class":213,"line":359},13,[211,361,333],{},[211,363,365],{"class":213,"line":364},14,[211,366,312],{"emptyLinePlaceholder":311},[211,368,370],{"class":213,"line":369},15,[211,371,372],{},"print(response.choices[0].message.content)\n",[198,374,376],{"label":375},"JavaScript",[202,377,381],{"className":378,"code":379,"language":380,"meta":207,"style":207},"language-javascript shiki shiki-themes github-light github-dark","\u002F\u002F npm install openai\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: process.env.SILVAMUX_API_KEY,\n  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\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","javascript",[181,382,383,388,393,397,402,407,412,417,421,426,431,436,440,444],{"__ignoreMap":207},[211,384,385],{"class":213,"line":214},[211,386,387],{},"\u002F\u002F npm install openai\n",[211,389,390],{"class":213,"line":229},[211,391,392],{},"import OpenAI from \"openai\";\n",[211,394,395],{"class":213,"line":247},[211,396,312],{"emptyLinePlaceholder":311},[211,398,399],{"class":213,"line":257},[211,400,401],{},"const client = new OpenAI({\n",[211,403,404],{"class":213,"line":266},[211,405,406],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[211,408,409],{"class":213,"line":272},[211,410,411],{},"  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[211,413,414],{"class":213,"line":278},[211,415,416],{},"});\n",[211,418,419],{"class":213,"line":330},[211,420,312],{"emptyLinePlaceholder":311},[211,422,423],{"class":213,"line":336},[211,424,425],{},"const response = await client.chat.completions.create({\n",[211,427,428],{"class":213,"line":341},[211,429,430],{},"  model: \"minimax-m2.5\",\n",[211,432,433],{"class":213,"line":347},[211,434,435],{},"  messages: [{ role: \"user\", content: \"你好\" }],\n",[211,437,438],{"class":213,"line":353},[211,439,416],{},[211,441,442],{"class":213,"line":359},[211,443,312],{"emptyLinePlaceholder":311},[211,445,446],{"class":213,"line":364},[211,447,448],{},"console.log(response.choices[0].message.content);\n",[198,450,452],{"label":451},"Go",[202,453,457],{"className":454,"code":455,"language":456,"meta":207,"style":207},"language-go shiki shiki-themes github-light github-dark","\u002F\u002F 仅依赖标准库\npackage main\n\nimport (\n    \"bytes\"\n    \"fmt\"\n    \"io\"\n    \"net\u002Fhttp\"\n    \"os\"\n)\n\nfunc main() {\n    payload := []byte(`{\n        \"model\": \"minimax-m2.5\",\n        \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n    }`)\n\n    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n    if err != nil {\n        panic(err)\n    }\n    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n\n    resp, err := http.DefaultClient.Do(req)\n    if err != nil {\n        panic(err)\n    }\n    defer resp.Body.Close()\n\n    body, _ := io.ReadAll(resp.Body)\n    fmt.Println(string(body))\n}\n","go",[181,458,459,464,469,473,478,483,488,493,498,503,507,511,516,521,526,531,537,542,548,554,560,566,572,578,583,589,594,599,604,610,615,621,627],{"__ignoreMap":207},[211,460,461],{"class":213,"line":214},[211,462,463],{},"\u002F\u002F 仅依赖标准库\n",[211,465,466],{"class":213,"line":229},[211,467,468],{},"package main\n",[211,470,471],{"class":213,"line":247},[211,472,312],{"emptyLinePlaceholder":311},[211,474,475],{"class":213,"line":257},[211,476,477],{},"import (\n",[211,479,480],{"class":213,"line":266},[211,481,482],{},"    \"bytes\"\n",[211,484,485],{"class":213,"line":272},[211,486,487],{},"    \"fmt\"\n",[211,489,490],{"class":213,"line":278},[211,491,492],{},"    \"io\"\n",[211,494,495],{"class":213,"line":330},[211,496,497],{},"    \"net\u002Fhttp\"\n",[211,499,500],{"class":213,"line":336},[211,501,502],{},"    \"os\"\n",[211,504,505],{"class":213,"line":341},[211,506,333],{},[211,508,509],{"class":213,"line":347},[211,510,312],{"emptyLinePlaceholder":311},[211,512,513],{"class":213,"line":353},[211,514,515],{},"func main() {\n",[211,517,518],{"class":213,"line":359},[211,519,520],{},"    payload := []byte(`{\n",[211,522,523],{"class":213,"line":364},[211,524,525],{},"        \"model\": \"minimax-m2.5\",\n",[211,527,528],{"class":213,"line":369},[211,529,530],{},"        \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n",[211,532,534],{"class":213,"line":533},16,[211,535,536],{},"    }`)\n",[211,538,540],{"class":213,"line":539},17,[211,541,312],{"emptyLinePlaceholder":311},[211,543,545],{"class":213,"line":544},18,[211,546,547],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[211,549,551],{"class":213,"line":550},19,[211,552,553],{},"    if err != nil {\n",[211,555,557],{"class":213,"line":556},20,[211,558,559],{},"        panic(err)\n",[211,561,563],{"class":213,"line":562},21,[211,564,565],{},"    }\n",[211,567,569],{"class":213,"line":568},22,[211,570,571],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[211,573,575],{"class":213,"line":574},23,[211,576,577],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[211,579,581],{"class":213,"line":580},24,[211,582,312],{"emptyLinePlaceholder":311},[211,584,586],{"class":213,"line":585},25,[211,587,588],{},"    resp, err := http.DefaultClient.Do(req)\n",[211,590,592],{"class":213,"line":591},26,[211,593,553],{},[211,595,597],{"class":213,"line":596},27,[211,598,559],{},[211,600,602],{"class":213,"line":601},28,[211,603,565],{},[211,605,607],{"class":213,"line":606},29,[211,608,609],{},"    defer resp.Body.Close()\n",[211,611,613],{"class":213,"line":612},30,[211,614,312],{"emptyLinePlaceholder":311},[211,616,618],{"class":213,"line":617},31,[211,619,620],{},"    body, _ := io.ReadAll(resp.Body)\n",[211,622,624],{"class":213,"line":623},32,[211,625,626],{},"    fmt.Println(string(body))\n",[211,628,630],{"class":213,"line":629},33,[211,631,632],{},"}\n",[634,635,637],"alert",{"type":636},"warning",[177,638,639],{},"统一入口会规范化请求和响应结构。需要厂商特有字段、事件或响应形状时，优先使用对应的厂商协议兼容入口。",[641,642,643],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":207,"searchDepth":229,"depth":229,"links":645},[646],{"id":193,"depth":229,"text":193},"跨协议统一入口：OpenAI Chat 格式进出，自动选择上游。","md",{},"---\ntitle: SilvaMux 统一入口\ndescription: 跨协议统一入口：OpenAI Chat 格式进出，自动选择上游。\n---\n\n# SilvaMux 统一入口\n\n可选的跨协议统一入口。接收 OpenAI Chat 格式，根据 `model` 自动选择上游，并将响应、SSE 和错误统一转换为 OpenAI Chat 格式。适合希望通过一个入口跨协议调用不同模型的场景。\n\n::api-endpoint{path=\"\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\" method=\"POST\"}\n::\n\n## 示例\n\n::code-tabs\n:::code-tab{label=\"cURL\"}\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:::code-tab{label=\"Python\"}\n```python\n# pip install openai\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\u002Fv0\",\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:::code-tab{label=\"JavaScript\"}\n```javascript\n\u002F\u002F npm install openai\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: process.env.SILVAMUX_API_KEY,\n  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\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:::code-tab{label=\"Go\"}\n```go\n\u002F\u002F 仅依赖标准库\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\u002Fhttp\"\n\t\"os\"\n)\n\nfunc main() {\n\tpayload := []byte(`{\n\t\t\"model\": \"minimax-m2.5\",\n\t\t\"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n\t}`)\n\n\treq, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n\treq.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\n\tbody, _ := io.ReadAll(resp.Body)\n\tfmt.Println(string(body))\n}\n```\n:::\n::\n\n::alert{type=\"warning\"}\n统一入口会规范化请求和响应结构。需要厂商特有字段、事件或响应形状时，优先使用对应的厂商协议兼容入口。\n::\n",[],{"title":123,"description":647},"qFlm2r2rpNmxFX9SNhCsQ-Vz0VxQcsopRpD78-0SFAQ",{"found":311,"operationId":655,"summary":123,"description":656,"method":188,"path":189,"publiclyDiscoverable":311,"security":657,"parameters":661,"requestBody":662,"responses":692},"createUnifiedChatCompletion","可选的跨协议统一入口。按 model 选择上游，并将响应、SSE 和错误统一为 OpenAI Chat 格式。",{"schemes":658,"optional":43},[659,660],"BearerAuth","ApiKeyAuth",[],{"present":311,"required":311,"description":207,"contentType":663,"type":664,"fields":665,"variants":691},"application\u002Fjson","OpenAIChatRequest",[666,669,672,675,678,681,685,688],{"name":667,"type":668,"required":43,"description":207},"max_tokens","integer",{"name":670,"type":671,"required":311,"description":207},"messages","array\u003CMessage>",{"name":673,"type":674,"required":311,"description":207},"messages.content","string | array\u003CFreeFormObject>",{"name":676,"type":677,"required":311,"description":207},"messages.role","string (system | user | assistant | tool)",{"name":183,"type":679,"required":311,"description":680},"string","SilvaMux 模型 id 或 alias。",{"name":682,"type":683,"required":43,"description":207,"defaultValue":684},"stream","boolean","false",{"name":686,"type":687,"required":43,"description":207},"temperature","number",{"name":689,"type":690,"required":43,"description":207},"tools","array\u003CFreeFormObject>",[],[693,708],{"status":694,"description":695,"contentType":663,"type":696,"fields":697},"200","OpenAI Chat JSON 或 SSE 响应。","OpenAIChatResponse",[698,700,702,703,705],{"name":699,"type":690,"required":311,"description":207},"choices",{"name":701,"type":679,"required":311,"description":207},"id",{"name":183,"type":679,"required":43,"description":207},{"name":704,"type":679,"required":43,"description":207},"object",{"name":706,"type":707,"required":43,"description":207},"usage","FreeFormObject",{"status":709,"description":710,"contentType":663,"type":711,"fields":712},"default","OpenAI 兼容错误。","OpenAIError",[713,715,718,720],{"name":714,"type":704,"required":311,"description":207},"error",{"name":716,"type":717,"required":43,"description":207},"error.code","string | integer",{"name":719,"type":679,"required":311,"description":207},"error.message",{"name":721,"type":679,"required":43,"description":207},"error.type"]