ID ▾
Dapatkan kunci API

API Ollama: cara kerja dan alternatifnya

API Ollama: cara kerja dan alternatifnya

API Ollama menyediakan antarmuka standar untuk menjalankan LLM lokal, tetapi bagi pengembang yang membutuhkan keandalan tingkat produksi tanpa hosting sendiri, alternatif drop-in yang di-host menawarkan keunggulan operasional yang signifikan. Panduan ini menjelaskan cara mengintegrasikan dengan ekosistem API Ollama, memahami batasannya, dan mengevaluasi kapan endpoint tanpa sensor yang di-host adalah pilihan pragmatis untuk pipeline Anda.

Diperbarui

Tidak perlu kartu. Setelah mendaftar, klaim $0.50 kredit uji gratis dengan satu klik (sekali per orang).

Dapatkan kunci API

Poin utama

  • API standar Ollama dioptimalkan untuk inferensi lokal, mengharuskan Anda mengelola perangkat keras, pembaruan, dan waktu aktif sendiri.
  • Alternatif yang di-host menawarkan sintaks yang kompatibel dengan OpenAI, menghilangkan overhead infrastruktur sambil mendukung model tanpa sensor.
  • Jendela konteks dan batas token bervariasi secara signifikan antara instance lokal dan layanan yang di-host, memengaruhi desain prompt.
  • Streaming, pemanggilan fungsi, dan mode JSON adalah fitur standar di kedua ekosistem, tetapi penanganan kesalahan berbeda dalam implementasinya.

Memahami Jendela Konteks

Jendela konteks menentukan jumlah total token yang dapat diproses oleh LLM dalam satu permintaan, menggabungkan baik prompt input maupun output yang dihasilkan. Dalam penyebaran Ollama lokal, batas ini ditentukan oleh VRAM dan RAM sistem yang tersedia. Jika model Anda melebihi batasan fisik ini, inferensi akan gagal atau menurun secara signifikan. Penyedia API yang di-host, seperti yang menawarkan model tanpa sensor, biasanya mengumumkan jendela konteks tetap—sering kali 100.000 token untuk arsitektur modern—memungkinkan Anda merancang pipeline dengan batas yang dapat diprediksi.

Saat bermigrasi dari Ollama lokal ke API yang di-host, Anda harus memperhitungkan pemisahan antara token input dan output. Beberapa layanan memberlakukan batas output maksimum terpisah, meskipun jendela konteks total lebih besar. Perbedaan ini sangat penting untuk tugas generasi teks panjang. Penyiapan lokal memungkinkan Anda bereksperimen dengan konteks yang lebih besar dengan meningkatkan perangkat keras, sedangkan layanan yang di-host memberlakukan batas ketat untuk menjaga kinerja multi-penyewa. Selalu verifikasi pemisahan input/output spesifik dari endpoint pilihan Anda untuk menghindari kesalahan pemotongan saat runtime.

Kesalahan Penghitungan Token

Perbedaan tokenisasi adalah sumber umum kesalahan API, terutama saat beralih antara instance Ollama lokal dan layanan yang di-host eksternal. Model yang berbeda menggunakan tokenizer yang berbeda, artinya teks yang sama dapat menghasilkan jumlah token yang berbeda. Wrapper Ollama lokal sering memperkirakan token berdasarkan file model spesifik yang dimuat, sementara API yang di-host menghitung secara ketat sesuai dengan tokenizer model yang melayani. Hal ini dapat menyebabkan pelanggaran batas laju atau kelebihan konteks yang tidak terduga jika Anda mengandalkan jumlah token lokal untuk mengelola permintaan API eksternal.

Untuk mengurangi kesalahan ini, terapkan mekanisme penghitungan token yang kuat dalam kode klien Anda sebelum mengirim permintaan. Gunakan perpustakaan tokenizer resmi yang sesuai dengan model Anda (misalnya, tokenizer Llama 3 atau Mistral) daripada perkiraan berbasis karakter. Saat menggunakan API tanpa sensor yang di-host, verifikasi bahwa tokenisasi sesuai dengan format yang diharapkan model. Beberapa API menyediakan endpoint khusus untuk menghitung token, tetapi mengandalkan perhitungan sisi klien memastikan Anda tetap berada dalam jendela 100,000-token.

Penanganan Respons Streaming

Respons streaming memungkinkan Anda menerima output model secara real-time, meningkatkan pengalaman pengguna untuk antarmuka obrolan dan tugas generasi panjang. Baik API Ollama lokal maupun alternatif yang di-host mendukung Server-Sent Events (SSE) untuk streaming. Namun, struktur potongan streaming dapat bervariasi. Instance Ollama lokal mungkin menyertakan metadata dalam setiap potongan, sementara API yang di-host sering menggabungkan statistik penggunaan atau alasan berhenti ke dalam potongan terakhir.

Saat mengimplementasikan streaming, pastikan klien Anda dapat menangani objek JSON parsial dan merakitnya dengan benar. Dalam API tanpa sensor yang di-host, potongan terakhir biasanya berisi objek respons lengkap, termasuk penggunaan token dan alasan penyelesaian. Jika Anda membangun aplikasi obrolan, buffer token streaming dan perbarui UI secara inkremental. Selalu tangguhkan pemutusan koneksi dengan baik, karena ketidakstabilan jaringan dapat mengganggu aliran secara berbeda daripada kegagalan perangkat keras lokal. Uji parser streaming Anda terhadap endpoint lokal dan yang di-host untuk memastikan konsistensi struktur data.

Konfigurasi Pemanggilan Fungsi

Pemanggilan fungsi memungkinkan model mengeluarkan data terstruktur yang dapat dieksekusi secara terprogram oleh aplikasi Anda. Ollama lokal mendukung penggunaan alat melalui arsitektur model tertentu, tetapi detail implementasi bergantung pada data pelatihan model. API yang di-host menstandarkan ini dengan mematuhi skema pemanggilan fungsi OpenAI, memungkinkan Anda menggunakan SDK yang ada dengan perubahan kode minimal. Ini sangat berguna untuk tugas seperti ekstraksi data, pengisian formulir, atau memicu API eksternal.

Saat mengonfigurasi pemanggilan fungsi, tentukan alat Anda dengan jelas dengan nama, deskripsi, dan skema parameter yang berbeda. Baik layanan lokal maupun yang di-host memerlukan kepatuhan ketat terhadap skema ini; output JSON yang tidak valid akan menyebabkan kegagalan parsing. Model tanpa sensor yang di-host sering unggul dalam pemanggilan fungsi karena lebih kecil kemungkinan menolak definisi alat yang kompleks atau tidak konvensional. Uji alat Anda secara menyeluruh dengan kasus tepi, seperti parameter yang hilang atau tipe data yang tidak terduga, untuk memastikan model menanganinya dengan baik. Ingatlah bahwa pemanggilan fungsi mengonsumsi token, jadi pantau penggunaan Anda untuk tetap berada dalam batas laju.

Validasi Mode JSON

Mode JSON memaksa model untuk mengeluarkan JSON yang valid secara ketat, yang penting untuk konsumsi terprogram. Instance Ollama lokal mendukung ini melalui parameter format, tetapi tingkat ketatnya bervariasi tergantung model. API yang di-host sering memberlakukan mode JSON ketat dengan menolak output apa pun yang tidak sesuai dengan skema yang ditentukan. Ini mengurangi kebutuhan untuk pascapemrosesan dan penanganan kesalahan dalam kode aplikasi Anda.

Untuk menggunakan mode JSON secara efektif, berikan skema yang jelas dalam permintaan Anda. Tentukan bidang yang diperlukan, tipe data, dan batasan. Jika model mengeluarkan JSON yang tidak valid, API biasanya akan mengembalikan kesalahan, memungkinkan Anda mencoba lagi dengan prompt yang disesuaikan. Dalam API tanpa sensor yang di-host, mode JSON andal karena model disesuaikan untuk presisi. Selalu validasi output menggunakan parser JSON sebelum melewatkan ke logika aplikasi Anda. Ini mencegah kesalahan runtime yang disebabkan oleh string yang tidak terbentuk dengan benar atau kurangnya kurung kurawal.

Pembatasan Laju (300 RPM)

Batas laju melindungi infrastruktur API dari kelebihan beban dan memastikan penggunaan yang adil. Instance Ollama lokal tidak memiliki batas laju bawaan, hanya dibatasi oleh perangkat keras Anda. Layanan yang di-host, bagaimanapun, memberlakukan batas ketat, seperti 300 permintaan per menit per kunci API. Batas ini berlaku untuk permintaan yang berhasil maupun yang gagal, sehingga kode yang tidak efisien dapat menghabiskan kuota Anda dengan cepat.

Terapkan backoff eksponensial dalam kode klien Anda untuk menangani kesalahan batas laju dengan baik. Pantau metrik penggunaan Anda untuk mengantisipasi batas sebelum tercapai. Beberapa API yang di-host juga memberlakukan batas permintaan konkuren, seperti 8 permintaan simultan per kunci. Ini berarti Anda tidak dapat membanjiri API dengan permintaan paralel tanpa memicu kesalahan. Untuk aplikasi throughput tinggi, pertimbangkan untuk menggunakan beberapa kunci API untuk mendistribusikan beban. Selalu periksa dokumentasi API untuk detail batas laju spesifik, karena hal tersebut bervariasi menurut penyedia dan paket.

Masalah Pembayaran & Kredit

API yang di-host biasanya beroperasi pada model saldo prabayar, di mana Anda membayar untuk penggunaan token aktual. Biaya dihitung berdasarkan token input dan output, dengan tarif berbeda untuk masing-masing. Misalnya, token input mungkin berharga $0,15 per juta, sedangkan token output berharga $0,50 per juta. Kesalahan dan penolakan sering kali gratis, mengurangi pemborosan. Kredit biasanya tidak kedaluwarsa, memungkinkan Anda mengisi saldo sesuai kebutuhan.

Metode pembayaran bervariasi, dengan banyak layanan lebih memilih kripto untuk anonimitas dan kecepatan. Jumlah top-up minimum, seperti $20, dan struktur bonus untuk deposit yang lebih besar adalah hal yang umum. Jika Anda mengalami masalah penagihan, seperti pengisian ganda, hubungi dukungan untuk penyelesaian. Berbeda dengan model langganan, saldo prabayar memberi Anda kontrol penuh atas pengeluaran. Selalu pantau dasbor penggunaan Anda untuk menghindari biaya yang tidak terduga. Bagi pengembang yang menguji integrasi, banyak penyedia menawarkan kredit uji coba gratis kecil, memungkinkan Anda memvalidasi penyiapan Anda tanpa pembayaran segera.

Logika Penolakan Konten

Penolakan konten menentukan kapan LLM memblokir topik tertentu, seperti konten dewasa atau pandangan politik yang kontroversial. Model Ollama lokal bervariasi secara luas dalam perilaku penolakan mereka tergantung pada model dasar dan penyesuaian halus. API tanpa sensor yang di-host dirancang untuk meminimalkan penolakan untuk konten dewasa yang sah, penelitian keamanan, dan topik kontroversial. Ini membuatnya ideal untuk aplikasi di mana kebebasan kreatif diutamakan di atas keamanan merek.

Namun, tanpa sensor tidak berarti tanpa batas. Sebagian besar API yang di-host masih memberlakukan batas keras, seperti memblokir konten seksual yang melibatkan anak di bawah umur. Penolakan biasanya ditunjukkan oleh alasan penyelesaian spesifik dalam respons API. Saat mengintegrasikan, tangguhkan penolakan ini dengan baik dengan mencatatnya dan menyesuaikan logika aplikasi Anda jika perlu. Misalnya, jika pengguna meminta jenis konten tertentu yang diblokir, beri tahu mereka dengan jelas tanpa mengganggu pengalaman pengguna. Memahami batas-batas ini membantu Anda merancang aplikasi yang lebih kuat.

Tanya jawab

Apakah API Ollama sama dengan API OpenAI?

Tidak, tetapi kompatibel. API Ollama mengikuti struktur serupa dengan OpenAI, menggunakan endpoint seperti /v1/chat/completions. Namun, instance Ollama lokal mungkin memiliki perilaku default yang berbeda untuk streaming dan tokenisasi. API yang di-host sering meniru skema persis OpenAI untuk migrasi yang lebih mudah.

Bisakah saya menggunakan Ollama untuk pemanggilan fungsi?

Ya, tetapi tergantung pada model. Tidak semua model Ollama lokal mendukung pemanggilan fungsi. API tanpa sensor yang di-host biasanya mendukung pemanggilan fungsi bergaya OpenAI standar, sehingga lebih mudah diintegrasikan dengan alat yang ada.

Bagaimana cara menangani kesalahan penghitungan token?

Gunakan tokenizer resmi untuk model Anda untuk menghitung token secara akurat sebelum mengirim permintaan. Bergantung pada hitungan karakter atau perkiraan lokal dapat menyebabkan kelebihan konteks. Verifikasi jumlah token terhadap batas API untuk menghindari kesalahan.

Apa yang terjadi jika melebihi batas laju?

API akan mengembalikan kesalahan 429 Too Many Requests. Terapkan backoff eksponensial dalam kode klien Anda untuk mencoba lagi setelah jeda. Pertimbangkan untuk menggunakan beberapa kunci API untuk mendistribusikan beban jika Anda memerlukan throughput yang lebih tinggi.