[{"data":1,"prerenderedAt":618},["ShallowReactive",2],{"docs-nav-titles":3,"page-docs_id-\u002Fintegrations\u002Fopenai-sdk":52},{"en":4,"id":39},{"\u002Fauthentication":5,"\u002Fchangelog":6,"\u002Fguides\u002Fbilling":7,"\u002Fguides\u002Ferrors":8,"\u002Fguides\u002Fjson-output":9,"\u002Fguides\u002Frate-limits":10,"\u002Fguides\u002Freasoning":11,"\u002Fguides\u002Fstreaming":12,"\u002Fguides\u002Ftool-calling":13,"\u002Fguides\u002Ftop-up":14,"\u002F":15,"\u002Fintegrations\u002Faider":16,"\u002Fintegrations\u002Fclaude-code":17,"\u002Fintegrations\u002Fcline":18,"\u002Fintegrations\u002Fcontinue":19,"\u002Fintegrations\u002Fgoose":20,"\u002Fintegrations\u002Fhermes":21,"\u002Fintegrations":22,"\u002Fintegrations\u002Fkilo-code":23,"\u002Fintegrations\u002Flangchain":24,"\u002Fintegrations\u002Foh-my-pi":25,"\u002Fintegrations\u002Fopenai-sdk":26,"\u002Fintegrations\u002Fopenclaw":27,"\u002Fintegrations\u002Fopencode":28,"\u002Fintegrations\u002Fpi":29,"\u002Fintegrations\u002Fvercel-ai-sdk":30,"\u002Fintegrations\u002Fzed":31,"\u002Fmodels":32,"\u002Fquickstart":33,"\u002Freference\u002Fchat-completions":34,"\u002Freference":22,"\u002Freference\u002Fmessages":35,"\u002Freference\u002Fmodels":36,"\u002Freference\u002Fmodels-retrieve":37,"\u002Fsupport":38},"Authentication","Changelog","Billing","Errors & retries","JSON output","Rate limits","Reasoning content","Streaming","Tool calling","Topping up with QRIS","Introduction","Aider","Claude Code","Cline","Continue","Goose","Hermes Agent","Overview","Kilo Code","LangChain (Python)","Oh My Pi","OpenAI SDKs","OpenClaw","OpenCode","Pi","Vercel AI SDK","Zed","Models","Quickstart","Chat completions","Messages","List models","Retrieve a model","Support",{"\u002Fauthentication":40,"\u002Fchangelog":6,"\u002Fguides\u002Fbilling":7,"\u002Fguides\u002Ferrors":41,"\u002Fguides\u002Fjson-output":42,"\u002Fguides\u002Frate-limits":43,"\u002Fguides\u002Freasoning":44,"\u002Fguides\u002Fstreaming":12,"\u002Fguides\u002Ftool-calling":13,"\u002Fguides\u002Ftop-up":45,"\u002F":46,"\u002Fintegrations\u002Faider":16,"\u002Fintegrations\u002Fclaude-code":17,"\u002Fintegrations\u002Fcline":18,"\u002Fintegrations\u002Fcontinue":19,"\u002Fintegrations\u002Fgoose":20,"\u002Fintegrations\u002Fhermes":21,"\u002Fintegrations":47,"\u002Fintegrations\u002Fkilo-code":23,"\u002Fintegrations\u002Flangchain":24,"\u002Fintegrations\u002Foh-my-pi":25,"\u002Fintegrations\u002Fopenai-sdk":48,"\u002Fintegrations\u002Fopenclaw":27,"\u002Fintegrations\u002Fopencode":28,"\u002Fintegrations\u002Fpi":29,"\u002Fintegrations\u002Fvercel-ai-sdk":30,"\u002Fintegrations\u002Fzed":31,"\u002Fmodels":49,"\u002Fquickstart":33,"\u002Freference\u002Fchat-completions":34,"\u002Freference":47,"\u002Freference\u002Fmessages":35,"\u002Freference\u002Fmodels":50,"\u002Freference\u002Fmodels-retrieve":51,"\u002Fsupport":38},"Autentikasi","Error & retry","Output JSON","Rate limit","Konten reasoning","Isi saldo dengan QRIS","Pengantar","Ringkasan","OpenAI SDK","Model","Daftar model","Ambil satu model",{"id":53,"title":48,"body":54,"description":610,"extension":611,"eyebrow":612,"meta":613,"navTitle":612,"navigation":186,"path":614,"seo":615,"stem":616,"__hash__":617},"docs_id\u002Fintegrations\u002Fopenai-sdk.md",{"type":55,"value":56,"toc":596},"minimark",[57,61,74,79,82,321,325,355,359,362,546,549,572,592],[58,59,60],"p",{},"Keduanya bisa dipakai dengan Laras Router cukup dengan mengganti base URL dan kuncinya. Setiap langkah sudah dicek dengan dokumentasi resmi masing-masing SDK.",[58,62,63,64,68,69,73],{},"Anda memerlukan API key (",[65,66,67],"code",{},"lr_live_…",") dan saldo yang sudah diisi. Baru mengenal Laras Router? Mulai dari ",[70,71,33],"a",{"href":72},"\u002Fid\u002Fquickstart",".",[75,76,78],"h2",{"id":77},"python","Python",[58,80,81],{},"Library resmi OpenAI untuk Python.",[83,84,85,90,115,119,122,143,147,150],"steps",{},[86,87,89],"h3",{"id":88},"instal-sdk","Instal SDK",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-bash shiki shiki-themes github-dark-default github-light-default","pip install openai\n","bash","",[65,98,99],{"__ignoreMap":96},[100,101,104,108,112],"span",{"class":102,"line":103},"line",1,[100,105,107],{"class":106},"sjwWW","pip",[100,109,111],{"class":110},"sHdZ9"," install",[100,113,114],{"class":110}," openai\n",[86,116,118],{"id":117},"simpan-api-key-anda","Simpan API key Anda",[58,120,121],{},"Simpan kunci Anda di variabel lingkungan.",[91,123,125],{"className":93,"code":124,"language":95,"meta":96,"style":96},"export LARAS_API_KEY=\"lr_live_your_key_here\"\n",[65,126,127],{"__ignoreMap":96},[100,128,129,133,137,140],{"class":102,"line":103},[100,130,132],{"class":131},"s1PA9","export",[100,134,136],{"class":135},"sUq8j"," LARAS_API_KEY",[100,138,139],{"class":131},"=",[100,141,142],{"class":110},"\"lr_live_your_key_here\"\n",[86,144,146],{"id":145},"kirim-request","Kirim request",[58,148,149],{},"Buat klien dengan base URL Laras Router dan panggil Chat Completions.",[91,151,157],{"className":152,"code":153,"highlights":154,"language":77,"meta":96,"style":96},"language-python shiki shiki-themes github-dark-default github-light-default","import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https:\u002F\u002Fapi.larasrouter.com\u002Fv1\",\n    api_key=os.environ[\"LARAS_API_KEY\"],\n)\n\ncompletion = client.chat.completions.create(\n    model=\"deepseek-flash\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello!\"}],\n)\nprint(completion.choices[0].message.content)\n",[155,156],5,6,[65,158,159,167,181,188,199,214,231,237,242,253,266,300,305],{"__ignoreMap":96},[100,160,161,164],{"class":102,"line":103},[100,162,163],{"class":131},"import",[100,165,166],{"class":135}," os\n",[100,168,170,173,176,178],{"class":102,"line":169},2,[100,171,172],{"class":131},"from",[100,174,175],{"class":135}," openai ",[100,177,163],{"class":131},[100,179,180],{"class":135}," OpenAI\n",[100,182,184],{"class":102,"line":183},3,[100,185,187],{"emptyLinePlaceholder":186},true,"\n",[100,189,191,194,196],{"class":102,"line":190},4,[100,192,193],{"class":135},"client ",[100,195,139],{"class":131},[100,197,198],{"class":135}," OpenAI(\n",[100,200,203,206,208,211],{"class":201,"line":155},[102,202],"highlight",[100,204,205],{"class":106},"    base_url",[100,207,139],{"class":131},[100,209,210],{"class":110},"\"https:\u002F\u002Fapi.larasrouter.com\u002Fv1\"",[100,212,213],{"class":135},",\n",[100,215,217,220,222,225,228],{"class":216,"line":156},[102,202],[100,218,219],{"class":106},"    api_key",[100,221,139],{"class":131},[100,223,224],{"class":135},"os.environ[",[100,226,227],{"class":110},"\"LARAS_API_KEY\"",[100,229,230],{"class":135},"],\n",[100,232,234],{"class":102,"line":233},7,[100,235,236],{"class":135},")\n",[100,238,240],{"class":102,"line":239},8,[100,241,187],{"emptyLinePlaceholder":186},[100,243,245,248,250],{"class":102,"line":244},9,[100,246,247],{"class":135},"completion ",[100,249,139],{"class":131},[100,251,252],{"class":135}," client.chat.completions.create(\n",[100,254,256,259,261,264],{"class":102,"line":255},10,[100,257,258],{"class":106},"    model",[100,260,139],{"class":131},[100,262,263],{"class":110},"\"deepseek-flash\"",[100,265,213],{"class":135},[100,267,269,272,274,277,280,283,286,289,292,294,297],{"class":102,"line":268},11,[100,270,271],{"class":106},"    messages",[100,273,139],{"class":131},[100,275,276],{"class":135},"[{",[100,278,279],{"class":110},"\"role\"",[100,281,282],{"class":135},": ",[100,284,285],{"class":110},"\"user\"",[100,287,288],{"class":135},", ",[100,290,291],{"class":110},"\"content\"",[100,293,282],{"class":135},[100,295,296],{"class":110},"\"Hello!\"",[100,298,299],{"class":135},"}],\n",[100,301,303],{"class":102,"line":302},12,[100,304,236],{"class":135},[100,306,308,312,315,318],{"class":102,"line":307},13,[100,309,311],{"class":310},"sYnYM","print",[100,313,314],{"class":135},"(completion.choices[",[100,316,317],{"class":310},"0",[100,319,320],{"class":135},"].message.content)\n",[86,322,324],{"id":323},"perlu-diketahui","Perlu diketahui",[326,327,328,340],"ul",{},[329,330,331,332,335,336,339],"li",{},"Gunakan ",[65,333,334],{},"client.chat.completions.create",". README SDK ini mengutamakan Responses API (",[65,337,338],{},"client.responses.create","), yang tidak diimplementasikan Laras Router.",[329,341,342,343,346,347,350,351,354],{},"Untuk streaming, kirim ",[65,344,345],{},"stream=True",". SDK ini juga membaca ",[65,348,349],{},"OPENAI_BASE_URL"," dan ",[65,352,353],{},"OPENAI_API_KEY"," jika Anda lebih suka variabel lingkungan daripada argumen.",[75,356,358],{"id":357},"node","Node.js",[58,360,361],{},"Library resmi OpenAI untuk Node.js dan TypeScript.",[83,363,364,367,381,384,386,400,403,405],{},[86,365,89],{"id":366},"instal-sdk-1",[91,368,370],{"className":93,"code":369,"language":95,"meta":96,"style":96},"npm install openai\n",[65,371,372],{"__ignoreMap":96},[100,373,374,377,379],{"class":102,"line":103},[100,375,376],{"class":106},"npm",[100,378,111],{"class":110},[100,380,114],{"class":110},[86,382,118],{"id":383},"simpan-api-key-anda-1",[58,385,121],{},[91,387,388],{"className":93,"code":124,"language":95,"meta":96,"style":96},[65,389,390],{"__ignoreMap":96},[100,391,392,394,396,398],{"class":102,"line":103},[100,393,132],{"class":131},[100,395,136],{"class":135},[100,397,139],{"class":131},[100,399,142],{"class":110},[86,401,146],{"id":402},"kirim-request-1",[58,404,149],{},[91,406,411],{"className":407,"code":408,"highlights":409,"language":410,"meta":96,"style":96},"language-typescript shiki shiki-themes github-dark-default github-light-default","import OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  baseURL: \"https:\u002F\u002Fapi.larasrouter.com\u002Fv1\",\n  apiKey: process.env.LARAS_API_KEY,\n});\n\nconst completion = await client.chat.completions.create({\n  model: \"deepseek-flash\",\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n});\nconsole.log(completion.choices[0].message.content);\n",[190,155],"typescript",[65,412,413,428,432,453,463,474,479,483,503,512,527,531],{"__ignoreMap":96},[100,414,415,417,420,422,425],{"class":102,"line":103},[100,416,163],{"class":131},[100,418,419],{"class":135}," OpenAI ",[100,421,172],{"class":131},[100,423,424],{"class":110}," \"openai\"",[100,426,427],{"class":135},";\n",[100,429,430],{"class":102,"line":169},[100,431,187],{"emptyLinePlaceholder":186},[100,433,434,437,440,443,446,450],{"class":102,"line":183},[100,435,436],{"class":131},"const",[100,438,439],{"class":310}," client",[100,441,442],{"class":131}," =",[100,444,445],{"class":131}," new",[100,447,449],{"class":448},"sK34n"," OpenAI",[100,451,452],{"class":135},"({\n",[100,454,456,459,461],{"class":455,"line":190},[102,202],[100,457,458],{"class":135},"  baseURL: ",[100,460,210],{"class":110},[100,462,213],{"class":135},[100,464,466,469,472],{"class":465,"line":155},[102,202],[100,467,468],{"class":135},"  apiKey: process.env.",[100,470,471],{"class":310},"LARAS_API_KEY",[100,473,213],{"class":135},[100,475,476],{"class":102,"line":156},[100,477,478],{"class":135},"});\n",[100,480,481],{"class":102,"line":233},[100,482,187],{"emptyLinePlaceholder":186},[100,484,485,487,490,492,495,498,501],{"class":102,"line":239},[100,486,436],{"class":131},[100,488,489],{"class":310}," completion",[100,491,442],{"class":131},[100,493,494],{"class":131}," await",[100,496,497],{"class":135}," client.chat.completions.",[100,499,500],{"class":448},"create",[100,502,452],{"class":135},[100,504,505,508,510],{"class":102,"line":244},[100,506,507],{"class":135},"  model: ",[100,509,263],{"class":110},[100,511,213],{"class":135},[100,513,514,517,519,522,524],{"class":102,"line":255},[100,515,516],{"class":135},"  messages: [{ role: ",[100,518,285],{"class":110},[100,520,521],{"class":135},", content: ",[100,523,296],{"class":110},[100,525,526],{"class":135}," }],\n",[100,528,529],{"class":102,"line":268},[100,530,478],{"class":135},[100,532,533,536,539,541,543],{"class":102,"line":302},[100,534,535],{"class":135},"console.",[100,537,538],{"class":448},"log",[100,540,314],{"class":135},[100,542,317],{"class":310},[100,544,545],{"class":135},"].message.content);\n",[86,547,324],{"id":548},"perlu-diketahui-1",[326,550,551,557],{},[329,552,331,553,335,555,339],{},[65,554,334],{},[65,556,338],{},[329,558,559,560,563,564,567,568,571],{},"Contoh ini memakai ",[65,561,562],{},"await"," di level teratas, jadi jalankan sebagai ES module (file ",[65,565,566],{},".mjs"," atau package dengan ",[65,569,570],{},"\"type\": \"module\"",").",[58,573,574,575,581,582,587,588,73],{},"Pengaturan dan tampilan bisa berubah antarversi. Jika ada yang berbeda, periksa ",[70,576,580],{"href":577,"rel":578},"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-python",[579],"nofollow","dokumentasi OpenAI Python SDK"," atau ",[70,583,586],{"href":584,"rel":585},"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-node",[579],"dokumentasi OpenAI Node SDK",". Untuk tool lain, lihat semua ",[70,589,591],{"href":590},"\u002Fid\u002Fintegrations","integrasi",[593,594,595],"style",{},"html pre.shiki code .sjwWW, html code.shiki .sjwWW{--shiki-default:#FFA657;--shiki-light:#953800}html pre.shiki code .sHdZ9, html code.shiki .sHdZ9{--shiki-default:#A5D6FF;--shiki-light:#0A3069}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 .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .s1PA9, html code.shiki .s1PA9{--shiki-default:#FF7B72;--shiki-light:#CF222E}html pre.shiki code .sUq8j, html code.shiki .sUq8j{--shiki-default:#E6EDF3;--shiki-light:#1F2328}html pre.shiki code .sYnYM, html code.shiki .sYnYM{--shiki-default:#79C0FF;--shiki-light:#0550AE}html pre.shiki code .sK34n, html code.shiki .sK34n{--shiki-default:#D2A8FF;--shiki-light:#8250DF}",{"title":96,"searchDepth":183,"depth":183,"links":597},[598,604],{"id":77,"depth":169,"text":78,"children":599},[600,601,602,603],{"id":88,"depth":183,"text":89},{"id":117,"depth":183,"text":118},{"id":145,"depth":183,"text":146},{"id":323,"depth":183,"text":324},{"id":357,"depth":169,"text":358,"children":605},[606,607,608,609],{"id":366,"depth":183,"text":89},{"id":383,"depth":183,"text":118},{"id":402,"depth":183,"text":146},{"id":548,"depth":183,"text":324},"Library resmi OpenAI untuk Python serta untuk Node.js dan TypeScript. Panduan setup langkah demi langkah dengan Laras Router.","md",null,{},"\u002Fintegrations\u002Fopenai-sdk",{"title":48,"description":610},"integrations\u002Fopenai-sdk","xhAF6IEd22bMJe57fxdEsseyU7oDAxdLln4y-Bh9cqA",1793333618896]