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