[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-zh":3,"docs-zh-models\u002Fchat\u002Funified":163,"$frtdsVwoDRU794LJrfL71HeTMjkaPETQWALXSWQmo__0":650},[4,52,69,92,142,155,159],{"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],{"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},"错误码参考","\u002Ferrors","6.errors",{"title":160,"path":161,"stem":162},"文档首页","\u002F","index",{"id":164,"title":123,"body":165,"description":643,"extension":644,"meta":645,"navigation":307,"path":124,"rawbody":646,"requiredFlags":647,"seo":648,"stem":125,"__hash__":649},"docs\u002F4.models\u002F1.chat\u002F6.unified.md",{"type":166,"value":167,"toc":640},"minimark",[168,172,181,186,190,629,636],[169,170,123],"h1",{"id":171},"silvamux-统一入口",[173,174,175,176,180],"p",{},"可选的跨协议统一入口。接收 OpenAI Chat 格式，根据 ",[177,178,179],"code",{},"model"," 自动选择上游，并将响应、SSE 和错误统一转换为 OpenAI Chat 格式。适合希望通过一个入口跨协议调用不同模型的场景。",[182,183],"api-endpoint",{"method":184,"path":185},"POST","\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[187,188,189],"h2",{"id":189},"示例",[191,192,193,278,369,445],"code-tabs",{},[194,195,197],"code-tab",{"label":196},"cURL",[198,199,204],"pre",{"className":200,"code":201,"language":202,"meta":203,"style":203},"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","",[177,205,206,223,241,251,260,266,272],{"__ignoreMap":203},[207,208,211,215,219],"span",{"class":209,"line":210},"line",1,[207,212,214],{"class":213},"sScJk","curl",[207,216,218],{"class":217},"sZZnC"," https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[207,220,222],{"class":221},"sj4cs"," \\\n",[207,224,226,229,232,236,239],{"class":209,"line":225},2,[207,227,228],{"class":221},"  -H",[207,230,231],{"class":217}," \"Authorization: Bearer ",[207,233,235],{"class":234},"sVt8B","$SILVAMUX_API_KEY",[207,237,238],{"class":217},"\"",[207,240,222],{"class":221},[207,242,244,246,249],{"class":209,"line":243},3,[207,245,228],{"class":221},[207,247,248],{"class":217}," \"Content-Type: application\u002Fjson\"",[207,250,222],{"class":221},[207,252,254,257],{"class":209,"line":253},4,[207,255,256],{"class":221},"  -d",[207,258,259],{"class":217}," '{\n",[207,261,263],{"class":209,"line":262},5,[207,264,265],{"class":217},"    \"model\": \"minimax-m2.5\",\n",[207,267,269],{"class":209,"line":268},6,[207,270,271],{"class":217},"    \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n",[207,273,275],{"class":209,"line":274},7,[207,276,277],{"class":217},"  }'\n",[194,279,281],{"label":280},"Python",[198,282,286],{"className":283,"code":284,"language":285,"meta":203,"style":203},"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",[177,287,288,293,298,303,309,314,319,324,330,335,341,347,353,358,363],{"__ignoreMap":203},[207,289,290],{"class":209,"line":210},[207,291,292],{},"# pip install openai\n",[207,294,295],{"class":209,"line":225},[207,296,297],{},"import os\n",[207,299,300],{"class":209,"line":243},[207,301,302],{},"from openai import OpenAI\n",[207,304,305],{"class":209,"line":253},[207,306,308],{"emptyLinePlaceholder":307},true,"\n",[207,310,311],{"class":209,"line":262},[207,312,313],{},"client = OpenAI(\n",[207,315,316],{"class":209,"line":268},[207,317,318],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[207,320,321],{"class":209,"line":274},[207,322,323],{},"    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[207,325,327],{"class":209,"line":326},8,[207,328,329],{},")\n",[207,331,333],{"class":209,"line":332},9,[207,334,308],{"emptyLinePlaceholder":307},[207,336,338],{"class":209,"line":337},10,[207,339,340],{},"response = client.chat.completions.create(\n",[207,342,344],{"class":209,"line":343},11,[207,345,346],{},"    model=\"minimax-m2.5\",\n",[207,348,350],{"class":209,"line":349},12,[207,351,352],{},"    messages=[{\"role\": \"user\", \"content\": \"你好\"}],\n",[207,354,356],{"class":209,"line":355},13,[207,357,329],{},[207,359,361],{"class":209,"line":360},14,[207,362,308],{"emptyLinePlaceholder":307},[207,364,366],{"class":209,"line":365},15,[207,367,368],{},"print(response.choices[0].message.content)\n",[194,370,372],{"label":371},"JavaScript",[198,373,377],{"className":374,"code":375,"language":376,"meta":203,"style":203},"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",[177,378,379,384,389,393,398,403,408,413,417,422,427,432,436,440],{"__ignoreMap":203},[207,380,381],{"class":209,"line":210},[207,382,383],{},"\u002F\u002F npm install openai\n",[207,385,386],{"class":209,"line":225},[207,387,388],{},"import OpenAI from \"openai\";\n",[207,390,391],{"class":209,"line":243},[207,392,308],{"emptyLinePlaceholder":307},[207,394,395],{"class":209,"line":253},[207,396,397],{},"const client = new OpenAI({\n",[207,399,400],{"class":209,"line":262},[207,401,402],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[207,404,405],{"class":209,"line":268},[207,406,407],{},"  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[207,409,410],{"class":209,"line":274},[207,411,412],{},"});\n",[207,414,415],{"class":209,"line":326},[207,416,308],{"emptyLinePlaceholder":307},[207,418,419],{"class":209,"line":332},[207,420,421],{},"const response = await client.chat.completions.create({\n",[207,423,424],{"class":209,"line":337},[207,425,426],{},"  model: \"minimax-m2.5\",\n",[207,428,429],{"class":209,"line":343},[207,430,431],{},"  messages: [{ role: \"user\", content: \"你好\" }],\n",[207,433,434],{"class":209,"line":349},[207,435,412],{},[207,437,438],{"class":209,"line":355},[207,439,308],{"emptyLinePlaceholder":307},[207,441,442],{"class":209,"line":360},[207,443,444],{},"console.log(response.choices[0].message.content);\n",[194,446,448],{"label":447},"Go",[198,449,453],{"className":450,"code":451,"language":452,"meta":203,"style":203},"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",[177,454,455,460,465,469,474,479,484,489,494,499,503,507,512,517,522,527,533,538,544,550,556,562,568,574,579,585,590,595,600,606,611,617,623],{"__ignoreMap":203},[207,456,457],{"class":209,"line":210},[207,458,459],{},"\u002F\u002F 仅依赖标准库\n",[207,461,462],{"class":209,"line":225},[207,463,464],{},"package main\n",[207,466,467],{"class":209,"line":243},[207,468,308],{"emptyLinePlaceholder":307},[207,470,471],{"class":209,"line":253},[207,472,473],{},"import (\n",[207,475,476],{"class":209,"line":262},[207,477,478],{},"    \"bytes\"\n",[207,480,481],{"class":209,"line":268},[207,482,483],{},"    \"fmt\"\n",[207,485,486],{"class":209,"line":274},[207,487,488],{},"    \"io\"\n",[207,490,491],{"class":209,"line":326},[207,492,493],{},"    \"net\u002Fhttp\"\n",[207,495,496],{"class":209,"line":332},[207,497,498],{},"    \"os\"\n",[207,500,501],{"class":209,"line":337},[207,502,329],{},[207,504,505],{"class":209,"line":343},[207,506,308],{"emptyLinePlaceholder":307},[207,508,509],{"class":209,"line":349},[207,510,511],{},"func main() {\n",[207,513,514],{"class":209,"line":355},[207,515,516],{},"    payload := []byte(`{\n",[207,518,519],{"class":209,"line":360},[207,520,521],{},"        \"model\": \"minimax-m2.5\",\n",[207,523,524],{"class":209,"line":365},[207,525,526],{},"        \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]\n",[207,528,530],{"class":209,"line":529},16,[207,531,532],{},"    }`)\n",[207,534,536],{"class":209,"line":535},17,[207,537,308],{"emptyLinePlaceholder":307},[207,539,541],{"class":209,"line":540},18,[207,542,543],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[207,545,547],{"class":209,"line":546},19,[207,548,549],{},"    if err != nil {\n",[207,551,553],{"class":209,"line":552},20,[207,554,555],{},"        panic(err)\n",[207,557,559],{"class":209,"line":558},21,[207,560,561],{},"    }\n",[207,563,565],{"class":209,"line":564},22,[207,566,567],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[207,569,571],{"class":209,"line":570},23,[207,572,573],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[207,575,577],{"class":209,"line":576},24,[207,578,308],{"emptyLinePlaceholder":307},[207,580,582],{"class":209,"line":581},25,[207,583,584],{},"    resp, err := http.DefaultClient.Do(req)\n",[207,586,588],{"class":209,"line":587},26,[207,589,549],{},[207,591,593],{"class":209,"line":592},27,[207,594,555],{},[207,596,598],{"class":209,"line":597},28,[207,599,561],{},[207,601,603],{"class":209,"line":602},29,[207,604,605],{},"    defer resp.Body.Close()\n",[207,607,609],{"class":209,"line":608},30,[207,610,308],{"emptyLinePlaceholder":307},[207,612,614],{"class":209,"line":613},31,[207,615,616],{},"    body, _ := io.ReadAll(resp.Body)\n",[207,618,620],{"class":209,"line":619},32,[207,621,622],{},"    fmt.Println(string(body))\n",[207,624,626],{"class":209,"line":625},33,[207,627,628],{},"}\n",[630,631,633],"alert",{"type":632},"warning",[173,634,635],{},"统一入口会规范化请求和响应结构。需要厂商特有字段、事件或响应形状时，优先使用对应的厂商协议兼容入口。",[637,638,639],"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":203,"searchDepth":225,"depth":225,"links":641},[642],{"id":189,"depth":225,"text":189},"跨协议统一入口：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":643},"qFlm2r2rpNmxFX9SNhCsQ-Vz0VxQcsopRpD78-0SFAQ",{"found":307,"operationId":651,"summary":123,"description":652,"method":184,"path":185,"publiclyDiscoverable":307,"security":653,"parameters":657,"requestBody":658,"responses":688},"createUnifiedChatCompletion","可选的跨协议统一入口。按 model 选择上游，并将响应、SSE 和错误统一为 OpenAI Chat 格式。",{"schemes":654,"optional":43},[655,656],"BearerAuth","ApiKeyAuth",[],{"present":307,"required":307,"description":203,"contentType":659,"type":660,"fields":661,"variants":687},"application\u002Fjson","OpenAIChatRequest",[662,665,668,671,674,677,681,684],{"name":663,"type":664,"required":43,"description":203},"max_tokens","integer",{"name":666,"type":667,"required":307,"description":203},"messages","array\u003CMessage>",{"name":669,"type":670,"required":307,"description":203},"messages.content","string | array\u003CFreeFormObject>",{"name":672,"type":673,"required":307,"description":203},"messages.role","string (system | user | assistant | tool)",{"name":179,"type":675,"required":307,"description":676},"string","SilvaMux 模型 id 或 alias。",{"name":678,"type":679,"required":43,"description":203,"defaultValue":680},"stream","boolean","false",{"name":682,"type":683,"required":43,"description":203},"temperature","number",{"name":685,"type":686,"required":43,"description":203},"tools","array\u003CFreeFormObject>",[],[689,704],{"status":690,"description":691,"contentType":659,"type":692,"fields":693},"200","OpenAI Chat JSON 或 SSE 响应。","OpenAIChatResponse",[694,696,698,699,701],{"name":695,"type":686,"required":307,"description":203},"choices",{"name":697,"type":675,"required":307,"description":203},"id",{"name":179,"type":675,"required":43,"description":203},{"name":700,"type":675,"required":43,"description":203},"object",{"name":702,"type":703,"required":43,"description":203},"usage","FreeFormObject",{"status":705,"description":706,"contentType":659,"type":707,"fields":708},"default","OpenAI 兼容错误。","OpenAIError",[709,711,714,716],{"name":710,"type":700,"required":307,"description":203},"error",{"name":712,"type":713,"required":43,"description":203},"error.code","string | integer",{"name":715,"type":675,"required":307,"description":203},"error.message",{"name":717,"type":675,"required":43,"description":203},"error.type"]