API ile Filtresiz Hikâye Üretici
Olay örgüsü karanlıklaştığı için sahnenin ortasında duran bir hikâye üreticisi zayıf bir yazma aracıdır. Bu makale, OpenAI uyumlu bir uç nokta üzerinde nasıl kurulacağını ve günümüzde çalıştırabileceğiniz kodu gösterir.

Temel noktalar
- Bir OpenAI SDK'sını temel URL'ye yönlendirin, model kimliği olarak uncensored kullanın; yaklaşık yirmi satırda bir hikâye motorunuz olur.
- Türü, tonu ve kuralları belirleyen bir sistem istemi, herhangi bir örnekleme ayarından daha önemlidir.
- 100,000 token penceresi, tüm hikâye ansiklopedisini ve birkaç bölümü tek bir istekte tutmanızı sağlar.
- 1.200 token'lık bir bölüm yaklaşık bir santimin onda birine mal olur, bu nedenle maliyet genellikle sınırlayıcı değildir.
Filtresiz hikâye üreticisinin aslında ne olduğu
Bir filtresiz ai hikaye oluşturucu, size ders vermeye, kötünüzü dostça birine çevirmeye veya konu karanlık olduğu için bir sahneyi reddetmeye durmadan kurgu yazan bir metin modelidir. Suç gerilimleri, savaş kurgusu, korku, ahlaki açıdan gri karakterler ve yetişkinler arasındaki olgun romantizm, karanlık materyali bir uyarı olarak değil, materyal olarak ele alan bir modele ihtiyaç duyar.
Bu sitenin arkasındaki hizmet, yasal yetişkin kullanımı için içerik reddi olmadan yanıt vermeye ayarlanmış tek bir açık ağırlıklı model sunar. Bağımsız bir sağlayıcıda çalışır ve standart OpenAI tarzı API üzerinden erişilir. Bir mesaj listesi gönderirsiniz, düzyazı geri alırsınız. Öğrenilecek bir web editörü ve doldurulacak bir şablon yoktur; asıl nokta budur: hikâye aracının nasıl çalışacağına siz karar verirsiniz, model de metni sağlar.
Bir kural sabittir. Reşit olmayanları içeren cinsel içerik asla kabul edilmez ve bu durumu değiştiren hiçbir istek yoktur. Yasal yetişkin kurgusundaki diğer her şeyi yazma hakkına sahipsiniz. Bu hizmetin barındırılan bir karakter platformuyla nasıl karşılaştırıldığını genel olarak görmek istiyorsanız, NoFilter AI ile Character AI karşılaştırması sayfası bunu kapsar.
Yirmi satır Python ile ilk hikâyeniz
API, OpenAI formatını takip ettiği için resmi openai paketi değişmeden çalışır. Temel URL'yi ve anahtarı değiştirmeniz yeterlidir. pip install openai ile yükleyin, ardından bunu çalıştırın.
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)
Model kimliği uncensored şeklindedir. Anahtarı API anahtarı sayfası'ndan alırsınız. Henüz kaydolmadıysanız, yeni kullanıcılar tek tıkla 7 gün boyunca geçerli olan 0,50 $ deneme kredisi talep edebilir; böylece ilk betik size hiçbir maliyet yaratmaz.
Aynı çağrı, bir istemi koda sarmadan önce test etmek için kullanışlı olan curl'dan da çalışır.
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."}
]
}'Kullanılabilir kurgu üreten istem yapısı
Hikâye modelinden gelen en hayal kırıklığı yaratan çıktılar, modelden değil belirsiz talimatlardan kaynaklanır. İstemin üç parçası ağır işi yapar.
Sistem mesajı konuyu değil yazarı belirler
Ses kurallarını buraya yazın: bakış açısı, zaman kipi, cümle ritmi, kaçınılması gerekenler. "Sahneleri her şeyin ne anlama geldiği üzerine bir düşünceyle bitirme" gibi bir satır, birçok dil modelinin paylaştığı bir alışkanlığı ortadan kaldırır. Bu mesajı tüm proje boyunca sabit tutun, böylece bölümler birbirine benzer.
Kullanıcı mesajı vuruşları belirler
Sahneyi tek tek verin. Karakterleri, yeri, sahnede ne değiştiğini ve hedef uzunluğu adlandırın. "700 kelime yaz. Mara, eksik defter hakkında kardeşiyle yüzleşir. Yanıt almaz" ifadesi, "hikâyeye devam et" ifadesinden çok daha iyidir.
Bir hikâye ansiklopedisi ile gider
Karakter gerçekleri, şu ana kadarki zaman çizelgesi ve açık konular içeren kısa bir blok tutun ve her istekte gönderin. 800 token'lık bir ansiklopedi neredeyse hiçbir maliyet gerektirmez ve modelin göz rengini değiştirmesini veya bir karakteri diriltmesini engeller.
- Taslak aşaması için
temperaturedeğerini 0,8 ile 1,0 arasında, düzenleme işlemleri için 0,5 ile 0,7 arasında kullanın. - Sabit bir biçimde üretiyorsanız
stopdizilerini kullanın, örneğin "END SCENE" yazan bir satırda durdurmak gibi. - Model kalıplaşmış ifadeleri tekrarlıyorsa
presence_penaltyvefrequency_penaltydeğerlerini hafifçe kullanın. Her ikisi de modele iletilir. - İki istek sürümünü eşit koşullarda karşılaştırmak istediğinizde
seedkullanın.
Uzun bir hikâyeyi tutarlı kılma
Bağlam penceresi, istem ve yanıtı birlikte sayarak 100,000 token'dır. Bu, tek bir istekte tam bir hikâye ansiklopedisi, önceki birkaç bölüm ve yeni bir bölüm için yer demektir. Çoğu kurgu projesinde uzun süre bellek hileleri konusunda endişelenmeniz gerekmez.
Basit bir döngü, seri hale getirilmiş bir hikâyeyi yönetir. Mesajların devam eden listesini tutun, modelin yazdığı her bölümü ekleyin ve bir sonraki talimatınızı ekleyin. Liste sınırı yaklaştığında, en eski bölümleri, modelden yazmasını da istediğiniz kısa bir özetle değiştirin.
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."))
Sınıra ulaştığınızda sessizce kısaltmayın. Hikayenin başını kaybeden bir model genellikle kurguyu korur ancak küçük gerçekleri unutur. Sistem mesajından sonra eklenen 500 ila 800 token'lık bir yazılı özet, bu gerçekleri küçük bir maliyetle canlı tutar.
Başarısız veya reddedilen istekler ücretlendirilmez; bu nedenle bir hatadan sonra yapılan yeniden deneme faturanızı iki katına çıkarmaz. Tüm parametre listesi API belgelerinde yer alır.
Akış ve etkileşimli kurgu
Bir metin macerası veya canlı bir yazma asistanı için ekranlarda metinlerin gelir gelmez görünmesini istersiniz. stream: true ayarını yapın ve sunucu tarafından gönderilen olayları okuyun. Kullanım istatistikleri akışın sonunda iletilir.
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 ?? "");
}
İki pratik sınır geçerlidir. Tam anahtar 8 eşzamanlı istek ve dakikada 300 istek izni verir; deneme anahtarı ise 2 ve 60 izni verir. Akışlı bir istek, akış sona erene kadar eşzamanlılık slotunu tutar; bu nedenle bir web sayfasındaki yavaş bir okuyucu, beklentilerinizden daha uzun süre bir slotu meşgul edebilir. Bir sınırı aşarsanız HTTP 429 hatası ve rate_limited veya concurrency hata kodu alırsınız. Kısa süreli aşmalarda ayrıca Retry-After: 5 başlığıyla birlikte 429 hatası alırsınız; beş saniye bekleyip yeniden denemek doğru bir yanıttır.
Neden oluşturulan hikâyeler düzleşir ve çözümler
Reddiyetler olmasa bile, bir model sıkıcı kurgu yazabilir. Yaygın nedenler bilindiğinde kolayca onarılabilir.
İlki özet alma refleksidir. Bırakıldığında bir model olayları düzenli bir özet halinde sıkıştırır. Bir sahne isteyin, uzunluğunu belirtin ve sistem mesajında özetleri yasaklayın. İkincisi benzerlik: her karakter aynı nazik bir üslupla konuşur. Konuşan her karakter için iki satırlık bir ses notu verin, örneğin "kesik, cümleleri tamamlamaz" veya "resmi, arkadaşlar için bile unvanlar kullanır". Üçüncüsü eksik risktir. "Plan hakkında konuşuyorlar" gibi bir vuruş dolgu üretir, ancak "şafaktan önce onun anlaşmasını sağlaması gerekiyor ve o bunu biliyor" gerilim üretir.
Son olarak, çıktıyı bir editör gibi okuyun. Aynı cümle yapısı dört paragraf üst üste başlıyorsa, bunu bir sonraki istekte modele söyleyin ve yeniden yazılmasını isteyin. Siz yönlendiriyorsunuz, geleni kabul etmiyorsunuz. İlk çıktıyı bir taslak olarak gören yazarlar, bitmiş bir şey bekleyenlerden çok daha iyi bölümler elde eder.
Bir hikâyenin maliyeti
Fiyatlandırma, ön ödemeli kredi ile, abonelik olmadan, 1M girdi token başına $0,15 ve 1M çıktı token başına $0,50'dir. Kredi süresi dolmaz. Aşağıdaki sayılar bu iki fiyattan hesaplanmıştır.
| Görev | Girdi tokenları | Çıktı tokenları | Maliyet |
|---|---|---|---|
| Bir ansiklopedi ve önceki metinle bir bölüm | 3,000 | 1,200 | $0.00045 + $0.0006 = $0.00105 |
| 100 böyle bölüm | 300,000 | 120,000 | $0.045 + $0.06 = $0.105 |
| Etkileşimli oturum: 50 dönüş, her biri 20,000 token bağlam, 1,000 token yanıtlar | 1,000,000 | 50,000 | $0.15 + $0.025 = $0.175 |
| Pencereyi girişle dolduran tek bir istek | 100,000 | 0 | $0.015 |
Yüz bölüm bile yaklaşık on cent tutar. Bakiye yükleme işlemleri $20 ile başlar ve herhangi bir tam miktarda $500'e kadar çıkabilir; $50'den itibaren %5, $100'den itibaren %10 ve $200'den itibaren %15 bonus sağlanır. Ödeme yalnızca kripto ile yapılır; TRC20 üzerinde USDT veya Base üzerinde USDC kullanılır. Güncel detaylar fiyatlandırma sayfasında yer almaktadır.
Maliyetli alışkanlık, etkileşimli bir hikâyenin her adımında çok uzun bir geçmiş bağlamını yeniden göndermektir. Eski adımları özetlerseniz, girdi tokenlarınız keskin bir şekilde düşer.
Pratik tavsiyeler ve sınırlamalar
Oluşturmaya başladığınızda, birkaç nokta zaman kazandırır.
- Sadece metin. Hizmet görsel, ses veya video üretmez ve gömme veya ince ayar sunmaz. Kapak sanatı veya ses için başka bir araç kullanın.
- JSON modu yapıya yardımcı olur. Modelin bir karakter sayfası veya kodunuzun ayrıştıracağı bir sahne listesi döndürmesini istediğinizde
response_format: {"type":"json_object"}isteğinde bulunun. - İstemleriniz eğitim için kullanılmaz. Bu, el yazmanızı yayımlanmamışsa önemlidir.
- Aşamalarda düzenleyin. Yüksek bir sıcaklıkta taslak oluşturun, ardından taslağı daha düşük bir sıcaklıkta diyalogu sıkılaştırmak veya zarfları kaldırmak için bir talimatla tekrar gönderin.
- Çıktıyı kontrol edin. Reddi olmayan bir model, size verilen yöne uyacaktır; bu nedenle elde edeceğiniz ton, istediğiniz tondur.
Model, bir satıcının resmi API'si olmayan genel bir açık ağırlıklı modeldir; bu nedenle ürün etrafında inşa etmeden önce kendi türünüzde test edin. Deneme kredisi ve birkaç gerçek bölüm ile başlayın.
Daha fazla kılavuz
Sorular ve cevaplar
API üzerinden filtrelenmemiş bir AI hikâye oluşturucuyu denemenin ücretsiz bir yolu var mı?
Yeni kullanıcılar, kayıt sonrası API anahtarı sayfasında tek tıkla 0,50 $ deneme kredisi talep edebilir. Ödeme gerektirmez, 7 gün boyunca geçerlidir ve kişi başı bir kezle sınırlıdır.
Tek bir hikâye isteği ne kadar uzun olabilir?
Bağlam penceresi 100.000 token olup, istem ve yanıt arasında paylaşılır. Yanıt, istemin serbest bıraktığı her şeyi kullanabilir ve max_tokens isteğe bağlıdır.
OpenAI'yi zaten destekleyen araçlarla kullanabilir miyim?
Evet. Özel temel URL ve anahtar ayarlamanıza olanak tanıyan herhangi bir istemci, uncensored model kimliğini kullanarak çalışır. Desteklenen yöntemler POST /v1/chat/completions ve GET /v1/models'dir.
Modelin yazmayacağı herhangi bir içerik var mı?
Reşit olmayanları içeren cinsel içerik asla kabul edilmez. Bunun dışında model, yasal yetişkin kullanımı için içerik reddi olmadan yanıt verecek şekilde ayarlanmıştır.
Hikâyelerimi depolar veya üzerinde eğitim yapar mısınız?
İstemler eğitim için kullanılmaz.
Anahtarınız tek bir formun uzağında
Bir hesap oluşturun, anahtarı kopyalayın, base URL'yi değiştirin. Kurulumun tamamı bu kadardır.