seamless.ai.id

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.