Mengapa respons JSON Anda gagal validasi
Parsing JSON gagal ketika model menambahkan teks percakapan di luar blok kode. Model uncensored mengutamakan aliran bahasa alami, sehingga mereka sering menambahkan "Berikut adalah JSON" sebelum atau setelah data mentah. Ini merusak parser ketat yang hanya mengharapkan objek.
Gunakan response_format parameter diatur ke {"type": "json_object"}. Ini memaksa model untuk menghasilkan hanya JSON yang valid. Hal ini menghilangkan kebutuhan akan skrip pembersihan regex dalam kode Anda. Namun, perlu dicatat bahwa ini mengonsumsi lebih banyak token per permintaan karena model dibatasi.
- Atur
response_formatkejson_objectdalam payload permintaan Anda. - Pastikan prompt sistem Anda secara eksplisit meminta output JSON.
- Tangani koma trailing atau kesalahan sintaks minor secara elegan jika model meleset.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Menangani batas jendela konteks dengan benar
Jendela konteks Anda menampung 100,000 token total, menggabungkan input dan output. Jika Anda mengirim riwayat panjang, Anda harus mengurangi panjang output maksimum. Output maksimum default adalah 2,048 token kecuali Anda menentukan lain.
Hitung token tersisa dengan mengurangi ukuran input Anda dari 100,000. Jika Anda melakukan roleplay, pertahankan prompt sistem agar ringkas. Simpan hanya putaran percakapan terbaru dalam permintaan API. Konteks lama dapat dirangkum atau dipotong. Ini mencegah Anda mencapai batas keras di tengah generasi.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Kesalahan function calling pada model uncensored
Function calling gagal ketika model mengabaikan definisi alat atau mengembalikan argumen yang tidak valid. Model uncensored mungkin mengutamakan respons kreatif di atas penggunaan alat yang ketat. Mereka mungkin membuat parameter yang tidak ada dalam skema Anda.
Tentukan alat Anda dengan jelas di tools array. Gunakan tool_choice untuk memaksa perilaku tertentu. Jika model menolak memanggil alat, periksa prompt sistem Anda untuk instruksi yang bertentangan. Pastikan nama dan deskripsi alat tidak ambigu. Uji dengan pertanyaan sederhana terlebih dahulu untuk memverifikasi integrasi.
- Berikan nama alat dan deskripsi yang jelas.
- Gunakan
tool_choiceuntuk mengontrol pemanggilan. - Validasi argumen terhadap skema Anda sebelum eksekusi.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'
Gangguan streaming dan penanganan SSE
Streaming melalui Server-Sent Events (SSE) dapat kehilangan token jika klien terputus atau terjadi gangguan jaringan. Chunk terakhir berisi statistik penggunaan token. Anda harus mengurai chunk ini untuk mendapatkan jumlah input dan output.
Terapkan klien SSE yang kuat yang menangani logika koneksi ulang. Jangan mengasumsikan setiap potongan berisi data. Beberapa potongan mungkin kosong atau hanya berisi spasi. Proses potongan terakhir untuk memperbarui saldo kredit atau penghitung token Anda. Ini memastikan penagihan dan pelacakan penggunaan yang akurat.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Pengaturan temperature yang memengaruhi output NSFW
Temperature mengendalikan keacakan output model. Nilai yang lebih tinggi seperti 0,8 atau 0,9 meningkatkan kreativitas dan ketidakpastian. Nilai yang lebih rendah seperti 0,2 membuat output lebih deterministik dan fokus. Untuk roleplay NSFW, suhu yang lebih tinggi menghasilkan respons yang lebih bervariasi dan intens.
Bereksperimenlah dengan nilai berbeda untuk menemukan keseimbangan yang tepat. Suhu yang terlalu tinggi mungkin menyebabkan teks yang tidak koheren atau berulang. Suhu yang terlalu rendah mungkin menghasilkan dialog yang robotik atau hambar. Sesuaikan berdasarkan nada dan konsistensi yang diinginkan. Model tanpa sensor merespons dengan baik terhadap pengaturan kreativitas yang lebih tinggi.
- Gunakan 0.7-0.9 untuk roleplay kreatif.
- Gunakan 0.2-0.5 untuk tugas faktual atau pengkodean.
- Pantau kualitas output saat Anda menyesuaikan.
Top P dan keragaman dalam generasi roleplay
Top P (sampling nukleus) membatasi model untuk hanya mempertimbangkan persentase massa probabilitas teratas. Ini bekerja dengan suhu untuk mengontrol keragaman. Nilai Top P yang rendah membuat output lebih dapat diprediksi. Nilai tinggi memungkinkan pilihan kata yang lebih bervariasi.
Gabungkan Top P dengan suhu untuk kontrol yang lebih halus. Misalnya, suhu tinggi dengan Top P rendah dapat menghasilkan teks yang kreatif namun terfokus. Ini berguna untuk mempertahankan suara karakter sambil memungkinkan tindakan spontan. Uji berbagai kombinasi sesuai dengan gaya narasi Anda.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Memahami batas dan biaya token
Penggunaan token berdampak langsung pada kredit prabayar Anda. API mengenakan biaya $0.15 per juta token input dan $0.50 per juta token output. Token output lebih mahal karena mewakili pekerjaan model. Streaming tidak mengubah biaya; Anda membayar untuk semua token yang dihasilkan.
Pantau penggunaan token Anda untuk menghindari tagihan tak terduga. Chunk SSE terakhir memberikan jumlah token yang tepat. Gunakan ini untuk memperbarui saldo lokal atau dasbor penagihan Anda. Error dan penolakan gratis, jadi Anda hanya membayar untuk penyelesaian yang berhasil. Model bayar-per-penggunaan ini memastikan Anda tidak pernah membayar lebih.
- Token input berharga $0,15 per juta.
- Token output berharga $0,50 per juta.
- Penolakan dan kesalahan gratis.
Penggantian kunci API dan batas laju
Setiap akun hanya memungkinkan satu kunci API aktif. Jika Anda membuat ulang kunci Anda, kunci lama menjadi tidak berlaku segera. Ini memastikan keamanan tetapi mengharuskan Anda memperbarui klien Anda dengan cepat. Batas laju ditetapkan pada 300 permintaan per menit dan 8 permintaan konkuren per kunci.
Melebihi batas ini menghasilkan kesalahan HTTP 429. Terapkan backoff eksponensial dalam logika percobaan ulang Anda. Pantau volume permintaan Anda agar tetap dalam batas. Jika Anda membutuhkan throughput yang lebih tinggi, pertimbangkan untuk membagi beban kerja Anda di beberapa akun atau mengoptimalkan ukuran prompt Anda. Kunci ditampilkan segera setelah pendaftaran, jadi simpan dengan aman.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Pemecahan Masalah Kesalahan HTTP Umum
Error HTTP menunjukkan masalah dengan permintaan Anda atau respons server. Error umum termasuk 400 Bad Request, 401 Unauthorized, dan 429 Too Many Requests. Error 400 sering berarti JSON yang tidak valid atau parameter yang salah. Error 401 menunjukkan kunci API yang salah atau kedaluwarsa.
Periksa header permintaan dan payload Anda untuk kesalahan sintaks. Verifikasi bahwa kunci API Anda benar dan aktif. Jika Anda menerima kesalahan 429, tunggu dan coba lagi dengan backoff eksponensial. Gunakan SDK OpenAI resmi untuk menangani kesalahan ini secara otomatis. Mereka menyediakan pesan kesalahan yang jelas dan logika percobaan ulang. Ini mengurangi waktu pengembangan dan meningkatkan keandalan.
- 400: Periksa sintaks JSON dan parameter.
- 401: Verifikasi validitas kunci API.
- 429: Terapkan logika percobaan ulang dengan backoff.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'