ID ▾
Dapatkan kunci API

API Ollama vs API OpenAI: Endpoint dan Kode

Pertanyaan tentang api ollama vs openai api berujung pada dua format permintaan dan dua tempat untuk menjalankan model. Ollama memiliki API asli-nya sendiri dan juga lapisan kompatibel OpenAI, sehingga beralih ke endpoint gaya OpenAI yang di-host dapat berupa perubahan URL dasar dan kunci.

Diperbarui

Mesin desktop dan server cloud terhubung oleh dua jembatan ringan yang membawa amplop pesan identik
Jendela obrolan terhubung ke komputer lokal dan server cloud dengan kabel bercahaya

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

Dapatkan kunci API

Poin utama

  • Ollama memiliki rute asli di bawah /api dan lapisan kompatibel OpenAI di bawah /v1; klien yang ditulis untuk SDK OpenAI biasanya berfungsi dengan keduanya.
  • Ollama asli melakukan streaming JSON yang dipisahkan baris, sedangkan format OpenAI melakukan streaming server-sent events.
  • Beralih dari lokal ke layanan yang di-host berarti mengubah URL dasar, kunci, dan nama model, bukan kode Anda.
  • Lokal menyimpan data di mesin Anda; layanan yang di-host menghilangkan pekerjaan perangkat keras dan menambahkan tagihan per token.

Versi singkatnya

Keduanya meminta Anda melakukan POST daftar pesan dan mendapatkan teks kembali. Perbedaannya adalah bentuk permintaan, tempat server berada, dan siapa yang membayar GPU. Ollama menjalankan model di komputer Anda sendiri dan mendengarkan di port 11434. API OpenAI adalah layanan yang di-host dengan model berbayar sendiri. Dalam perbandingan ollama api vs openai api, orang sering melewatkan hal ketiga: Ollama juga mengekspos rute kompatibel OpenAI, sehingga kedua format tersebut tumpang tindih.

Tumpang tindih inilah yang membuat migrasi murah. Jika aplikasi Anda sudah menggunakan SDK OpenAI, Anda dapat mengarahkannya ke Ollama lokal hari ini dan ke URL kompatibel OpenAI yang di-host besok. Endpoint yang di-host di situs ini adalah salah satunya. Endpoint ini melayani satu model, uncensored, di https://api.ollamansfw.com/v1, dan ini bukan produk resmi dari OpenAI, Meta, atau laboratorium lain mana pun.

Perbedaan endpoint per endpoint

TugasOllama asliGaya OpenAI
ChatPOST /api/chatPOST /v1/chat/completions
Prompt tunggalPOST /api/generatePOST /v1/responses atau chat completions
Daftar modelGET /api/tagsGET /v1/models
OtentikasiTidak ada secara defaultAuthorization: Bearer key
StreamingJSON yang dipisahkan barisEvent yang dikirim server, diakhiri dengan penanda done
Nama modelApa pun yang Anda unduh, seperti llama3Apa pun yang terdaftar oleh penyedia

Ollama juga menyajikan /v1/chat/completions dan /v1/models pada port yang sama, yang memungkinkan klien OpenAI bekerja dengannya. Pengaturan default untuk panggilan bawaan adalah streaming, jadi atur stream: false jika Anda menginginkan satu balasan JSON.

Endpoint yang di-host mengimplementasikan POST /v1/chat/completions, POST /v1/responses dan GET /v1/models, serta pemeriksaan saldo di GET /v1/balance. Lihat dokumentasi API untuk daftar lengkapnya.

Permintaan yang sama, tiga cara

Ollama asli dari Python:

import requests

r = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "llama3",
        "messages": [{"role": "user", "content": "Say hello in five words."}],
        "stream": False,
    },
)
print(r.json()["message"]["content"])

SDK OpenAI, dengan pengaturan lokal dan layanan yang di-host berdampingan. Hanya baris yang dikomentari yang berubah:

from openai import OpenAI

# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",   # local would be e.g. "llama3"
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)

Dan curl terhadap endpoint yang di-host dengan streaming aktif:

curl https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'

Pemrosesan berbeda di sisi native: setiap baris yang di-stream adalah objek JSON dengan message.content, dan yang terakhir memiliki done: true. Dalam format OpenAI setiap peristiwa dimulai dengan data: , membawa potongan choices[0].delta.content, dan streaming berakhir dengan [DONE]. Gunakan SDK dan Anda tidak akan melihat keduanya.

Di mana masing-masing masuk akal

Ollama lokal adalah pilihan yang tepat ketika privasi adalah prioritas utama, ketika Anda memiliki GPU dengan memori yang cukup untuk model yang Anda inginkan, atau ketika Anda bereksperimen dengan banyak model. Tidak ada yang keluar dari mesin Anda dan tidak ada tagihan per token. Biaya muncul sebagai perangkat keras, daya, dan waktu Anda. Panduan kami tentang menggunakan Ollama dengan GUI mencakup sisi ramah dari rute tersebut.

Endpoint kompatibel OpenAI yang di-host lebih cocok ketika Anda tidak memiliki perangkat keras, membutuhkan banyak permintaan paralel, menjalankan bot atau layanan untuk orang lain, atau menginginkan URL stabil yang tidak bergantung pada laptop Anda tetap menyala. Kunci penuh memungkinkan 8 permintaan konkuren dan 300 permintaan per menit. Jendela konteks adalah 100.000 token, yang lebih banyak daripada yang dapat dimuat oleh banyak pengaturan lokal.

Banyak orang menggunakan keduanya: lokal untuk eksperimen, layanan yang di-host untuk apa pun yang harus tetap aktif. Jika Anda membandingkan alat lokal lainnya, baca alternatif perangkat lunak Ollama.

Migrasi dari Ollama lokal ke hosted

  1. Beralih ke format OpenAI terlebih dahulu. Jika kode Anda memanggil /api/chat, pindahkan ke SDK OpenAI yang mengarah ke rute /v1 Ollama. Konfirmasikan bahwa itu masih berfungsi secara lokal.
  2. Dapatkan kunci. Daftar dan klaim uji coba $0,50 di halaman kunci API. Ini tidak memerlukan pembayaran dan berlangsung selama 7 hari.
  3. Ubah tiga parameter. URL dasar ke https://api.ollamansfw.com/v1, kunci ke milik Anda, model ke uncensored.
  4. Periksa parameter. Temperature, top_p, stop, seed, dan penalti diteruskan. Opsi khusus lokal seperti num_ctx atau keep_alive Ollama tidak berlaku; jendela tetap pada 100.000 token.
  5. Tambahkan logika retry. API yang di-host mengembalikan 429 dengan rate_limited atau concurrency melebihi batas, dan 429 dengan Retry-After: 5 saat kelebihan beban sementara. Server lokal jarang melakukan hal itu, sehingga kode yang ada mungkin tidak menanganinya.

Jika terjadi kesalahan setelah pengalihan, artikel tentang kesalahan API Ollama umum mencakup penyebab sering seperti port yang salah dan nama model yang hilang.

Biaya layanan host, dan apa yang tidak akan dilakukannya

Penagihan adalah bayar sesuai penggunaan dari saldo prabayar: $0,15 per 1M token input dan $0,50 per 1M token output. Satu giliran chat dengan 1.000 input dan 400 token output berharga $0,00015 + $0,0002 = $0,00035, sehingga $20 mencakup sekitar 57.000 giliran seperti itu. Permintaan yang gagal atau ditolak tidak dikenakan biaya dan saldo tidak pernah kedaluwarsa. Isi ulang dimulai dari $20 hingga $500 dengan bonus +5% dari $50, +10% dari $100 dan +15% dari $200. Pembayaran hanya dengan kripto (USDT di TRC20 atau USDC di Base). Selengkapnya di halaman harga.

Batas yang perlu diketahui: hanya teks, jadi tidak ada embedding, generasi gambar, atau fine-tuning. Jika Anda bergantung pada embedding lokal, pertahankan itu secara lokal. Model ini disesuaikan untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah. Konten seksual yang melibatkan anak di bawah umur tidak pernah diizinkan. Prompt tidak digunakan untuk pelatihan.

Tanya jawab

Apakah API Ollama kompatibel dengan API OpenAI?

Sebagian. Ollama memiliki endpoint bawaan di bawah /api dan juga melayani endpoint gaya OpenAI seperti /v1/chat/completions, sehingga klien SDK OpenAI dapat berkomunikasi dengannya.

Apa yang harus saya ubah untuk beralih dari Ollama lokal ke endpoint yang di-host?

URL dasar, kunci API, dan nama model. Jika kode Anda sudah menggunakan SDK OpenAI, tidak ada yang lain yang perlu diubah.

Apakah API yang di-host mendukung embedding seperti Ollama?

Tidak. Ini hanya generasi teks: penyelesaian obrolan dan respons, tanpa embedding, gambar, atau fine-tuning.

Apakah Ollama gratis?

Perangkat lunak ini gratis untuk diunduh dan dijalankan. Anda masih membayar untuk perangkat keras dan daya, sementara API yang di-host membebankan biaya per token.