[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-models\u002Fchat\u002Funified":163,"$frtdsVwoDRU794LJrfL71HeTMjkaPETQWALXSWQmo__0":651},[4,52,69,92,142,155,159],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"Getting Started","\u002Fgetting-started","1.getting-started",[9,12,30,44,48],{"title":10,"path":6,"stem":11},"About SilvaMux","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":-1},"Your First SilvaMux API Call","\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},"Projects & Account Setup","\u002Fgetting-started\u002Fquick-start\u002Fproject-and-account","1.getting-started\u002F1.quick-start\u002F2.project-and-account",{"title":23,"path":24,"stem":25},"Get an API Key","\u002Fgetting-started\u002Fquick-start\u002Fapi-key","1.getting-started\u002F1.quick-start\u002F3.api-key",{"title":27,"path":28,"stem":29},"First Request","\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},"Models & Experience","\u002Fgetting-started\u002Fmodels-and-experience","1.getting-started\u002F2.models-and-experience",[35,39],{"title":36,"path":37,"stem":38},"Model Selection","\u002Fgetting-started\u002Fmodels-and-experience\u002Fmodel-selection","1.getting-started\u002F2.models-and-experience\u002F1.model-selection",{"title":40,"path":41,"stem":42},"Playground","\u002Fgetting-started\u002Fmodels-and-experience\u002Fplayground","1.getting-started\u002F2.models-and-experience\u002F2.playground",false,{"title":45,"path":46,"stem":47},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":49,"path":50,"stem":51},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",{"title":53,"path":54,"stem":55,"children":56,"page":43},"Billing","\u002Fbilling","2.billing",[57,61,65],{"title":58,"path":59,"stem":60},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":62,"path":63,"stem":64},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":66,"path":67,"stem":68},"Bills, Usage & Exports","\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 Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":79,"path":80,"stem":81,"children":82,"page":-1},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F2.personal\u002Findex",[83,85,89],{"title":84,"path":80,"stem":81},"Pricing & Benefits",{"title":86,"path":87,"stem":88},"Quick Start","\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},"Model APIs","\u002Fmodels","4.models",[97,130],{"title":98,"path":99,"stem":100,"children":101,"page":43},"Text Generation","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[102,106,110,114,118,122,126],{"title":103,"path":104,"stem":105},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":107,"path":108,"stem":109},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":111,"path":112,"stem":113},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":115,"path":116,"stem":117},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":119,"path":120,"stem":121},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":123,"path":124,"stem":125},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":127,"path":128,"stem":129},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":131,"path":132,"stem":133,"children":134,"page":43},"Image Generation","\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},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":143,"path":144,"stem":145,"children":146,"page":43},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[147,151],{"title":148,"path":149,"stem":150},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":152,"path":153,"stem":154},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":156,"path":157,"stem":158},"Error Codes","\u002Ferrors","6.errors",{"title":160,"path":161,"stem":162},"Documentation","\u002F","index",{"id":164,"title":123,"body":165,"description":644,"extension":645,"meta":646,"navigation":308,"path":124,"rawbody":647,"requiredFlags":648,"seo":649,"stem":125,"__hash__":650},"docs_en\u002F4.models\u002F1.chat\u002F6.unified.md",{"type":166,"value":167,"toc":641},"minimark",[168,172,181,186,191,630,637],[169,170,123],"h1",{"id":171},"silvamux-unified-entry",[173,174,175,176,180],"p",{},"An optional cross-protocol unified entry. It accepts the OpenAI Chat format, picks the upstream automatically based on ",[177,178,179],"code",{},"model",", and normalizes responses, SSE, and errors into the OpenAI Chat format. Useful when you want to call models across protocols through a single endpoint.",[182,183],"api-endpoint",{"method":184,"path":185},"POST","\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[187,188,190],"h2",{"id":189},"examples","Examples",[192,193,194,279,370,446],"code-tabs",{},[195,196,198],"code-tab",{"label":197},"cURL",[199,200,205],"pre",{"className":201,"code":202,"language":203,"meta":204,"style":204},"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\": \"Hello\"}]\n  }'\n","bash","",[177,206,207,224,242,252,261,267,273],{"__ignoreMap":204},[208,209,212,216,220],"span",{"class":210,"line":211},"line",1,[208,213,215],{"class":214},"sScJk","curl",[208,217,219],{"class":218},"sZZnC"," https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions",[208,221,223],{"class":222},"sj4cs"," \\\n",[208,225,227,230,233,237,240],{"class":210,"line":226},2,[208,228,229],{"class":222},"  -H",[208,231,232],{"class":218}," \"Authorization: Bearer ",[208,234,236],{"class":235},"sVt8B","$SILVAMUX_API_KEY",[208,238,239],{"class":218},"\"",[208,241,223],{"class":222},[208,243,245,247,250],{"class":210,"line":244},3,[208,246,229],{"class":222},[208,248,249],{"class":218}," \"Content-Type: application\u002Fjson\"",[208,251,223],{"class":222},[208,253,255,258],{"class":210,"line":254},4,[208,256,257],{"class":222},"  -d",[208,259,260],{"class":218}," '{\n",[208,262,264],{"class":210,"line":263},5,[208,265,266],{"class":218},"    \"model\": \"minimax-m2.5\",\n",[208,268,270],{"class":210,"line":269},6,[208,271,272],{"class":218},"    \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n",[208,274,276],{"class":210,"line":275},7,[208,277,278],{"class":218},"  }'\n",[195,280,282],{"label":281},"Python",[199,283,287],{"className":284,"code":285,"language":286,"meta":204,"style":204},"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\": \"Hello\"}],\n)\n\nprint(response.choices[0].message.content)\n","python",[177,288,289,294,299,304,310,315,320,325,331,336,342,348,354,359,364],{"__ignoreMap":204},[208,290,291],{"class":210,"line":211},[208,292,293],{},"# pip install openai\n",[208,295,296],{"class":210,"line":226},[208,297,298],{},"import os\n",[208,300,301],{"class":210,"line":244},[208,302,303],{},"from openai import OpenAI\n",[208,305,306],{"class":210,"line":254},[208,307,309],{"emptyLinePlaceholder":308},true,"\n",[208,311,312],{"class":210,"line":263},[208,313,314],{},"client = OpenAI(\n",[208,316,317],{"class":210,"line":269},[208,318,319],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[208,321,322],{"class":210,"line":275},[208,323,324],{},"    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[208,326,328],{"class":210,"line":327},8,[208,329,330],{},")\n",[208,332,334],{"class":210,"line":333},9,[208,335,309],{"emptyLinePlaceholder":308},[208,337,339],{"class":210,"line":338},10,[208,340,341],{},"response = client.chat.completions.create(\n",[208,343,345],{"class":210,"line":344},11,[208,346,347],{},"    model=\"minimax-m2.5\",\n",[208,349,351],{"class":210,"line":350},12,[208,352,353],{},"    messages=[{\"role\": \"user\", \"content\": \"Hello\"}],\n",[208,355,357],{"class":210,"line":356},13,[208,358,330],{},[208,360,362],{"class":210,"line":361},14,[208,363,309],{"emptyLinePlaceholder":308},[208,365,367],{"class":210,"line":366},15,[208,368,369],{},"print(response.choices[0].message.content)\n",[195,371,373],{"label":372},"JavaScript",[199,374,378],{"className":375,"code":376,"language":377,"meta":204,"style":204},"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: \"Hello\" }],\n});\n\nconsole.log(response.choices[0].message.content);\n","javascript",[177,379,380,385,390,394,399,404,409,414,418,423,428,433,437,441],{"__ignoreMap":204},[208,381,382],{"class":210,"line":211},[208,383,384],{},"\u002F\u002F npm install openai\n",[208,386,387],{"class":210,"line":226},[208,388,389],{},"import OpenAI from \"openai\";\n",[208,391,392],{"class":210,"line":244},[208,393,309],{"emptyLinePlaceholder":308},[208,395,396],{"class":210,"line":254},[208,397,398],{},"const client = new OpenAI({\n",[208,400,401],{"class":210,"line":263},[208,402,403],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[208,405,406],{"class":210,"line":269},[208,407,408],{},"  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\",\n",[208,410,411],{"class":210,"line":275},[208,412,413],{},"});\n",[208,415,416],{"class":210,"line":327},[208,417,309],{"emptyLinePlaceholder":308},[208,419,420],{"class":210,"line":333},[208,421,422],{},"const response = await client.chat.completions.create({\n",[208,424,425],{"class":210,"line":338},[208,426,427],{},"  model: \"minimax-m2.5\",\n",[208,429,430],{"class":210,"line":344},[208,431,432],{},"  messages: [{ role: \"user\", content: \"Hello\" }],\n",[208,434,435],{"class":210,"line":350},[208,436,413],{},[208,438,439],{"class":210,"line":356},[208,440,309],{"emptyLinePlaceholder":308},[208,442,443],{"class":210,"line":361},[208,444,445],{},"console.log(response.choices[0].message.content);\n",[195,447,449],{"label":448},"Go",[199,450,454],{"className":451,"code":452,"language":453,"meta":204,"style":204},"language-go shiki shiki-themes github-light github-dark","\u002F\u002F Standard library only\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\": \"Hello\"}]\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,455,456,461,466,470,475,480,485,490,495,500,504,508,513,518,523,528,534,539,545,551,557,563,569,575,580,586,591,596,601,607,612,618,624],{"__ignoreMap":204},[208,457,458],{"class":210,"line":211},[208,459,460],{},"\u002F\u002F Standard library only\n",[208,462,463],{"class":210,"line":226},[208,464,465],{},"package main\n",[208,467,468],{"class":210,"line":244},[208,469,309],{"emptyLinePlaceholder":308},[208,471,472],{"class":210,"line":254},[208,473,474],{},"import (\n",[208,476,477],{"class":210,"line":263},[208,478,479],{},"    \"bytes\"\n",[208,481,482],{"class":210,"line":269},[208,483,484],{},"    \"fmt\"\n",[208,486,487],{"class":210,"line":275},[208,488,489],{},"    \"io\"\n",[208,491,492],{"class":210,"line":327},[208,493,494],{},"    \"net\u002Fhttp\"\n",[208,496,497],{"class":210,"line":333},[208,498,499],{},"    \"os\"\n",[208,501,502],{"class":210,"line":338},[208,503,330],{},[208,505,506],{"class":210,"line":344},[208,507,309],{"emptyLinePlaceholder":308},[208,509,510],{"class":210,"line":350},[208,511,512],{},"func main() {\n",[208,514,515],{"class":210,"line":356},[208,516,517],{},"    payload := []byte(`{\n",[208,519,520],{"class":210,"line":361},[208,521,522],{},"        \"model\": \"minimax-m2.5\",\n",[208,524,525],{"class":210,"line":366},[208,526,527],{},"        \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n",[208,529,531],{"class":210,"line":530},16,[208,532,533],{},"    }`)\n",[208,535,537],{"class":210,"line":536},17,[208,538,309],{"emptyLinePlaceholder":308},[208,540,542],{"class":210,"line":541},18,[208,543,544],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[208,546,548],{"class":210,"line":547},19,[208,549,550],{},"    if err != nil {\n",[208,552,554],{"class":210,"line":553},20,[208,555,556],{},"        panic(err)\n",[208,558,560],{"class":210,"line":559},21,[208,561,562],{},"    }\n",[208,564,566],{"class":210,"line":565},22,[208,567,568],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[208,570,572],{"class":210,"line":571},23,[208,573,574],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[208,576,578],{"class":210,"line":577},24,[208,579,309],{"emptyLinePlaceholder":308},[208,581,583],{"class":210,"line":582},25,[208,584,585],{},"    resp, err := http.DefaultClient.Do(req)\n",[208,587,589],{"class":210,"line":588},26,[208,590,550],{},[208,592,594],{"class":210,"line":593},27,[208,595,556],{},[208,597,599],{"class":210,"line":598},28,[208,600,562],{},[208,602,604],{"class":210,"line":603},29,[208,605,606],{},"    defer resp.Body.Close()\n",[208,608,610],{"class":210,"line":609},30,[208,611,309],{"emptyLinePlaceholder":308},[208,613,615],{"class":210,"line":614},31,[208,616,617],{},"    body, _ := io.ReadAll(resp.Body)\n",[208,619,621],{"class":210,"line":620},32,[208,622,623],{},"    fmt.Println(string(body))\n",[208,625,627],{"class":210,"line":626},33,[208,628,629],{},"}\n",[631,632,634],"alert",{"type":633},"warning",[173,635,636],{},"The unified entry normalizes request and response structures. When you need vendor-specific fields, events, or response shapes, prefer the corresponding vendor protocol compatible entry.",[638,639,640],"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":204,"searchDepth":226,"depth":226,"links":642},[643],{"id":189,"depth":226,"text":190},"Cross-protocol unified entry — OpenAI Chat format in and out, automatic upstream selection.","md",{},"---\ntitle: SilvaMux Unified Entry\ndescription: Cross-protocol unified entry — OpenAI Chat format in and out, automatic upstream selection.\n---\n\n# SilvaMux Unified Entry\n\nAn optional cross-protocol unified entry. It accepts the OpenAI Chat format, picks the upstream automatically based on `model`, and normalizes responses, SSE, and errors into the OpenAI Chat format. Useful when you want to call models across protocols through a single endpoint.\n\n::api-endpoint{path=\"\u002Fapi\u002Fv0\u002Fchat\u002Fcompletions\" method=\"POST\"}\n::\n\n## Examples\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\": \"Hello\"}]\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\": \"Hello\"}],\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: \"Hello\" }],\n});\n\nconsole.log(response.choices[0].message.content);\n```\n:::\n:::code-tab{label=\"Go\"}\n```go\n\u002F\u002F Standard library only\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\": \"Hello\"}]\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\"}\nThe unified entry normalizes request and response structures. When you need vendor-specific fields, events, or response shapes, prefer the corresponding vendor protocol compatible entry.\n::\n",[],{"title":123,"description":644},"PF2YUfa8Aqlpr9eMoCkS1z_UqyLHshhHTHyXpmJP7YE",{"found":308,"operationId":652,"summary":653,"description":654,"method":184,"path":185,"publiclyDiscoverable":308,"security":655,"parameters":659,"requestBody":660,"responses":690},"createUnifiedChatCompletion","SilvaMux 统一入口","可选的跨协议统一入口。按 model 选择上游，并将响应、SSE 和错误统一为 OpenAI Chat 格式。",{"schemes":656,"optional":43},[657,658],"BearerAuth","ApiKeyAuth",[],{"present":308,"required":308,"description":204,"contentType":661,"type":662,"fields":663,"variants":689},"application\u002Fjson","OpenAIChatRequest",[664,667,670,673,676,679,683,686],{"name":665,"type":666,"required":43,"description":204},"max_tokens","integer",{"name":668,"type":669,"required":308,"description":204},"messages","array\u003CMessage>",{"name":671,"type":672,"required":308,"description":204},"messages.content","string | array\u003CFreeFormObject>",{"name":674,"type":675,"required":308,"description":204},"messages.role","string (system | user | assistant | tool)",{"name":179,"type":677,"required":308,"description":678},"string","SilvaMux 模型 id 或 alias。",{"name":680,"type":681,"required":43,"description":204,"defaultValue":682},"stream","boolean","false",{"name":684,"type":685,"required":43,"description":204},"temperature","number",{"name":687,"type":688,"required":43,"description":204},"tools","array\u003CFreeFormObject>",[],[691,706],{"status":692,"description":693,"contentType":661,"type":694,"fields":695},"200","OpenAI Chat JSON 或 SSE 响应。","OpenAIChatResponse",[696,698,700,701,703],{"name":697,"type":688,"required":308,"description":204},"choices",{"name":699,"type":677,"required":308,"description":204},"id",{"name":179,"type":677,"required":43,"description":204},{"name":702,"type":677,"required":43,"description":204},"object",{"name":704,"type":705,"required":43,"description":204},"usage","FreeFormObject",{"status":707,"description":708,"contentType":661,"type":709,"fields":710},"default","OpenAI 兼容错误。","OpenAIError",[711,713,716,718],{"name":712,"type":702,"required":308,"description":204},"error",{"name":714,"type":715,"required":43,"description":204},"error.code","string | integer",{"name":717,"type":677,"required":308,"description":204},"error.message",{"name":719,"type":677,"required":43,"description":204},"error.type"]