anoman
MasukDapatkan API Key
Migrate
Beranda Dokumentasi

Migrasi dari OpenAI

Anoman adalah pengganti drop-in untuk API OpenAI. Ubah base_url + api_key. Pertahankan semua kode Anda. Dapatkan guardrails, observability, dan routing multi-provider secara gratis.

Sebelum vs sesudah

Python — sebelum & sesudah

# BEFORE: raw OpenAI
from openai import OpenAI
 
client = OpenAI(api_key="sk-...")
 
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hi"}],
)
 
# AFTER: through Anoman — only base_url + api_key change
from openai import OpenAI
 
client = OpenAI(
    base_url="https://api.anoman.io/v1",  # ← 1
    api_key="anm-sk-...",                  # ← 2
)
 
response = client.chat.completions.create(
    model="gpt-4o",  # same slug — works unchanged
    messages=[{"role": "user", "content": "Hi"}],
)

TypeScript — sebelum & sesudah

// BEFORE: raw OpenAI
import OpenAI from "openai";
 
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
 
const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hi" }],
});
 
// AFTER: through Anoman
import OpenAI from "openai";
 
const client = new OpenAI({
  baseURL: "https://api.anoman.io/v1",     // ← 1
  apiKey: process.env.ANOMAN_API_KEY,       // ← 2
});
 
const response = await client.chat.completions.create({
  model: "gpt-4o",  // same slug — works unchanged
  messages: [{ role: "user", content: "Hi" }],
});

Env var — jalur tercepat

# If you're using the OpenAI SDK with env vars (and not passing
# baseURL in code), you can migrate without touching any code at all:
 
# Before:
OPENAI_API_KEY=sk-...
 
# After:
OPENAI_API_KEY=anm-sk-...
OPENAI_BASE_URL=https://api.anoman.io/v1

Selesai. OpenAI SDK tidak peduli server mana yang diajak bicara — ia hanya butuh base_url + api_key. Streaming, tools, vision, batching, function calling — semua tanpa perubahan.

Yang tetap sama

  • Setiap metode OpenAI SDK bekerja tanpa perubahan — chat.completions.create, embeddings.create, models.list, dst.
  • Streaming via stream=True — bentuk SSE identik.
  • Tool / function calling — bentuk request identik, response identik.
  • Vision (input gambar) — format pesan multimodal yang identik.
  • Mode JSON — response_format={"type": "json_object"} bekerja apa adanya.
  • Klien async (AsyncOpenAI) — didukung penuh.
  • Penanganan error — kelas exception yang sama (openai.RateLimitError, APIStatusError, dst.).

Tanpa perlu perubahan kode

  • Guardrails di setiap request — deteksi prompt injection, masking PII, moderasi konten. Lihat pipeline-nya.
  • Observability penuh — setiap request muncul di tampilan Traces dashboard dengan timing, biaya, region.
  • Pencatatan biaya per request — _anoman.cost_usd di setiap response.
  • Caching gratis — prompt caching Anthropic / OpenAI / Google otomatis disuntikkan untuk system prompt yang panjang. Lihat caching.
  • Failover multi-provider — saat OpenAI down, panggilan model: gpt-4o Anda tidak putus (dapat dikonfigurasi per key).
  • Header rate-limit — lihat pemakaian Anda secara real time per request.
// Every response from Anoman now carries the _anoman extension.
// Your OpenAI SDK code doesn't break — it ignores unknown fields.
 
{
  "choices": [...],          // same as before
  "usage": {...},            // same as before
  "_anoman": {               // NEW — Anoman additions
    "guardrails": {          // prompt injection / PII / content all ran
      "injection": { "status": "pass", "score": 0.02 },
      "pii":       { "status": "pass" },
      "content":   { "status": "pass" }
    },
    "routing": { "region": "id" },   // where data was processed
    "cache":   { "hit": false },     // cache status
    "cost_usd": "0.000041",          // exact cost of this request
    "weighted_tokens": 1240          // quota consumed
  }
}

Ratusan model, satu klien

Setelah kode Anda diarahkan ke Anoman, Anda bisa memanggil model mana pun di katalog kami dengan mengubah parameter model. Tanpa klien baru, tanpa key baru.

# Same client, different model slug.
response = client.chat.completions.create(
    model="claude-sonnet-4-6",   # ← was an Anthropic call before
    messages=[{"role": "user", "content": "Hi"}],
)
 
response = client.chat.completions.create(
    model="deepseek-v3",         # ← OSS at 75% lower cost
    messages=[{"role": "user", "content": "Hi"}],
)
 
response = client.chat.completions.create(
    model="gemini-1.5-pro",      # ← 2M-token context window
    messages=[{"role": "user", "content": "Hi"}],
)
# Browse the full catalog at https://anoman.io/models

Rollout produksi

  1. Buat API key Anoman di dashboard. Tambahkan env var untuknya.
  2. Arahkan sebagian kecil traffic ke Anoman lebih dulu (mis. feature flag untuk 5% pengguna). Pastikan guardrails tidak memblokir prompt sah di domain Anda.
  3. Setel policy group di pengaturan Guardrails — mode PII, ambang injection — agar sesuai tingkat false-positive yang Anda terima.
  4. Alihkan sisa traffic Anda.
  5. Setel anggaran USD bulanan per key agar skrip yang lepas kendali kena 402 alih-alih menguras akun Anda.
  6. Nonaktifkan API key OpenAI langsung Anda (atau simpan untuk fallback darurat).

Coba sekarang — API key gratis.

Dua baris untuk diubah. Lima menit untuk integrasi.

On this page