[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-zh":3,"docs-zh-models\u002Fchat\u002Fmultimodal":167},[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":127,"body":169,"description":917,"extension":918,"meta":919,"navigation":370,"path":128,"rawbody":920,"requiredFlags":921,"seo":922,"stem":129,"__hash__":923},"docs\u002F4.models\u002F1.chat\u002F7.multimodal.md",{"type":170,"value":171,"toc":913},"minimark",[172,175,184,189,205,811,831,834,842,901,909],[173,174,127],"h1",{"id":127},[176,177,178,179,183],"p",{},"本页说明对话接口的多模态输入能力。SilvaMux 对多模态内容",[180,181,182],"strong",{},"透传","给模型侧，能否处理取决于模型本身。",[185,186,188],"h2",{"id":187},"图片输入vision","图片输入（vision）",[176,190,191,192,196,197,200,201,204],{},"支持 OpenAI vision 格式，在 ",[193,194,195],"code",{},"messages"," 的 ",[193,198,199],{},"content"," 中传入 ",[193,202,203],{},"image_url","：",[206,207,208,341,472,588],"code-tabs",{},[209,210,212],"code-tab",{"label":211},"cURL",[213,214,219],"pre",{"className":215,"code":216,"language":217,"meta":218,"style":218},"language-bash shiki shiki-themes github-light github-dark","curl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n        ]\n      }\n    ]\n  }'\n","bash","",[193,220,221,238,256,266,275,281,287,293,299,305,311,317,323,329,335],{"__ignoreMap":218},[222,223,226,230,234],"span",{"class":224,"line":225},"line",1,[222,227,229],{"class":228},"sScJk","curl",[222,231,233],{"class":232},"sZZnC"," https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",[222,235,237],{"class":236},"sj4cs"," \\\n",[222,239,241,244,247,251,254],{"class":224,"line":240},2,[222,242,243],{"class":236},"  -H",[222,245,246],{"class":232}," \"Authorization: Bearer ",[222,248,250],{"class":249},"sVt8B","$SILVAMUX_API_KEY",[222,252,253],{"class":232},"\"",[222,255,237],{"class":236},[222,257,259,261,264],{"class":224,"line":258},3,[222,260,243],{"class":236},[222,262,263],{"class":232}," \"Content-Type: application\u002Fjson\"",[222,265,237],{"class":236},[222,267,269,272],{"class":224,"line":268},4,[222,270,271],{"class":236},"  -d",[222,273,274],{"class":232}," '{\n",[222,276,278],{"class":224,"line":277},5,[222,279,280],{"class":232},"    \"model\": \"minimax-m3\",\n",[222,282,284],{"class":224,"line":283},6,[222,285,286],{"class":232},"    \"messages\": [\n",[222,288,290],{"class":224,"line":289},7,[222,291,292],{"class":232},"      {\n",[222,294,296],{"class":224,"line":295},8,[222,297,298],{"class":232},"        \"role\": \"user\",\n",[222,300,302],{"class":224,"line":301},9,[222,303,304],{"class":232},"        \"content\": [\n",[222,306,308],{"class":224,"line":307},10,[222,309,310],{"class":232},"          {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n",[222,312,314],{"class":224,"line":313},11,[222,315,316],{"class":232},"          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[222,318,320],{"class":224,"line":319},12,[222,321,322],{"class":232},"        ]\n",[222,324,326],{"class":224,"line":325},13,[222,327,328],{"class":232},"      }\n",[222,330,332],{"class":224,"line":331},14,[222,333,334],{"class":232},"    ]\n",[222,336,338],{"class":224,"line":337},15,[222,339,340],{"class":232},"  }'\n",[209,342,344],{"label":343},"Python",[213,345,349],{"className":346,"code":347,"language":348,"meta":218,"style":218},"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\u002Fv1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"minimax-m3\",\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n            ],\n        }\n    ],\n)\n\nprint(response.choices[0].message.content)\n","python",[193,350,351,356,361,366,372,377,382,387,392,396,401,406,411,416,421,426,432,438,444,450,456,461,466],{"__ignoreMap":218},[222,352,353],{"class":224,"line":225},[222,354,355],{},"# pip install openai\n",[222,357,358],{"class":224,"line":240},[222,359,360],{},"import os\n",[222,362,363],{"class":224,"line":258},[222,364,365],{},"from openai import OpenAI\n",[222,367,368],{"class":224,"line":268},[222,369,371],{"emptyLinePlaceholder":370},true,"\n",[222,373,374],{"class":224,"line":277},[222,375,376],{},"client = OpenAI(\n",[222,378,379],{"class":224,"line":283},[222,380,381],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[222,383,384],{"class":224,"line":289},[222,385,386],{},"    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n",[222,388,389],{"class":224,"line":295},[222,390,391],{},")\n",[222,393,394],{"class":224,"line":301},[222,395,371],{"emptyLinePlaceholder":370},[222,397,398],{"class":224,"line":307},[222,399,400],{},"response = client.chat.completions.create(\n",[222,402,403],{"class":224,"line":313},[222,404,405],{},"    model=\"minimax-m3\",\n",[222,407,408],{"class":224,"line":319},[222,409,410],{},"    messages=[\n",[222,412,413],{"class":224,"line":325},[222,414,415],{},"        {\n",[222,417,418],{"class":224,"line":331},[222,419,420],{},"            \"role\": \"user\",\n",[222,422,423],{"class":224,"line":337},[222,424,425],{},"            \"content\": [\n",[222,427,429],{"class":224,"line":428},16,[222,430,431],{},"                {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n",[222,433,435],{"class":224,"line":434},17,[222,436,437],{},"                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n",[222,439,441],{"class":224,"line":440},18,[222,442,443],{},"            ],\n",[222,445,447],{"class":224,"line":446},19,[222,448,449],{},"        }\n",[222,451,453],{"class":224,"line":452},20,[222,454,455],{},"    ],\n",[222,457,459],{"class":224,"line":458},21,[222,460,391],{},[222,462,464],{"class":224,"line":463},22,[222,465,371],{"emptyLinePlaceholder":370},[222,467,469],{"class":224,"line":468},23,[222,470,471],{},"print(response.choices[0].message.content)\n",[209,473,475],{"label":474},"JavaScript",[213,476,480],{"className":477,"code":478,"language":479,"meta":218,"style":218},"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\u002Fv1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"minimax-m3\",\n  messages: [\n    {\n      role: \"user\",\n      content: [\n        { type: \"text\", text: \"这张图里有什么？\" },\n        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n      ],\n    },\n  ],\n});\n\nconsole.log(response.choices[0].message.content);\n","javascript",[193,481,482,487,492,496,501,506,511,516,520,525,530,535,540,545,550,555,560,565,570,575,579,583],{"__ignoreMap":218},[222,483,484],{"class":224,"line":225},[222,485,486],{},"\u002F\u002F npm install openai\n",[222,488,489],{"class":224,"line":240},[222,490,491],{},"import OpenAI from \"openai\";\n",[222,493,494],{"class":224,"line":258},[222,495,371],{"emptyLinePlaceholder":370},[222,497,498],{"class":224,"line":268},[222,499,500],{},"const client = new OpenAI({\n",[222,502,503],{"class":224,"line":277},[222,504,505],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[222,507,508],{"class":224,"line":283},[222,509,510],{},"  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n",[222,512,513],{"class":224,"line":289},[222,514,515],{},"});\n",[222,517,518],{"class":224,"line":295},[222,519,371],{"emptyLinePlaceholder":370},[222,521,522],{"class":224,"line":301},[222,523,524],{},"const response = await client.chat.completions.create({\n",[222,526,527],{"class":224,"line":307},[222,528,529],{},"  model: \"minimax-m3\",\n",[222,531,532],{"class":224,"line":313},[222,533,534],{},"  messages: [\n",[222,536,537],{"class":224,"line":319},[222,538,539],{},"    {\n",[222,541,542],{"class":224,"line":325},[222,543,544],{},"      role: \"user\",\n",[222,546,547],{"class":224,"line":331},[222,548,549],{},"      content: [\n",[222,551,552],{"class":224,"line":337},[222,553,554],{},"        { type: \"text\", text: \"这张图里有什么？\" },\n",[222,556,557],{"class":224,"line":428},[222,558,559],{},"        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n",[222,561,562],{"class":224,"line":434},[222,563,564],{},"      ],\n",[222,566,567],{"class":224,"line":440},[222,568,569],{},"    },\n",[222,571,572],{"class":224,"line":446},[222,573,574],{},"  ],\n",[222,576,577],{"class":224,"line":452},[222,578,515],{},[222,580,581],{"class":224,"line":458},[222,582,371],{"emptyLinePlaceholder":370},[222,584,585],{"class":224,"line":463},[222,586,587],{},"console.log(response.choices[0].message.content);\n",[209,589,591],{"label":590},"Go",[213,592,596],{"className":593,"code":594,"language":595,"meta":218,"style":218},"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-m3\",\n        \"messages\": [\n            {\n                \"role\": \"user\",\n                \"content\": [\n                    {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n                    {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n                ]\n            }\n        ]\n    }`)\n\n    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\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",[193,597,598,603,608,612,617,622,627,632,637,642,646,650,655,660,665,670,675,680,685,690,695,700,705,709,715,720,726,732,738,744,750,756,761,767,772,777,782,788,793,799,805],{"__ignoreMap":218},[222,599,600],{"class":224,"line":225},[222,601,602],{},"\u002F\u002F 仅依赖标准库\n",[222,604,605],{"class":224,"line":240},[222,606,607],{},"package main\n",[222,609,610],{"class":224,"line":258},[222,611,371],{"emptyLinePlaceholder":370},[222,613,614],{"class":224,"line":268},[222,615,616],{},"import (\n",[222,618,619],{"class":224,"line":277},[222,620,621],{},"    \"bytes\"\n",[222,623,624],{"class":224,"line":283},[222,625,626],{},"    \"fmt\"\n",[222,628,629],{"class":224,"line":289},[222,630,631],{},"    \"io\"\n",[222,633,634],{"class":224,"line":295},[222,635,636],{},"    \"net\u002Fhttp\"\n",[222,638,639],{"class":224,"line":301},[222,640,641],{},"    \"os\"\n",[222,643,644],{"class":224,"line":307},[222,645,391],{},[222,647,648],{"class":224,"line":313},[222,649,371],{"emptyLinePlaceholder":370},[222,651,652],{"class":224,"line":319},[222,653,654],{},"func main() {\n",[222,656,657],{"class":224,"line":325},[222,658,659],{},"    payload := []byte(`{\n",[222,661,662],{"class":224,"line":331},[222,663,664],{},"        \"model\": \"minimax-m3\",\n",[222,666,667],{"class":224,"line":337},[222,668,669],{},"        \"messages\": [\n",[222,671,672],{"class":224,"line":428},[222,673,674],{},"            {\n",[222,676,677],{"class":224,"line":434},[222,678,679],{},"                \"role\": \"user\",\n",[222,681,682],{"class":224,"line":440},[222,683,684],{},"                \"content\": [\n",[222,686,687],{"class":224,"line":446},[222,688,689],{},"                    {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n",[222,691,692],{"class":224,"line":452},[222,693,694],{},"                    {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[222,696,697],{"class":224,"line":458},[222,698,699],{},"                ]\n",[222,701,702],{"class":224,"line":463},[222,703,704],{},"            }\n",[222,706,707],{"class":224,"line":468},[222,708,322],{},[222,710,712],{"class":224,"line":711},24,[222,713,714],{},"    }`)\n",[222,716,718],{"class":224,"line":717},25,[222,719,371],{"emptyLinePlaceholder":370},[222,721,723],{"class":224,"line":722},26,[222,724,725],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[222,727,729],{"class":224,"line":728},27,[222,730,731],{},"    if err != nil {\n",[222,733,735],{"class":224,"line":734},28,[222,736,737],{},"        panic(err)\n",[222,739,741],{"class":224,"line":740},29,[222,742,743],{},"    }\n",[222,745,747],{"class":224,"line":746},30,[222,748,749],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[222,751,753],{"class":224,"line":752},31,[222,754,755],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[222,757,759],{"class":224,"line":758},32,[222,760,371],{"emptyLinePlaceholder":370},[222,762,764],{"class":224,"line":763},33,[222,765,766],{},"    resp, err := http.DefaultClient.Do(req)\n",[222,768,770],{"class":224,"line":769},34,[222,771,731],{},[222,773,775],{"class":224,"line":774},35,[222,776,737],{},[222,778,780],{"class":224,"line":779},36,[222,781,743],{},[222,783,785],{"class":224,"line":784},37,[222,786,787],{},"    defer resp.Body.Close()\n",[222,789,791],{"class":224,"line":790},38,[222,792,371],{"emptyLinePlaceholder":370},[222,794,796],{"class":224,"line":795},39,[222,797,798],{},"    body, _ := io.ReadAll(resp.Body)\n",[222,800,802],{"class":224,"line":801},40,[222,803,804],{},"    fmt.Println(string(body))\n",[222,806,808],{"class":224,"line":807},41,[222,809,810],{},"}\n",[812,813,814,825,828],"ul",{},[815,816,817,820,821,824],"li",{},[193,818,819],{},"image_url.url"," 可以是公网 URL，或 base64 编码（",[193,822,823],{},"data:image\u002Fjpeg;base64,...","）。",[815,826,827],{},"平台不解析也不剥离图片内容，原样转发给模型侧。",[815,829,830],{},"是否支持图片输入由模型决定（如部分多模态模型支持，纯文本模型会报错）。",[185,832,833],{"id":833},"音频输入",[176,835,836,837,200,839,204],{},"支持 OpenAI audio 格式，在 ",[193,838,199],{},[193,840,841],{},"input_audio",[213,843,847],{"className":844,"code":845,"language":846,"meta":218,"style":218},"language-json shiki shiki-themes github-light github-dark","{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n","json",[193,848,849,854,868,897],{"__ignoreMap":218},[222,850,851],{"class":224,"line":225},[222,852,853],{"class":249},"{\n",[222,855,856,859,862,865],{"class":224,"line":240},[222,857,858],{"class":236},"  \"type\"",[222,860,861],{"class":249},": ",[222,863,864],{"class":232},"\"input_audio\"",[222,866,867],{"class":249},",\n",[222,869,870,873,876,879,881,884,887,890,892,895],{"class":224,"line":258},[222,871,872],{"class":236},"  \"input_audio\"",[222,874,875],{"class":249},": {",[222,877,878],{"class":236},"\"data\"",[222,880,861],{"class":249},[222,882,883],{"class":232},"\"\u003Cbase64>\"",[222,885,886],{"class":249},", ",[222,888,889],{"class":236},"\"format\"",[222,891,861],{"class":249},[222,893,894],{"class":232},"\"wav\"",[222,896,810],{"class":249},[222,898,899],{"class":224,"line":268},[222,900,810],{"class":249},[812,902,903,906],{},[815,904,905],{},"平台透传，能否处理由模型决定。",[815,907,908],{},"音频 token 按普通输入 token 计价（无独立多模态单价）。",[910,911,912],"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":218,"searchDepth":240,"depth":240,"links":914},[915,916],{"id":187,"depth":240,"text":188},{"id":833,"depth":240,"text":833},"查看图片和音频等多模态内容的输入格式与模型能力限制。","md",{},"---\ntitle: 多模态输入\ndescription: 查看图片和音频等多模态内容的输入格式与模型能力限制。\n---\n\n# 多模态输入\n\n本页说明对话接口的多模态输入能力。SilvaMux 对多模态内容**透传**给模型侧，能否处理取决于模型本身。\n\n## 图片输入（vision）\n\n支持 OpenAI vision 格式，在 `messages` 的 `content` 中传入 `image_url`：\n\n::code-tabs\n:::code-tab{label=\"cURL\"}\n```bash\ncurl https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n        ]\n      }\n    ]\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\u002Fv1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"minimax-m3\",\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n            ],\n        }\n    ],\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\u002Fv1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"minimax-m3\",\n  messages: [\n    {\n      role: \"user\",\n      content: [\n        { type: \"text\", text: \"这张图里有什么？\" },\n        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n      ],\n    },\n  ],\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-m3\",\n\t\t\"messages\": [\n\t\t\t{\n\t\t\t\t\"role\": \"user\",\n\t\t\t\t\"content\": [\n\t\t\t\t\t{\"type\": \"text\", \"text\": \"这张图里有什么？\"},\n\t\t\t\t\t{\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t}`)\n\n\treq, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\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- `image_url.url` 可以是公网 URL，或 base64 编码（`data:image\u002Fjpeg;base64,...`）。\n- 平台不解析也不剥离图片内容，原样转发给模型侧。\n- 是否支持图片输入由模型决定（如部分多模态模型支持，纯文本模型会报错）。\n\n## 音频输入\n\n支持 OpenAI audio 格式，在 `content` 中传入 `input_audio`：\n\n```json\n{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n```\n\n- 平台透传，能否处理由模型决定。\n- 音频 token 按普通输入 token 计价（无独立多模态单价）。\n",[],{"title":127,"description":917},"OHWvQLs6bJuW88C0coD2YzyT9V3eVImtWfI-PA7_l3M"]