Mulai dengan Python (SDK OpenAI)
seamless.ai.id kompatibel dengan API OpenAI. Yang berbeda hanya base URL dan API key:
https://16-79-198-229.sslip.io/v1
1. Siapkan API key
Pendaftaran mandiri belum dibuka: minta API key ke operator seamless.ai.id. Isi saldo dari dashboard (QRIS) sebelum memanggil model berbayar. Simpan key di variabel lingkungan, jangan di kode:
export SEAMLESS_API_KEY='sk-seamless-...'
2. Pasang SDK OpenAI
pip install openai
3. Panggilan pertama
import os
from openai import OpenAI
client = OpenAI(
base_url="https://16-79-198-229.sslip.io/v1",
api_key=os.environ["SEAMLESS_API_KEY"],
)
reply = client.chat.completions.create(
model="qwen/qwen2.5-0.5b-instruct",
messages=[{"role": "user", "content": "Halo! Apa itu AI gateway?"}],
max_tokens=500,
)
print(reply.choices[0].message.content)
max_tokens membatasi jawaban dan juga saldo yang ditahan selama request berjalan (lihat saldo).
Streaming
import os
from openai import OpenAI
client = OpenAI(
base_url="https://16-79-198-229.sslip.io/v1",
api_key=os.environ["SEAMLESS_API_KEY"],
)
stream = client.chat.completions.create(
model="qwen/qwen2.5-0.5b-instruct",
messages=[{"role": "user", "content": "Ceritakan sejarah singkat Jakarta."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()
Responses API
POST /v1/responses menerima format Responses API OpenAI untuk setiap model chat, dengan harga, saldo yang ditahan, dan tagihan yang sama dengan chat completions. Server tidak menyimpan jawaban: kirim percakapan lengkap di input setiap kali. Yang didukung dan yang ditolak ada di ringkasan.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://16-79-198-229.sslip.io/v1",
api_key=os.environ["SEAMLESS_API_KEY"],
)
response = client.responses.create(
model="qwen/qwen2.5-0.5b-instruct",
instructions="Jawab singkat dalam bahasa Indonesia.",
input="Halo! Apa itu AI gateway?",
max_output_tokens=500,
store=False,
)
print(response.output_text)
stream = client.responses.create(
model="qwen/qwen2.5-0.5b-instruct",
input="Ceritakan sejarah singkat Jakarta.",
stream=True,
store=False,
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
print()
Input gambar
Saat ini tidak ada model di daftar harga yang menerima gambar; request bergambar ke model berbayar ditolak (400 unsupported_content).
Memilih provider
Opsi gateway dikirim lewat extra_body. Contoh ini mencoba provider tertentu lebih dulu; opsi lain (only, exclude, data_policy, max_price) ada di ringkasan.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://16-79-198-229.sslip.io/v1",
api_key=os.environ["SEAMLESS_API_KEY"],
)
reply = client.chat.completions.create(
model="qwen/qwen2.5-0.5b-instruct",
messages=[{"role": "user", "content": "Halo!"}],
# Field milik gateway, dicabut sebelum request diteruskan ke provider.
extra_body={"gateway": {"routing": {"order": ["default"]}}},
)
print(reply.choices[0].message.content)
Embeddings
import os
from openai import OpenAI
client = OpenAI(
base_url="https://16-79-198-229.sslip.io/v1",
api_key=os.environ["SEAMLESS_API_KEY"],
)
result = client.embeddings.create(
model="sentence-transformers/all-minilm-l6-v2",
input=["Ibu kota Indonesia", "Harga beras hari ini"],
)
print(len(result.data[0].embedding))
Kalau gagal
Error berformat OpenAI (error.type, error.code, error.param); daftar kode yang paling sering ada di ringkasan.