Generator Cerita AI Tanpa Filter via API
Generator cerita yang berhenti di tengah adegan karena plot menjadi gelap adalah alat penulisan yang buruk. Artikel ini menunjukkan cara membangunnya di atas endpoint yang kompatibel dengan OpenAI, dengan kode yang dapat Anda jalankan hari ini.

Poin utama
- Arahkan SDK OpenAI apa pun ke base URL, gunakan model ID uncensored, dan Anda memiliki mesin cerita dalam sekitar dua puluh baris.
- Prompt sistem yang menetapkan genre, nada, dan aturan lebih penting daripada pengaturan sampling apa pun.
- Jendela 100.000 token memungkinkan Anda menyimpan seluruh buku cerita dan beberapa bab dalam satu permintaan.
- Bab 1.200 token biayanya sekitar sepersepuluh sen, jadi biaya jarang menjadi batas.
Apa sebenarnya generator cerita tanpa filter
A generator cerita ai tanpa filter adalah model teks yang menulis fiksi tanpa berhenti memberi ceramah, mengganti penjahat Anda dengan yang ramah, atau menolak adegan karena subjeknya suram. Thriller kriminal, fiksi perang, horor, protagonis abu-abu moral, dan romansa dewasa matang semuanya membutuhkan model yang memperlakukan materi gelap sebagai materi, bukan sebagai peringatan.
Layanan di balik situs ini memberi Anda satu model bobot terbuka, disesuaikan untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah. Layanan ini dijalankan oleh penyedia independen dan diakses melalui API bergaya OpenAI standar. Anda mengirim daftar pesan, Anda mendapatkan prosa kembali. Tidak ada editor web yang perlu dipelajari dan tidak ada template yang perlu diisi, yang merupakan intinya: Anda memutuskan bagaimana alat cerita bekerja, dan model menyediakan teks.
Satu aturan tetap. Konten seksual yang melibatkan anak di bawah umur tidak pernah diizinkan, dan tidak ada prompt yang mengubahnya. Semua hal lain dalam fiksi dewasa yang sah adalah milik Anda untuk ditulis. Jika Anda ingin gambaran umum tentang bagaimana ini dibandingkan dengan platform karakter yang dihosting, halaman NoFilter AI versus Character AI membahasnya.
Cerita pertama Anda dalam dua puluh baris Python
Karena API mengikuti format OpenAI, paket openai resmi berfungsi tanpa perubahan. Anda hanya mengganti base URL dan kuncinya. Instal dengan pip install openai, lalu jalankan ini.
from openai import OpenAI
client = OpenAI(
base_url="https://api.nofilterai.cc/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
temperature=0.9,
messages=[
{"role": "system", "content": (
"You are a fiction author. Write in third person, past tense. "
"Use concrete detail and subtext. Never summarise the scene, "
"never moralise, never address the reader."
)},
{"role": "user", "content": (
"Genre: noir crime. Setting: a flooded harbour town. "
"Write the opening 600 words. A smuggler finds a body in his net."
)},
],
)
print(resp.choices[0].message.content)
ID modelnya adalah uncensored. Kunci ini berasal dari halaman kunci API. Jika Anda belum mendaftar, pengguna baru dapat mengklaim kredit uji coba senilai $0,50 di sana dengan satu klik, berlaku selama 7 hari, sehingga skrip pertama ini tidak membebani biaya Anda.
Panggilan yang sama berfungsi dari curl, yang berguna untuk menguji prompt sebelum Anda membungkusnya dalam kode.
curl https://api.nofilterai.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Write a 200 word horror scene set in a lighthouse."}
]
}'Struktur prompt yang menghasilkan fiksi yang dapat digunakan
Kebanyakan output yang mengecewakan dari model cerita berasal dari instruksi yang kabur, bukan dari modelnya. Tiga bagian prompt melakukan pekerjaan berat.
Pesan sistem menetapkan penulis, bukan topik
Taruh aturan suara di sini: sudut pandang, waktu, irama kalimat, apa yang harus dihindari. Garis seperti "jangan akhiri adegan dengan refleksi tentang apa artinya" menghilangkan kebiasaan yang dimiliki banyak model bahasa. Pertahankan pesan ini stabil di seluruh proyek sehingga bab terdengar sama.
Pesan pengguna menetapkan irama
Beri satu adegan pada satu waktu. Beri nama karakter, tempat, apa yang berubah di akhir adegan, dan panjang target. "Tulis 700 kata. Mara menghadapi kakaknya tentang buku besar yang hilang. Dia tidak mendapatkan jawaban" jauh lebih baik daripada "lanjutkan cerita".
Buku cerita berjalan bersama
Pertahankan blok pendek dengan fakta karakter, garis waktu sejauh ini dan benang terbuka, dan kirimkan dengan setiap permintaan. Buku cerita 800 token hampir tidak ada biayanya dan menghentikan model dari mengubah warna mata atau menghidupkan kembali karakter.
- Gunakan
temperaturesekitar 0,8 hingga 1,0 untuk draf dan 0,5 hingga 0,7 untuk pengeditan bertahap. - Gunakan urutan
stopjika Anda menghasilkan dalam format tetap, misalnya berhenti pada baris yang berbunyi "END SCENE". - Gunakan
presence_penaltydanfrequency_penaltysecara ringan jika model mengulang frasa favorit. Keduanya diteruskan ke model. - Gunakan
seedketika Anda ingin membandingkan dua versi prompt dengan adil.
Mempertahankan konsistensi cerita panjang
Jendela konteksnya adalah 100.000 token, menghitung prompt dan balasan bersama-sama. Itu adalah ruang untuk satu buku panduan cerita lengkap, beberapa bab sebelumnya, dan satu bab output baru dalam satu permintaan. Untuk sebagian besar proyek fiksi, Anda bisa berhenti khawatir tentang trik memori untuk waktu yang lama.
Perulangan sederhana menangani cerita yang diserialisasi. Simpan daftar pesan yang berjalan, tambahkan setiap bab yang ditulis model, dan tambahkan instruksi berikutnya Anda. Ketika daftar mendekati batas, ganti bab-bab tertua dengan ringkasan singkat yang juga Anda minta model untuk tulis.
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")
bible = "Mara Voss, 34, ferry pilot. Brother Teo owes money. Setting: Harbor Nine, rain every night."
history = [{"role": "system", "content": "Fiction author. Third person, past tense. No moralising.\nBible: " + bible}]
def write(beat):
history.append({"role": "user", "content": beat})
r = client.chat.completions.create(model="uncensored", messages=history, temperature=0.85)
text = r.choices[0].message.content
history.append({"role": "assistant", "content": text})
return text
print(write("Chapter 1, 700 words: Mara finds Teo's boat adrift."))
print(write("Chapter 2, 700 words: she searches the cabin and finds a second ledger."))
Ketika Anda mencapai batas, jangan memotong secara diam-diam. Model yang kehilangan awal cerita sering mempertahankan plot tetapi melupakan fakta kecil. Ringkasan tertulis 500 hingga 800 token, disisipkan setelah pesan sistem, menjaga fakta-fakta itu tetap hidup dengan biaya kecil.
Permintaan yang gagal atau ditolak tidak dikenakan biaya, sehingga percobaan ulang setelah kesalahan tidak menggandakan tagihan Anda. Daftar parameter lengkap terdapat dalam dokumentasi API.
Streaming dan fiksi interaktif
Untuk petualangan teks atau asisten penulisan langsung, Anda ingin kata-kata muncul di layar saat data tiba. Atur stream: true dan baca peristiwa yang dikirim server. Angka penggunaan tiba di akhir streaming.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nofilterai.cc/v1",
apiKey: process.env.NOFILTER_KEY,
});
const stream = await client.chat.completions.create({
model: "uncensored",
stream: true,
messages: [
{ role: "system", content: "You are the narrator of a survival horror text adventure. Second person, present tense." },
{ role: "user", content: "I open the cellar door." },
],
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
Dua batas praktis berlaku. Kunci penuh memungkinkan 8 permintaan konkuren dan 300 permintaan per menit; kunci uji coba memungkinkan 2 dan 60. Permintaan streaming memegang slot konkurensinya hingga streaming berakhir, sehingga pembaca lambat di halaman web dapat memblokir slot lebih lama dari yang Anda harapkan. Jika Anda melebihi batas, Anda akan menerima HTTP 429 dengan kode kesalahan rate_limited atau concurrency. Saat kelebihan beban singkat, Anda juga mendapatkan 429 dengan Retry-After: 5, dan menunggu lima detik sebelum mencoba lagi adalah respons yang tepat.
Mengapa cerita yang dihasilkan menjadi datar, dan perbaikannya
Bahkan tanpa penolakan, model dapat menulis fiksi yang membosankan. Penyebab umum mudah diperbaiki setelah Anda mengetahuinya.
Yang pertama adalah refleks ringkasan. Dibiarkan sendiri, model memadatkan peristiwa menjadi ringkasan yang rapi. Minta satu adegan, tentukan panjangnya, dan larangkan ringkasan dalam pesan sistem. Yang kedua adalah keseragaman: setiap karakter berbicara dalam register sopan yang sama. Berikan setiap karakter yang berbicara catatan suara dua baris, seperti "singkat, tidak pernah menyelesaikan kalimat" atau "formal, menggunakan gelar bahkan untuk teman". Yang ketiga adalah kurangnya konflik. Adegan seperti "mereka membahas rencana" menghasilkan kata pengisi, sedangkan "dia membutuhkannya untuk setuju sebelum fajar, dan dia tahu itu" menghasilkan ketegangan.
Akhirnya, baca output sebagai editor. Jika bentuk kalimat yang sama membuka empat paragraf berturut-turut, beri tahu modelnya dalam permintaan berikutnya dan minta penulisan ulang. Anda mengarahkan, bukan menerima apa pun yang tiba. Penulis yang memperlakukan output pertama sebagai draf kasar mendapatkan bab yang jauh lebih baik daripada mereka yang mengharapkan yang selesai.
Biaya sebuah cerita
Harga adalah $0.15 per 1M token input dan $0.50 per 1M token output, dari saldo prabayar tanpa langganan. Saldo tidak kedaluwarsa. Angka di bawah ini dihitung dari dua harga tersebut.
| Pekerjaan | Token input | Token output | Biaya |
|---|---|---|---|
| Satu bab dengan buku panduan dan teks sebelumnya | 3,000 | 1,200 | $0.00045 + $0.0006 = $0.00105 |
| 100 bab seperti itu | 300,000 | 120,000 | $0.045 + $0.06 = $0.105 |
| Sesi interaktif: 50 giliran, konteks 20.000 token masing-masing, balasan 1.000 token | 1,000,000 | 50,000 | $0.15 + $0.025 = $0.175 |
| Satu permintaan yang mengisi jendela dengan input | 100,000 | 0 | $0.015 |
Bahkan seratus bab hanya memakan biaya sekitar sepuluh sen. Isi saldo dimulai dari $20 hingga $500 dalam jumlah bulat, dengan bonus 5% dari $50, 10% dari $100, dan 15% dari $200. Pembayaran hanya menggunakan kripto, yaitu USDT di jaringan TRC20 atau USDC di jaringan Base. Detail terbaru ada di halaman harga.
Kebiasaan mahal adalah mengirim ulang riwayat yang sangat panjang di setiap giliran cerita interaktif. Ringkas giliran lama, dan token input Anda akan turun tajam.
Saran praktis dan batas
Beberapa poin menghemat waktu saat Anda mulai membangun.
- Hanya teks. Layanan tidak menghasilkan gambar, audio, atau video, dan tidak menawarkan embedding atau fine-tuning. Untuk seni sampul atau suara, gunakan alat lain.
- Mode JSON membantu dalam struktur. Minta
response_format: {"type":"json_object"}ketika Anda ingin model mengembalikan lembar karakter atau daftar adegan yang kode Anda uraikan. - Prompt Anda tidak digunakan untuk pelatihan. Itu penting jika naskah Anda belum diterbitkan.
- Edit bertahap. Buat draf dengan temperature tinggi, lalu kirimkan kembali draf tersebut dengan instruksi untuk mempertajam dialog atau memangkas kata sifat pada temperature yang lebih rendah.
- Periksa output. Model tanpa penolakan akan mengikuti arahan Anda, jadi nada yang Anda dapatkan adalah nada yang Anda minta.
Model ini adalah model bobot terbuka umum, bukan API resmi dari vendor, jadi ujilah pada genre Anda sendiri sebelum membangun produk di atasnya. Mulai dengan kredit uji coba dan beberapa bab nyata.
Panduan lainnya
Tanya jawab
Apakah ada cara gratis untuk mencoba generator cerita AI tanpa filter melalui API?
Pengguna baru dapat mengklaim $0.50 kredit uji coba dengan satu klik di halaman kunci API setelah masuk. Ini tidak memerlukan pembayaran, berlaku selama 7 hari, dan dibatasi satu per orang.
Berapa panjang permintaan cerita tunggal?
Jendela konteks adalah 100.000 token, yang dibagi antara prompt dan balasan. Balasan dapat menggunakan apa pun yang dibiarkan kosong oleh prompt, dan max_tokens bersifat opsional.
Bisakah saya menggunakannya dengan alat yang sudah mendukung OpenAI?
Ya. Klien apa pun yang memungkinkan Anda mengatur URL dasar dan kunci kustom berfungsi, menggunakan ID model uncensored. Metode yang didukung adalah POST /v1/chat/completions dan GET /v1/models.
Apakah ada konten yang tidak akan ditulis oleh model?
Konten seksual yang melibatkan anak di bawah umur tidak pernah diizinkan. Selain itu, model disetel untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah.
Apakah Anda menyimpan atau melatih model dengan cerita saya?
Prompt tidak digunakan untuk pelatihan.
Kunci Anda hanya selangkah lagi dari satu formulir
Buat akun, salin kunci, ubah URL dasar. Itu saja seluruh proses pengaturannya.