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.
Diperbarui
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.
- Buka pengaturan AnythingLLM dan temukan preferensi LLM (kadang diberi label penyedia LLM).
- Pilih Generic OpenAI dari daftar penyedia.
- Atur URL Dasar menjadi
https://api.llmapisource.com/v1. Sertakan/v1dan jangan sertakan/chat/completionsdi akhir; aplikasi menambahkan jalur itu sendiri. - Tempel kunci Anda ke bidang Kunci API. Aplikasi mengirimkannya sebagai
Authorization: Bearer, yang diharapkan oleh API ini. - Atur Nama Model Chat menjadi
uncensored. - 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.
- Biarkan token maksimum kosong, atau atur batas atas yang nyaman bagi Anda. Ini opsional di sisi API.
- 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
| Gejala | Penyebab yang mungkin | Perbaikan |
|---|---|---|
| 401 atau kesalahan autentikasi | Kunci ditempel dengan spasi, atau kunci lama | Salin kunci lagi dari halaman kunci dan tempel tanpa spasi |
| 404 atau "tidak ditemukan" | URL Dasar tidak memuat /v1, atau memiliki /chat/completions di akhir | Gunakan tepat https://api.llmapisource.com/v1 |
| Model tidak ditemukan | Nama model diketik berbeda | Gunakan uncensored, huruf kecil, tidak ada tambahan |
429 dengan rate_limited | Lebih dari 300 permintaan per menit (60 pada kunci uji coba) | Perlambat atau batch kurang agresif |
429 dengan concurrency | Lebih 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: 5 | Beban berlebih sementara | Tunggu 5 detik dan coba lagi |
| Balasan terpotong lebih awal | Batas token maksimum yang rendah di aplikasi | Naikkan 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.
Panduan lainnya
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.
