Migrasi API: Pemecahan Masalah Kesalahan Integrasi LLM Umum
Migrasi integrasi LLM Anda sering gagal karena kesalahan konfigurasi halus, bukan bug logika kompleks. Panduan ini mengatasi jebakan paling umum saat pindah ke API AI tanpa sensor baru, memastikan kode Anda bekerja dengan andal sejak hari pertama.
Terakhir diperbarui
Ringkasan
- Konfigurasi URL Dasar yang salah adalah penyebab paling umum dari kegagalan koneksi segera.
- Mengabaikan jendela konteks 100,000 token menyebabkan pemotongan diam-diam pada percakapan panjang.
- Streaming memerlukan header dan penanganan event spesifik yang tidak diperlukan oleh panggilan sinkron standar.
- Batas laju 300 permintaan per menit memerlukan logika percobaan ulang yang kuat untuk menghindari error 429.
Menyalahkonfigurasi URL Dasar
Titik kegagalan pertama hampir selalu adalah URL dasar. Saat Anda mengganti penyedia, Anda harus memperbarui endpoint yang dihubungi oleh SDK Anda. URL yang salah akan menghasilkan error 404 atau 403 sebelum payload bahkan meninggalkan mesin Anda.
Pastikan klien Anda mengarah ke domain yang benar. Untuk layanan kami, URL dasar adalah https://api.apimigration.com/v1. URL ini berfungsi dengan SDK OpenAI standar hanya dengan mengubah base_url parameter.
- Verifikasi protokol (HTTPS vs HTTP).
- Periksa garis miring di akhir dalam konfigurasi klien Anda.
- Konfirmasi jalur versi (
/v1) sesuai dengan spesifikasi API Anda.
curl https://api.apimigration.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
}'
Mengabaikan Batas Jendela Konteks
Model Anda memiliki batas keras 100,000 token untuk prompt dan completion gabungan. Jika Anda melebihi ini, API akan menolak permintaan atau memotong riwayat Anda secara diam-diam tergantung pada implementasinya. Selalu lacak penggunaan token Anda untuk menghindari mencapai tembok ini.
Selain itu, output maksimum per permintaan adalah 16,000 token. Jika Anda tidak mengatur max_tokens, nilai defaultnya adalah 2.048 token. Perbedaan ini signifikan untuk tugas generasi konten panjang.
- Pantau jumlah total token per permintaan.
- Atur
max_tokenssecara eksplisit untuk output panjang. - Implementasikan logika jendela geser untuk percakapan yang sangat panjang.
from openai import OpenAI
client = OpenAI(base_url="https://api.apimigration.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Implementasi Streaming yang Salah
Respons streaming memerlukan penanganan spesifik Server-Sent Events (SSE). Jika Anda memperlakukan stream sebagai objek JSON tunggal, kode Anda akan menggantung atau crash. Setiap bagian berisi data parsial, dan bagian terakhir mencakup statistik penggunaan token.
Baca aliran secara inkremental. Proses setiap peristiwa saat tiba. Ini mengurangi latensi yang dirasakan bagi pengguna akhir. Jangan menunggu seluruh respons sebelum diproses.
- Buka koneksi dan baca baris per baris.
- Parse
data:baris sebagai JSON. - Tangani
[DONE]sinyal dengan benar.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Mengabaikan Batas Kecepatan
API kami mengizinkan 300 permintaan per menit per kunci. Jika aplikasi Anda mengalami lonjakan, Anda akan menerima kesalahan 429 Too Many Requests. Anda harus menerapkan backoff eksponensial untuk menangani kesalahan ini secara halus.
Permintaan konkuren juga dibatasi hingga 8 pada waktu yang sama per kunci. Melebihi batas ini dapat menyebabkan kelelahan pool koneksi. Pantau koneksi konkuren Anda dengan cermat.
- Terapkan backoff eksponensial untuk kesalahan 429.
- Batasi koneksi konkuren menjadi 8.
- Gunakan pola pemutus sirkuit untuk beban tinggi.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apimigration.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Mengasumsikan Format JSON Standar
Meskipun kami mengikuti format yang kompatibel dengan OpenAI, asumsi dapat merusak integrasi Anda. Pastikan Anda meminta json_object dalam response_format jika Anda membutuhkan JSON ketat. Tanpa ini, model mungkin mengembalikan markdown atau teks biasa.
Parse respons dengan hati-hati. Validasi struktur JSON sebelum menggunakannya. Ini mencegah kesalahan runtime di layanan turunan.
- Atur
response_formatke{"type": "json_object"}. - Validasi JSON sebelum parsing.
- Tangani respons yang rusak dengan anggun.
curl https://api.apimigration.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
}'
Mengabaikan Penanganan Error
API bisa gagal. Timeout jaringan, kesalahan server, dan payload tidak valid terjadi. Kode Anda harus menangani kesalahan ini tanpa crash. Catat detail kesalahan untuk debugging.
Periksa kode kesalahan dan pesan. Coba lagi pada kesalahan sementara. Gagal cepat pada kesalahan permanen. Perbedaan ini menghemat waktu dan sumber daya.
- Log kode dan pesan kesalahan.
- Coba lagi pada error 5xx dengan backoff.
- Gagal cepat pada kesalahan 4xx.
from openai import OpenAI
client = OpenAI(base_url="https://api.apimigration.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Pembayaran dan Masalah Rotasi Kunci
API kami menggunakan kredit prabayar melalui kripto. Kredit tidak kedaluwarsa. Jika kredit Anda habis, permintaan akan gagal. Pantau saldo Anda dan isi ulang sebelum mencapai nol.
Setiap akun memiliki satu kunci aktif. Membuat kunci baru membuat kunci lama tidak berlaku segera. Pastikan deployment Anda memperbarui kunci secara atomik untuk menghindari waktu henti.
- Pantau saldo kredit secara teratur.
- Putar kunci secara atom.
- Perbarui semua instance secara bersamaan.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apimigration.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Ringkasan Praktik Terbaik
Keberhasilan migrasi bergantung pada perhatian terhadap detail. Verifikasi URL dasar Anda. Hormati batas konteks. Tangani streaming dengan benar. Kelola batas laju. Validasi JSON. Tangani kesalahan. Kelola pembayaran dan kunci. Mengikuti langkah-langkah ini memastikan transisi yang lancar.
Uji integrasi Anda secara menyeluruh sebelum diluncurkan. Gunakan kredit uji untuk memverifikasi pengaturan Anda. Ini mencegah downtime yang mahal di produksi.
- Verifikasi URL dasar.
- Hormati batas konteks.
- Tangani streaming dengan benar.
- Kelola batas laju.
- Validasi JSON.
- Tangani kesalahan.
- Kelola pembayaran dan kunci.
curl https://api.apimigration.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
}'Pertanyaan umum
Ukuran jendela konteksnya berapa?
Jendela konteks adalah 100.000 token untuk prompt dan completion digabungkan. Output maksimum per permintaan adalah 16.000 token. Jika Anda tidak mengatur max_tokens, nilai defaultnya adalah 2.048 token.
Bagaimana cara melakukan streaming respons?
Gunakan Server-Sent Events (SSE). Baca setiap baris dan parse data JSON. Potongan terakhir menyertakan penggunaan token. Jangan menunggu seluruh respons.
Berapa batas laju?
Anda dapat melakukan 300 permintaan per menit per kunci. Anda dapat memiliki 8 permintaan simultan per kunci. Melebihi batas ini akan menghasilkan error 429.
Bagaimana cara membayar untuk API?
Pembayaran hanya menggunakan kripto. Anda dapat menggunakan USDT (TRC20) atau USDC (Base). Top-up berkisar dari $20 hingga $500. Kredit tidak kedaluwarsa.
Dapatkan Kunci API Anda
Daftar, salin kunci, perbarui URL dasar. Pengaturan selesai.