Poin utama
- Satu base URL dan satu ID model, uncensored, berfungsi dengan SDK atau klien OpenAI apa pun.
- Streaming, pemanggilan fungsi, dan mode JSON didukung, dengan jendela konteks 100.000 token.
- Kunci penuh memungkinkan 8 permintaan konkuren dan 300 per menit, jadi rencanakan antrian kecil untuk aplikasi yang sibuk.
- Tagihan adalah $0.15 per 1M input dan $0.50 per 1M output token dari kredit prabayar, dan prompt tidak digunakan untuk pelatihan.
Yang Anda dapatkan dari satu endpoint
Pengguna mencari Uncensored LLM Hub ketika mereka menginginkan model yang menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah, tetapi tidak ingin menjalankan GPU. Layanan ini adalah API HTTPS biasa. Anda mengarahkan klien OpenAI ke https://api.uncensoredllmhub.com/v1, kirimkan ID model uncensored, dan autentikasi dengan Authorization: Bearer YOUR_KEY. Ada dua metode: POST /v1/chat/completions untuk percakapan dan GET /v1/models untuk menampilkan daftar.
Penting untuk menjadi jelas tentang apa yang ada di balik endpoint itu. Ini adalah satu model bobot terbuka, dijalankan oleh penyedia independen dan disesuaikan untuk melewati penolakan konten. Ini bukan API resmi dari vendor besar mana pun, dan ini bukan router yang memilih antara model. Ini hanya menangani teks: tidak ada gambar, audio, video, embedding, atau fine-tuning. Satu aturan keras berlaku tanpa pengecualian: tidak ada konten seksual yang melibatkan anak di bawah umur.
Lingkup sempit ini adalah intinya. Endpoint stabil tunggal mudah dibangun di sekitarnya. Bagian di bawah ini menunjukkan backend obrolan kecil, kemudian loop agen, lalu batas yang perlu Anda desain.
Langkah 1: sambungkan klien yang ada
Karena API mengikuti format OpenAI, Anda jarang menulis kode klien baru. Buka SDK atau alat Anda, ubah base URL dan kuncinya, dan atur model ke uncensored. Pertama, daftar di halaman kunci API (Google, atau email dan kata sandi), lalu klaim kredit uji coba $0,50 dengan satu klik. Uji coba tidak memerlukan kartu, berlangsung 7 hari, dan dibatasi satu per orang.
Contoh permintaan minimal dalam Python:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant for a writing tool."},
{"role": "user", "content": "Give me three opening lines for a mystery set on a ferry."},
],
temperature=0.9,
top_p=0.95,
)
print(resp.choices[0].message.content)
Pengaturan sampling seperti temperature, top_p, stop, seed dan penalti frekuensi serta kehadiran diteruskan ke model, sehingga pengaturan yang Anda kenal dari penyedia lain berperilaku sama. Panggilan yang sama berfungsi dalam alat yang menerima endpoint kompatibel OpenAI khusus, misalnya SillyTavern atau Open WebUI: tempelkan URL dasar, tambahkan kunci, ketik ID model secara manual.
Langkah 2: alirkan jawaban ke antarmuka obrolan
Aplikasi obrolan terasa lambat jika pengguna menatap kotak kosong sampai jawaban lengkap tiba. Streaming memperbaiki itu. Atur stream: true dan API mengirim jawaban sebagai peristiwa yang dikirim server, dengan penggunaan dilaporkan di akhir stream. Berikut adalah versi Node yang meneruskan token saat tiba:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uncensoredllmhub.com/v1",
apiKey: process.env.API_KEY,
});
export async function streamReply(history, onToken, signal) {
const stream = await client.chat.completions.create(
{ model: "uncensored", messages: history, stream: true },
{ signal }
);
let text = "";
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? "";
if (piece) {
text += piece;
onToken(piece);
}
}
return text;
}
Dua kebiasaan menghemat masalah nanti. Pertama, selalu lulus sinyal pembatalan dan batalkan saat pengguna menutup tab atau menekan berhenti. Permintaan yang mengalir menempati slot konkurensinya hingga stream berakhir, sehingga stream yang ditinggalkan memakan jatah Anda. Kedua, simpan teks lengkap yang Anda kumpulkan, karena Anda akan menambahkannya ke riwayat sebagai pesan asisten untuk giliran berikutnya.
Jika Anda melihat kesalahan samar di front end Anda saat streaming, catatan kami tentang mendiagnosis kegagalan streaming mencakup penyebab umum, seperti base URL yang salah, proxy yang buffering peristiwa, dan dua kode 429.
Langkah 3: gunakan konteks panjang dengan sengaja
Jendela konteks adalah 100.000 token, dibagi oleh prompt dan penyelesaian. Untuk alat penulisan cerita, obrolan karakter, atau asisten dokumen, itu adalah ruang untuk riwayat panjang, prompt sistem besar, dan materi referensi pada waktu yang sama. Anda tidak perlu mengatur max_tokens; penyelesaian dapat menggunakan apa pun yang tersisa.
Konteks panjang murah untuk dicoba dengan harga ini. Mengisi seluruh jendela dengan input biaya 0,1 × $0,15 = $0,015 untuk 100.000 token input. Tambahkan jawaban 2.000 token (0,002 × $0,50 = $0,001) dan panggilan hampir penuh biaya $0,016. Anda masih ingin mengelola jendela, karena tiga alasan: latensi tumbuh dengan ukuran prompt, setiap giliran mengirim ulang riwayat sehingga biaya bertambah sepanjang sesi, dan riwayat yang sangat panjang mengencerkan instruksi di bagian atas.
Kebijakan sederhana bekerja dengan baik:
- Pertahankan prompt sistem dan teks referensi tetap di awal.
- Jaga giliran terbaru secara verbatim.
- Ketika riwayat melewati ambang batas yang Anda pilih, misalnya 60.000 token, minta model untuk meringkas bagian tertua menjadi catatan singkat dan ganti giliran-giliran itu dengannya.
- Baca
usage.prompt_tokensdari setiap respons untuk mengetahui seberapa besar permintaan berikutnya akan menjadi, bukan memperkirakan dengan karakter.
Langkah 4: alat dan output terstruktur untuk agen
Agen membutuhkan dua hal dari model: cara memanggil fungsi, dan output yang dapat Anda uraikan. Keduanya didukung. Pemanggilan fungsi menggunakan parameter tools dan tool_choice standar, panggilan alat dapat mengalir, dan hasil kembali sebagai pesan dengan role: "tool". Satu putaran perjalanan terlihat seperti ini:
import json
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
tools = [{
"type": "function",
"function": {
"name": "lookup_order",
"description": "Find an order by its number.",
"parameters": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
},
}]
messages = [{"role": "user", "content": "Where is order A-1042?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
msg = first.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
args = json.loads(call.function.arguments)
result = {"order_id": args["order_id"], "status": "shipped"} # your real lookup goes here
messages.append(msg)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)
Selalu validasi argumen sebelum menjalankan apa pun dengan efek samping. Model dapat menghasilkan nilai yang tidak valid atau tidak terduga, dan kode Anda adalah garis pertahanan terakhir.
Untuk output terstruktur biasa tanpa alat, gunakan mode JSON dengan response_format diatur ke {"type": "json_object"}. Jelaskan bentuk yang Anda inginkan dalam prompt juga, dan parsing balasan di dalam blok try sehingga respons yang buruk memicu percobaan ulang daripada kegagalan.
curl https://api.uncensoredllmhub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Reply with JSON: {"title": string, "tags": [string]}"},
{"role": "user", "content": "Describe a noir story set in a rainy port city."}
]
}'
Batas yang perlu Anda rancang
Kunci penuh memungkinkan 8 permintaan paralel dan 300 permintaan per menit. Kunci uji coba memungkinkan 2 dan 60. Badan bisa hingga 8 MB. Setiap respons membawa X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests dan X-RateLimit-Limit-Concurrency, yang berguna untuk dicatat.
Ketika Anda melewati batas, API mengembalikan HTTP 429. Kode adalah rate_limited untuk terlalu banyak permintaan per menit dan concurrency untuk terlalu banyak sekaligus. Beban berlebih sementara juga mengembalikan 429, dengan Retry-After: 5. Untuk aplikasi multi-pengguna, taruh antrian kecil di depan API: semaphore berukuran di bawah batas konkurensi dan retry yang menghormati Retry-After. Untuk agen yang menyebar ke panggilan alat paralel, batasi penyebaran pada jumlah yang sama.
Daftar parameter lengkap dan format kesalahan ada di dokumentasi API.
Biaya, isi ulang, dan penanganan data
Harga adalah $0,15 per 1M token input dan $0,50 per 1M token output, dari saldo prabayar. Tidak ada langganan, kredit tidak pernah kedaluwarsa, dan permintaan yang gagal atau ditolak tidak dikenakan biaya. Giliran obrolan dengan 1.500 input dan 500 output token biaya 0,0015 × $0,15 + 0,0005 × $0,50 = $0,000225 + $0,00025 = $0,000475, jadi $20 kredit mencakup sekitar 42.000 giliran seperti itu.
Anda dapat mengisi saldo dengan jumlah bulat apa pun dari $20 hingga $500. Bonusnya adalah +5% dari $50, +10% dari $100, dan +15% dari $200. Bayar dengan kartu (Visa, Mastercard, Apple Pay, Google Pay) atau kripto (USDT pada TRC20, USDC pada Base). Halaman harga memiliki tabel saat ini.
Pada data: prompt tidak digunakan untuk pelatihan. Baca kebijakan privasi untuk kata-kata lengkap. Anda tetap bertanggung jawab atas apa yang Anda bangun dengan model, dan layanan ini dimaksudkan hanya untuk penggunaan dewasa yang sah.
