id ▾
Buat kunci

API Ollama: Pemecahan Masalah Kesalahan Umum

API Ollama adalah antarmuka standar untuk menghubungkan model lokal atau yang di-host ke alat pihak ketiga, tetapi banyak pengembang menemui tembok ketika beralih dari inferensi lokal ke endpoint jarak jauh. Panduan ini menguraikan kesalahan konfigurasi tepat, batas token, dan keanehan streaming yang merusak integrasi.

Terakhir diperbarui

Ringkasan

  • Sebagian besar kegagalan integrasi berasal dari URL dasar yang salah atau header autentikasi yang hilang saat mengganti Ollama lokal dengan endpoint jarak jauh.
  • Jendela konteks 100k mencakup token input dan output, yang secara drastis mengurangi ruang yang tersedia untuk percakapan panjang.
  • Respons streaming memerlukan penguraian bagian SSE dengan benar, karena metadata penggunaan token hanya muncul di bagian terakhir.
  • Pemanggilan fungsi dan mode JSON memerlukan validasi skema ketat, atau model akan mengembalikan JSON yang tidak valid.

Memahami Jendela Konteks 100k

Kalimat pertama dari setiap bagian menjawab pertanyaan dalam judulnya.

Jendela konteks 100.000 token terdengar sangat besar, tetapi ia terbagi sama antara prompt input dan completion output. Ketika Anda mengirimkan prompt sistem yang panjang bersama riwayat percakapan yang panjang, Anda menghabiskan anggaran itu lebih cepat daripada yang Anda harapkan. Banyak pengembang mengasumsikan batas hanya berlaku untuk input, yang menyebabkan respons terpotong atau kegagalan diam saat model mencapai batasnya.

Pertimbangkan skenario di mana Anda meneruskan dokumen 50.000 token sebagai konteks. Anda hanya memiliki 50.000 token tersisa untuk generasi aktual. Jika Anda tidak mengelola keseimbangan ini dengan hati-hati, model akan terputus di tengah kalimat. Selalu pantau jumlah total token yang dikirim dalam setiap permintaan untuk menghindari pemotongan yang tidak terduga.

Token Maks vs. Panjang Output Default

Setiap bagian harus menjawab pertanyaan dalam judulnya.

Jika Anda tidak menentukan batas, sebagian besar API secara default memiliki panjang output yang modest, sering kali sekitar 2.048 token. Default ini berguna untuk kueri pendek tetapi bencana untuk generasi kode atau penulisan panjang. Jika Anda memerlukan model untuk menghasilkan skrip penuh atau analisis terperinci, Anda harus secara eksplisit mengatur parameter max_tokens.

Mengatur nilai ini terlalu tinggi juga dapat memengaruhi latensi dan biaya. Anda membayar untuk setiap token yang dihasilkan, apakah berguna atau tidak. Pendekatan pragmatis adalah menetapkan batas atas yang wajar yang sesuai dengan kasus penggunaan Anda, daripada membiarkannya menjadi nilai default atau tak hingga sewenang-wenang.

Menangani Chunk SSE Streaming dengan Benar

Streaming memerlukan penanganan Server-Sent Events yang hati-hati untuk menghindari kehilangan data.

Saat Anda mengaktifkan streaming, API mengembalikan serangkaian potongan kecil daripada respons lengkap tunggal. Setiap potongan berisi delta teks, tetapi detail penting seperti statistik penggunaan token sering kali hanya ada di potongan terakhir. Jika Anda berhenti memproses terlalu dini, Anda akan kehilangan data penggunaan yang diperlukan untuk penagihan atau pelacakan batas laju.

Selain itu, streaming memperkenalkan kompleksitas dalam penanganan kesalahan. Gangguan jaringan mungkin meninggalkan Anda dengan teks parsial. Anda memerlukan parser yang kuat yang dapat merekonstruksi pesan lengkap dari fragmen-fragmen ini. Ini terutama berlaku saat mengintegrasikan dengan komponen UI yang merender teks secara waktu nyata.

Kesalahan Definisi Alat Pemanggilan Fungsi

Function calling gagal ketika skema alat tidak sesuai dengan ekspektasi model.

Model ini mengharapkan struktur JSON tertentu untuk definisi alat. Jika Anda melewatkan bidang yang diperlukan atau menggunakan tipe yang salah, model mungkin mengabaikan alat tersebut sepenuhnya atau mengembalikan respons yang tidak valid. Ini adalah titik nyeri umum bagi pengembang yang membangun agen yang perlu berinteraksi dengan API eksternal.

Selalu validasi skema alat Anda terhadap dokumentasi API sebelum mengirim permintaan. Penyimpangan kecil, seperti menggunakan bilangan bulat alih-alih string untuk parameter, dapat merusak panggilan fungsi. Men-debug ini memerlukan memeriksa respons JSON mentah untuk melihat apakah model benar-benar mencoba memanggil alat tersebut.

Masalah Format Respons Mode JSON

Mode JSON memaksa model untuk menghasilkan JSON yang valid, tetapi model masih bisa membuat hal-hal secara halus.

Saat Anda mengatur response_format menjadi json_object, model dibatasi untuk hanya menghasilkan JSON. Namun, ini tidak menjamin konten tersebut secara semantik benar. Model mungkin menghasilkan sintaks JSON yang valid tetapi dengan kunci yang salah atau bidang yang hilang. Anda masih memerlukan parser untuk memvalidasi struktur sebelum menggunakan data.

Selain itu, mode JSON terkadang dapat mengurangi kreativitas atau fleksibilitas model. Jika prompt Anda terlalu kompleks, model mungkin kesulitan menyesuaikan narasi ke dalam struktur JSON yang kaku. Gunakan mode ini terutama untuk ekstraksi data terstruktur atau argumen fungsi di mana konsistensi lebih penting daripada nuansa.

Batas Laju dan Permintaan Konvergen

Batas laju ditegakkan per kunci API, bukan per pengguna atau alamat IP.

Sebagian besar API membatasi jumlah permintaan per menit dan koneksi bersamaan. Jika Anda melebihi batas ini, Anda akan menerima kesalahan 429 Too Many Requests. Ini sangat penting untuk aplikasi yang membuat banyak utas atau proses untuk menangani permintaan pengguna. Satu kunci hanya dapat menangani sejumlah permintaan paralel yang terbatas.

Untuk mengelolanya, terapkan backoff eksponensial dalam kode klien Anda. Saat Anda menerima error 429, tunggu sebentar sebelum mencoba lagi. Ini mencegah server menjadi kewalahan dan memastikan pengalaman pengguna yang lebih lancar. Selalu periksa header respons untuk nilai retry-after guna mengoptimalkan waktu tunggu Anda.

Perilaku Penggantian Kunci API

Meregenerasi kunci API membuat kunci sebelumnya tidak berlaku segera.

Beberapa platform hanya mengizinkan satu kunci aktif per akun. Jika Anda menghasilkan kunci baru, kunci lama berhenti berfungsi secara instan. Ini dapat menyebabkan gangguan jika Anda memiliki beberapa layanan atau skrip yang menggunakan kunci lama. Selalu perbarui semua instance kunci Anda sebelum memutar rotasinya.

Perilaku ini dirancang untuk keamanan, memastikan bahwa kunci yang bocor tidak dapat digunakan secara terus-menerus. Namun, ini memerlukan manajemen yang cermat dalam sistem terdistribusi. Gunakan variabel lingkungan atau pengelola rahasia untuk menyimpan kunci Anda, sehingga pembaruan menjadi lebih mudah dan kurang rentan terhadap kesalahan.

Batas Ukuran Body Permintaan

Payload besar dapat melebihi batas body permintaan 8 MB.

Saat mengirim dokumen atau gambar panjang yang dienkripsi sebagai base64, badan permintaan dapat tumbuh dengan cepat. Jika Anda melebihi batas ukuran, server akan menolak permintaan dengan kesalahan 413 Payload Too Large. Ini adalah batas keras yang tidak dapat ditingkatkan dengan meningkatkan paket Anda dalam banyak kasus.

Untuk menghindari ini, kompres input Anda atau pecah dokumen besar menjadi bagian-bagian yang lebih kecil. Anda juga dapat menggunakan metode pengodean yang lebih efisien untuk gambar. Selalu pantau ukuran permintaan Anda, terutama saat menangani konten kaya media.

Pertanyaan yang sering diajukan

Apakah LLM tanpa sensor mendukung parameter yang sama dengan model standar?

Ya, mesin uncensored mendukung parameter standar seperti temperature, top_p, dan urutan stop. Mesin ini dirancang sebagai pengganti langsung untuk model standar, sehingga Anda dapat menggunakan kode klien dan parameter yang sama yang sudah Anda kenal.

Apakah kunci API ollama aman untuk penggunaan produksi?

Kunci API terkait dengan kredit pra-dibayar dan batas penggunaan Anda. Kunci ini aman selama Anda menjaganya tetap privat. Kami tidak menggunakan prompt Anda untuk pelatihan, dan kunci dapat diganti secara instan jika dikompromikan. Pastikan Anda menyimpannya dalam variabel lingkungan, bukan dalam kode sumber Anda.

Apakah model AI uncensored ini bisa digunakan untuk proyek komersial?

Ya, Anda dapat menggunakan teks yang dihasilkan untuk tujuan komersial. Model ini disesuaikan untuk penggunaan tanpa batas, termasuk konten dewasa, selama tidak melibatkan anak di bawah umur. Tidak ada biaya lisensi tambahan di luar biaya penggunaan token.

Bagaimana cara menangani error saat model Ollama tanpa sensor mengembalikan JSON tidak valid?

Terapkan mekanisme retry dengan batas retry. Jika model mengembalikan JSON yang tidak valid, Anda dapat mencoba permintaan lagi dengan nilai suhu yang lebih rendah untuk mendorong output yang lebih deterministik. Selalu validasi struktur JSON sebelum menggunakan data dalam aplikasi Anda.

Dapatkan kunci API Anda dalam hitungan detik

Daftar, salin kunci, perbarui URL endpoint. Itu saja yang perlu Anda lakukan.

Buat kunci