ID ▾
Dapatkan kunci API

BerandaPanduan

Kunci API AnythingLLM: Sambungkan Endpoint OpenAI Kustom

Untuk menggunakan kunci API AnythingLLM dengan endpoint kustom, pilih provider Generic OpenAI dan masukkan URL dasar, kunci, dan ID model. Langkah-langkah dan pengujian ada di bawah.

Kunci API mana yang Anda maksud

Orang yang mencari anything llm api key biasanya bermaksud salah satu dari dua hal, dan keduanya mudah tertukar. Yang pertama adalah kunci yang dikirimkan AnythingLLM ke penyedia model agar dapat menghasilkan jawaban. Yang kedua adalah kunci API pengembang yang dibuat oleh AnythingLLM itu sendiri, agar program lain dapat memanggil API milik AnythingLLM. Keduanya adalah kunci yang berbeda dengan tugas yang berbeda.

Artikel ini membahas yang pertama: memberikan AnythingLLM kunci dan endpoint untuk API chat kompatibel OpenAI. Anda akan mengambil kunci dari halaman kunci API, menempelkannya ke AnythingLLM bersama URL dasar https://api.llmapisource.com/v1, dan menggunakan ID model uncensored. Jika Anda perlu memanggil AnythingLLM dari kode Anda sendiri, buat kunci itu di pengaturan AnythingLLM; itu tidak ada hubungannya dengan kunci provider ini.

Sebelum memulai: uji kunci di luar AnythingLLM

Setengah pertanyaan dukungan tentang endpoint kustom ternyata disebabkan oleh kunci salah atau salah ketik di URL. Pengujian selama tiga puluh detik dengan curl memisahkan "endpoint salah" dari "konfigurasi aplikasi salah". Daftar model terlebih dahulu:

curl https://api.llmapisource.com/v1/models \
  -H "Authorization: Bearer YOUR_KEY" | grep uncensored

Anda harus melihat baris yang memuat uncensored. Kemudian kirim satu permintaan obrolan:

curl https://api.llmapisource.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Reply with the word ready."}],
    "max_tokens": 20
  }'

Jika kedua panggilan berhasil, kunci dan URL sudah benar dan apa pun yang gagal selanjutnya adalah pengaturan di dalam aplikasi. Jika Anda belum memiliki kunci, daftar dengan Google atau dengan email dan kata sandi. Pengguna baru dapat mengklaim kredit uji coba senilai $0,50 dengan satu klik di halaman kunci, yang tidak memerlukan kartu dan berlaku selama 7 hari. Itu cukup untuk menyelesaikan seluruh pengaturan dan mengujinya.

Mengatur di AnythingLLM

AnythingLLM mendukung beberapa penyedia LLM, dan salah satunya adalah opsi kompatibel OpenAI generik. Penulisan menu berubah antar-versi, jadi anggap nama di bawah ini sebagai panduan, bukan skrip tepat.

  1. Buka pengaturan AnythingLLM dan temukan preferensi LLM (kadang diberi label penyedia LLM).
  2. Pilih Generic OpenAI dari daftar penyedia.
  3. Atur URL Dasar menjadi https://api.llmapisource.com/v1. Sertakan /v1 dan jangan sertakan /chat/completions di akhir; aplikasi menambahkan jalur itu sendiri.
  4. Tempel kunci Anda ke bidang Kunci API. Aplikasi mengirimkannya sebagai Authorization: Bearer, yang diharapkan oleh API ini.
  5. Atur Nama Model Chat menjadi uncensored.
  6. Atur Jendela konteks menjadi 100000. Jendela model adalah 100.000 token, prompt plus completion, dan nilai rendah di sini membuat AnythingLLM memangkas riwayat Anda lebih awal dari yang diperlukan.
  7. Biarkan token maksimum kosong, atau atur batas atas yang nyaman bagi Anda. Ini opsional di sisi API.
  8. Simpan, buka ruang kerja, dan kirimkan pesan.

Jika ruang kerja memiliki pengaturan obrolan sendiri, pastikan ruang kerja tersebut menggunakan penyedia default sistem, bukan penimpaan lama. Ruang kerja yang dikunci pada penyedia sebelumnya adalah alasan umum mengapa perubahan tampaknya tidak melakukan apa-apa.

Embeddings dan dokumen memerlukan komponen terpisah

AnythingLLM melakukan dua pekerjaan. Ia mengobrol dengan model, dan mengindeks dokumen Anda agar model dapat menjawab berdasarkan dokumen tersebut. Pekerjaan kedua menggunakan model embedding, dan API ini tidak menawarkan embeddings. API ini menyediakan POST /v1/chat/completions dan GET /v1/models, dengan teks masuk dan teks keluar.

Hal ini tidak menghalangi Anda. AnythingLLM memungkinkan Anda memilih embedder secara terpisah dari model obrolan, dan dapat menggunakan embedder lokal bawaan atau penyedia lain yang Anda konfigurasi. Atur embedder ke sesuatu yang bukan endpoint ini, dan gunakan endpoint ini hanya untuk model obrolan. Hal yang sama berlaku untuk fitur gambar atau audio: model hanya untuk teks, tanpa generasi gambar, audio, atau video, dan tanpa penyesuaian halus.

Saat Anda mengobrol dengan dokumen, cuplikan yang diambil disematkan ke dalam prompt, sehingga token input bertambah. Pada $0,15 per 1M token input, prompt 6.000 token dengan 500 token output biayanya 6.000 x $0,15 / 1.000.000 = $0,0009 untuk input ditambah 500 x $0,50 / 1.000.000 = $0,00025 untuk output, atau $0,00115 per pertanyaan. Workspace yang padat dokumen lebih mahal daripada chat biasa, tetapi masih hanya sebagian kecil sen per pertanyaan.

Memeriksa streaming, alat, dan mode JSON

AnythingLLM melakukan streaming balasan, dan API mendukung Server-Sent Events dengan stream: true, diakhiri dengan chunk penggunaan. Jika balasan Anda muncul sekaligus bukan per token, masalahnya biasanya adalah proxy di depan aplikasi yang melakukan buffering respons, bukan endpoint. Anda dapat memeriksa streaming dari skrip dengan SDK Python OpenAI:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.llmapisource.com/v1",
    api_key="YOUR_KEY",
)

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "List three uses of a local knowledge base."}],
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\ntokens:", chunk.usage.prompt_tokens, chunk.usage.completion_tokens)

Pemanggilan alat dan mode JSON bekerja melalui endpoint obrolan yang sama, yang penting jika Anda membangun agen atau alur di sekitar aplikasi. Mode JSON adalah satu bidang:

curl https://api.llmapisource.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "response_format": {"type": "json_object"},
    "messages": [
      {"role": "system", "content": "Return a JSON object with keys title and summary."},
      {"role": "user", "content": "Summarize: a notes app that works offline."}
    ]
  }'

Alat menggunakan bidang tools dan tool_choice yang lazim, dengan hasil dikembalikan sebagai pesan role: "tool". Apakah AnythingLLM mengekspos fitur agen tertentu bergantung pada versi aplikasi, jadi uji panggilan dalam skrip terlebih dahulu lalu coba fitur di aplikasi. dokumentasi menampilkan contoh lengkap pemanggilan alat.

Memperbaiki kesalahan umum

GejalaPenyebab yang mungkinPerbaikan
401 atau kesalahan autentikasiKunci ditempel dengan spasi, atau kunci lamaSalin kunci lagi dari halaman kunci dan tempel tanpa spasi
404 atau "tidak ditemukan"URL Dasar tidak memuat /v1, atau memiliki /chat/completions di akhirGunakan tepat https://api.llmapisource.com/v1
Model tidak ditemukanNama model diketik berbedaGunakan uncensored, huruf kecil, tidak ada tambahan
429 dengan rate_limitedLebih dari 300 permintaan per menit (60 pada kunci uji coba)Perlambat atau batch kurang agresif
429 dengan concurrencyLebih dari 8 permintaan sekaligus (2 pada kunci uji coba)Kurangi ruang kerja atau agen paralel; streaming menahan slotnya hingga selesai
429 dengan header Retry-After: 5Beban berlebih sementaraTunggu 5 detik dan coba lagi
Balasan terpotong lebih awalBatas token maksimum yang rendah di aplikasiNaikkan atau kosongkan

Header X-Request-Id pada setiap respons membantu jika Anda menghubungi support mengenai panggilan tertentu. Saldo dalam X-Balance-USD juga memberi tahu Anda dengan cepat apakah kegagalan hanya disebabkan oleh akun kosong.

Mendapatkan jawaban lebih baik dari ruang kerja

Setelah koneksi berhasil, beberapa kebiasaan ruang kerja membuat perbedaan nyata. Tulis prompt sistem untuk ruang kerja yang menyatakan peran, nada, dan apa yang harus dilakukan ketika dokumen tidak memuat jawaban. Tanpa instruksi terakhir itu, model sering menebak, dan tebakan yang terdengar yakin lebih buruk daripada "Saya tidak menemukan itu di dokumen".

Suhu adalah tuas lainnya. Untuk menjawab pertanyaan berdasarkan file Anda sendiri, nilai rendah seperti 0,2 hingga 0,4 menjaga jawaban tetap dekat dengan teks yang diambil. Untuk brainstorming atau penyusunan draf, naikkan nilai ini mendekati 0,8. API meneruskan suhu, top_p, stop, seed, dan penalti, sehingga apa pun yang dikirimkan aplikasi akan mencapai model tanpa perubahan.

Perhatikan berapa banyak cuplikan yang dilampirkan ruang kerja ke setiap pertanyaan. Setiap cuplikan tambahan adalah token input lebih banyak, dan dengan jendela konteks 100.000 token Anda memiliki ruang, tetapi Anda juga membayar untuk setiap cuplikan di setiap giliran. Mulailah dengan jumlah cuplikan kecil dan naikkan hanya ketika jawaban melewatkan materi relevan.

Catatan privasi dan biaya

Prompt yang dikirim melalui API tidak digunakan untuk pelatihan. Dokumen Anda masih dikirim ke endpoint dalam prompt saat AnythingLLM mengambil cuplikan, jadi putuskan ruang kerja mana yang nyaman Anda kirimkan. Untuk materi yang tidak boleh meninggalkan mesin Anda, gunakan model lokal.

Penagihan berbasis penggunaan dari saldo prabayar: $0.15 per 1M token input dan $0.50 per 1M token output, isi saldo mulai dari $20 hingga $500, dengan bonus 5% dari $50, 10% dari $100, dan 15% dari $200. Saldo tidak pernah kedaluwarsa, dan permintaan yang gagal atau ditolak tidak dikenakan biaya. Halaman harga mencantumkan metode pembayaran.

Tanya jawab

Opsi provider mana yang saya pilih di AnythingLLM?

Pilih Generic OpenAI. Masukkan https://api.llmapisource.com/v1 sebagai base URL, kunci API Anda sebagai kunci API, dan uncensored sebagai nama model obrolan.

Jendela konteks token mana yang harus saya masukkan?

Gunakan 100000, yang sesuai dengan jendela konteks 100.000 token model untuk prompt plus hasil.

Bisakah saya menggunakan endpoint ini untuk embedding di AnythingLLM?

Tidak. API ini hanya melayani selesaian obrolan dan daftar model. Pilih embedder lain di AnythingLLM dan gunakan endpoint ini untuk model obrolan.

Apakah kunci API developer AnythingLLM adalah hal yang sama?

Tidak. Kunci itu dibuat di dalam AnythingLLM agar program lain dapat memanggil aplikasi. Kunci dari layanan ini adalah yang dikirim AnythingLLM ke endpoint chat.

Pemandangan isometrik blok aplikasi yang terhubung ke server dengan kabel bercahaya dan kunci, menunjukkan koneksi kunci API