SumoRouter
Integrasi

OpenAI SDK

Cukup ganti base_url dan api_key. Semua model (termasuk Claude, Gemini, DeepSeek) bisa dipanggil lewat format OpenAI.

Python

Code
from openai import OpenAI client = OpenAI(base_url="https://ai.brandkamu.id/v1", api_key="sk-...") # Chat Completions resp = client.chat.completions.create( model="gemini/gemini-3.5-flash", messages=[ {"role": "system", "content": "Kamu asisten yang ringkas."}, {"role": "user", "content": "Apa ibu kota Kalimantan Timur?"}, ], ) print(resp.choices[0].message.content) # Responses API r = client.responses.create(model="gpt-5-mini", input="Ringkas berita ini dalam 3 poin: ...") print(r.output_text) # Embeddings e = client.embeddings.create(model="text-embedding-3-small", input=["halo dunia"]) print(len(e.data[0].embedding))

Node.js / TypeScript

TypeScriptCode
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://ai.brandkamu.id/v1", apiKey: process.env.SUMOROUTER_API_KEY, }); const resp = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "Buat 3 ide nama kedai kopi" }], }); console.log(resp.choices[0].message.content);

Gambar (vision)

Untuk model dengan supports_vision, kirim gambar sebagai image_url (URL publik atau data URL base64):

Code
resp = client.chat.completions.create( model="gpt-5-mini", messages=[{ "role": "user", "content": [ {"type": "text", "text": "Apa isi gambar ini?"}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBOR..."}}, ], }], )

Tool calling / function calling

Didukung di model yang mendukungnya, dengan format OpenAI (tools, tool_choice) yang sama persis.

Model yang tidak punya Responses API di upstream otomatis dilayani lewat Chat Completions, jadi client.responses.create tetap jalan untuk semua model chat.

Last modified on