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