API के माध्यम से नो फिल्टर AI कहानी जनरेटर
एक कहानी जनरेटर जो मध्य दृश्य पर रुक जाता है क्योंकि प्लॉट गहरा हो गया है, एक खराब लेखन टूल है। यह आलेख दिखाता है कि एक OpenAI-compatible एंडपॉइंट के ऊपर एक ऐसा टूल कैसे बनाएं, जिसका कोड आप आज ही चला सकते हैं।

मुख्य बिंदु
- किसी भी ओपनएआई एसडीके को बेस यूआरएल पर पॉइंट करें, मॉडल आईडी uncensored का उपयोग करें, और लगभग बीस पंक्तियों में आपको एक कहानी इंजन मिल जाएगा।
- एक सिस्टम प्रॉम्प्ट जो शैली, टोन और नियत सेट करता है, किसी भी सैम्पलिंग सेटिंग से अधिक महत्वपूर्ण है।
- 100,000-टोकन की विंडो आपको एक पूरी स्टोरी बाइबिल और कई अध्यायों को एक ही अनुरोध में रखने की अनुमति देती है।
- एक 1,200-टोकन वाला अध्याय लगभग एक सेंट के दसवें हिस्से के बराबर खर्च करता है, इसलिए लागत शायद ही कभी बाधा बनती है।
नो फिल्टर स्टोरी जनरेटर वास्तव में क्या है
एक नो फिल्टर एआई स्टोरी जनरेटर एक टेक्स्ट मॉडल है जो कथा लिखता है बिना आपको उपदेश दिए, बिना आपके खलनायक को एक मित्रवत पात्र में बदल दिए, या बिना किसी दृश्य को अस्वीकार किए क्योंकि विषय गंभीर है। अपराध थ्रिलर, युद्ध कथा, हॉरर, नैतिक रूप से धूसर नायक और वयस्कों के बीच परिपक्व रोमांस को सभी एक ऐसे मॉडल की आवश्यकता होती है जो अंधेरी सामग्री को सामग्री के रूप में माने, न कि चेतावनी के रूप में।
इस साइट के पीछे की service आपको एक open-weight model देती है, जिसे lawful adult use के लिए बिना content refusals के जवाब देने के लिए tuned किया गया है। यह एक independent provider पर चलता है और एक standard OpenAI-style API के माध्यम से पहुँचा जाता है। आप messages की एक list भेजते हैं, आपको prose वापस मिलती है। सीखने के लिए कोई web editor नहीं है और भरने के लिए कोई template नहीं है, जो कि मुख्य बात है: आप story tool को कैसे काम करना है, यह तय करते हैं, और मॉडल text प्रदान करता है।
एक नियम निश्चित है। किशोरों से संबंधित यौन सामग्री की कभी अनुमति नहीं है, और कोई भी प्रॉम्प्ट इसे नहीं बदलता है। कानूनी वयस्क कथा साहित्य में बाकी सब कुछ आपकी लिखने के लिए है। यदि आप यह सामान्य तस्वीर चाहते हैं कि यह एक होस्टेड कैरेक्टर प्लेटफ़ॉर्म से कैसे तुलना करता है, तो NoFilter AI versus Character AI पर पेज इसे कवर करता है।
Python में अपनी पहली कहानी बीस लाइनों में
क्योंकि API OpenAI format का पालन करता है, official openai package बिना किसी बदलाव के काम करता है। आपको केवल base URL और key को बदलना है। इसे pip install openai के साथ install करें, फिर इसे चलाएँ।
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 uncensored है। key API key page से आती है। यदि आपने अभी तक sign up नहीं किया है, तो नए users एक क्लिक के साथ $0.50 का मुफ़्त ट्रायल क्रेडिट claim कर सकते हैं, जो 7 दिनों के लिए मान्य है, इसलिए यह पहला script आपको कुछ भी नहीं खर्च करेगा।
एक prompt को code में wrap करने से पहले उसे test करने के लिए curl से वही call काम करती है, जो कि handy है।
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."}
]
}'उपयोगी कथा उत्पन्न करने वाली प्रॉम्प्ट संरचना
स्टोरी मॉडल से अधिकांश निराशाजनक आउटपुट अस्पष्ट निर्देशों से आता है, मॉडल से नहीं। प्रॉम्प्ट के तीन भाग मुख्य कार्य करते हैं।
system message author को सेट करती है, विषय को नहीं
यहाँ वॉइस नियम डालें: दृष्टिकोण, काल, वाक्य लय, क्या वर्जित है। "दृश्यों को अंत में इस बात के विचार से न समाप्त करें कि इसका क्या अर्थ है" जैसी एक पंक्ति एक आदत को हटा देती है जो कई भाषा मॉडल साझा करते हैं। पूरे प्रोजेक्ट में इस संदेश को स्थिर रखें ताकि अध्याय एक जैसे लगें।
user message beat सेट करती है
एक समय में एक दृश्य दें। पात्रों, स्थान, दृश्य के अंत में होने वाले परिवर्तन और लक्षित लंबाई का नाम दें। "700 शब्द लिखें। मारा अपने भाई को गायब लेजर के बारे में सामना करती है। उसे कोई जवाब नहीं मिलता" "कहानी जारी रखें" से कहीं बेहतर है।
एक story bible साथ चलती है
एक short block रखें जिसमें character facts, timeline so far और open threads हों, और हर request के साथ इसे भेजें। 800 tokens की एक bible लगभग कुछ भी नहीं खर्च करती है और मॉडल को एक eye colour बदलने या एक character को resurrect करने से रोकती है।
- Drafting के लिए
temperatureको 0.8 से 1.0 के आसपास और editing passes के लिए 0.5 से 0.7 के बीच उपयोग करें। - यदि आप निश्चित प्रारूप में जनरेट कर रहे हैं, तो
stopअनुक्रमों का उपयोग करें, उदाहरण के लिए उस पंक्ति पर रुकें जिसमें "END SCENE" लिखा हो। presence_penaltyऔरfrequency_penaltyको हल्के हाथ से उपयोग करें यदि मॉडल वाक्यांशों को दोहराता है। दोनों पैरामीटर मॉडल को पास किए जाते हैं।seedका उपयोग करें जब आप दो प्रॉम्प्ट संस्करणों की तुलना समान आधार पर करना चाहते हैं।
लंबी कहानी में निरंतरता बनाए रखना
कॉन्टेक्स्ट विंडो 100,000 टोकन की है, जिसमें प्रॉम्प्ट और जवाब दोनों शामिल हैं। इसमें एक पूरी कहानी की बाइबिल, पिछले कई अध्याय और एक नए अध्याय का आउटपुट एक ही अनुरोध में समा सकता है। अधिकांश फिक्शन प्रोजेक्ट्स के लिए आप लंबे समय तक मेमोरी ट्रिक्स के बारे में चिंता करना बंद कर सकते हैं।
एक सरल लूप एक क्रमबद्ध कहानी को संभालता है। संदेशों की एक चालू सूची बनाए रखें, मॉडल द्वारा लिखे गए प्रत्येक अध्याय को जोड़ें और अपना अगला निर्देश जोड़ें। जब सूसी सीमा के करीब पहुंच जाए, तो सबसे पुराने अध्यायों को एक छोटे सारांश से बदल दें जिसे आप मॉडल से भी लिखवाएं।
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."))
जब आप सीमा तक पहुंच जाएं, तो चुपचाप न काटें। एक मॉडल जो कहानी की शुरुआत खो देता है, अक्सर प्लॉट को बनाए रखता है लेकिन छोटे तथ्यों को भूल जाता है। सिस्टम संदेश के बाद डाले गए 500 से 800 टोकन का एक लिखित सारांश, उन तथ्यों को छोटे खर्च पर जीवित रखता है।
असफल या अस्वीकृत अनुरोधों के लिए चार्ज नहीं किया जाता है, इसलिए त्रुटि के बाद रीट्राई करने से आपका बिल कभी दोगुना नहीं होता है। सभी पैरामीटर की सूची API दस्तावेज़ में उपलब्ध है।
स्ट्रीमिंग और इंटरैक्टिव फिक्शन
एक टेक्स्ट एडवेंचर या लाइव लेखन सहायक के लिए, आप शब्दों को स्क्रीन पर आते ही देखना चाहते हैं। stream: true सेट करें और सर्वर-सेंट इवेंट्स को पढ़ें। उपयोग की संख्या स्ट्रीम के अंत में आती है।
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 ?? "");
}
दो व्यावहारिक सीमाएं लागू होती हैं। एक पूर्ण कुंजी 8 समकालीन अनुरोधों और प्रति मिनट 300 अनुरोधों की अनुमति देती है; एक ट्रायल कुंजी 2 और 60 की अनुमति देती है। एक स्ट्रीम किए गए अनुरोध में कन्करेंसी स्लॉट तब तक बना रहता है जब तक स्ट्रीम समाप्त न हो जाए, इसलिए वेब पेज पर एक धीमी रीडर एक स्लॉट को अपेक्षा से अधिक समय तक ब्लॉक कर सकता है। यदि आप सीमा को पार करते हैं, तो आपको HTTP 429 त्रुटि कोड rate_limited या concurrency के साथ मिलता है। संक्षिप्त ओवरलोड पर आपको 429 भी Retry-After: 5 के साथ मिलता है, और पुनः प्रयास करने से पहले पांच सेकंड प्रतीक्षा करना सही प्रतिक्रिया है।
उत्पन्न कहानियां क्यों फ्लैट हो जाती हैं, और समाधान
अस्वीकृतियों के बिना भी, एक मॉडल उबाऊ कहानी लिख सकता है। सामान्य कारण आसानी से ठीक किए जा सकते हैं जब आप उन्हें जानते हैं।
पहली समस्या सारांश प्रवृत्ति है। अकेला छोड़ने पर, एक मॉडल घटनाओं को एक व्यवस्थित सारांश में संपीड़ित कर देता है। एक दृश्य के लिए पूछें, उसकी लंबाई निर्दिष्ट करें, और सिस्टम संदेश में सारांशों को निषिद्ध करें। दूसरी समस्या समानता है: हर बोलने वाला पात्र एक ही विनम्र शैली में बोलता है। प्रत्येक बोलने वाले पात्र को एक दो-पंक्ति की आवाज़ नोट दें, जैसे "छिपा हुआ, कभी वाक्य नहीं पूरा करता" या "औपचारिक, दोस्तों के लिए भी उपाधियों का उपयोग करता है"। तीसरी समस्या महत्व की कमी है। "वे योजना के बारे में बात करते हैं" जैसा एक बिट फिलर उत्पन्न करता है, जबकि "उसे सुबह से पहले उससे सहमति चाहिए, और उसे पता है" तनाव उत्पन्न करता है।
अंत में, आउटपुट को एक संपादक की तरह पढ़ें। यदि एक ही वाक्य आकार लगातार चार पैराग्राफ खोलता है, तो अगले अनुरोध में मॉडल को बताएं और पुनर्लेखन का अनुरोध करें। आप निर्देशित कर रहे हैं, जो भी आता है उसे स्वीकार नहीं कर रहे हैं। लेखक जो पहले आउटपुट को एक ड्राफ्ट के रूप में मानते हैं, वे उन लोगों की तुलना में कहीं बेहतर अध्याय प्राप्त करते हैं जो एक पूर्ण अध्याय की उम्मीद करते हैं।
कहानी का खर्च
मूल्य निर्धारण $0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन है, प्रीपेड क्रेडिट से, कोई सब्सक्रिप्शन नहीं। क्रेडिट समाप्त नहीं होता है। नीचे दिए गए अंक उन दो मूल्यों से गणना किए गए हैं।
| काम | इनपुट टोकन | आउटपुट टोकन | लागत |
|---|---|---|---|
| बाइबिल और पिछले टेक्स्ट के साथ एक अध्याय | 3,000 | 1,200 | $0.00045 + $0.0006 = $0.00105 |
| 100 ऐसे अध्याय | 300,000 | 120,000 | $0.045 + $0.06 = $0.105 |
| इंटरैक्टिव सत्र: 50 टर्न, प्रत्येक 20,000-टोकन कॉन्टेक्स्ट, 1,000-टोकन जवाब | 1,000,000 | 50,000 | $0.15 + $0.025 = $0.175 |
| एक अनुरोध जो विंडो को इनपुट से भर देता है | 100,000 | 0 | $0.015 |
एक सौ अध्यायों का खर्च भी लगभग दस सेंट है। टॉप-अप $20 से शुरू होते हैं और किसी भी पूर्ण राशि में $500 तक जाते हैं, $50 से 5% बोनस, $100 से 10% और $200 से 15% मिलता है। भुगतान केवल क्रिप्टो है, TRC20 पर USDT या Base पर USDC का उपयोग करके। वर्तमान विवरण मूल्य निर्धारण पेज पर हैं।
महंगी आदत हर बार इंटरैक्टिव कहानी के हर टर्न पर एक बहुत लंबा संवाद इतिहास पुनः भेजना है। पुराने टर्न को सारांशित करें और आपके इनपुट टोकन तेजी से कम हो जाएंगे।
व्यावहारिक सलाह और सीमाएं
कुछ बिंदु समय बचाते हैं जब आप बनाना शुरू करते हैं।
- केवल पाठ। सेवा छवियाँ, ऑडियो या वीडियो उत्पन्न नहीं करती है, और न ही एम्बेडिंग या फाइन-ट्यूनिंग प्रदान करती है। कवर आर्ट या आवाज़ के लिए किसी अन्य टूल का उपयोग करें।
- JSON मोड संरचना में मदद करता है। जब आप चाहते हैं कि मॉडल एक कैरेक्टर शीट या दृश्य सूची लौटाए जिसे आपका कोड पार्स करे, तो
response_format: {"type":"json_object"}का अनुरोध करें। - आपके प्रॉम्प्ट प्रशिक्षण के लिए उपयोग नहीं किए जाते हैं। यह महत्वपूर्ण है यदि आपका मसौदा अप्रकाशित है।
- चरणों में संपादित करें। उच्च तापमान पर ड्राफ्ट तैयार करें, फिर ड्राफ्ट को वापस भेजें संवाद को कसने या निरर्थक शब्दों को काटने के निर्देश के साथ एक कम तापमान पर।
- आउटपुट की जांच करें। अस्वीकृतियों वाले बिना मॉडल आपके नेतृत्व का पालन करेंगे, इसलिए जो टोन आप पाते हैं वह वही टोन है जिसे आप मांगते हैं।
मॉडल एक सामान्य ओपन-वेट मॉडल है, कोई वेंडर की आधिकारिक API नहीं है, इसलिए किसी उत्पाद के आसपास निर्माण करने से पहले इसे अपने ही जॉनर पर परीक्षण करें। मुफ़्त ट्रायल क्रेडिट के साथ कुछ असली अध्यायों से शुरुआत करें।
अधिक गाइड
प्रश्न और उत्तर
क्या API के माध्यम से बिना फ़िल्टर वाला AI कहानी जनरेटर आज़माने का कोई मुफ़्त तरीका है?
नए उपयोगकर्ता साइन-अप के बाद API कुंजी पृष्ठ पर एक क्लिक से $0.50 का ट्रायल क्रेडिट दावा कर सकते हैं। इसके लिए भुगतान की आवश्यकता नहीं है, यह 7 दिनों के लिए मान्य है और एक व्यक्ति के लिए सीमित है।
एकल कहानी अनुरोध कितना लंबा हो सकता है?
कॉन्टेक्स्ट विंडो 100,000 टोकन का है, जो प्रॉम्प्ट और जवाब दोनों द्वारा साझा किया जाता है। जवाब प्रॉम्प्ट द्वारा छोड़े गए किसी भी स्थान का उपयोग कर सकता है, और max_tokens वैकल्पिक है।
क्या मैं इसे OpenAI का समर्थन करने वाले टूल्स के साथ उपयोग कर सकता हूँ?
हाँ। कोई भी क्लाइंट जो आपको कस्टम बेस URL और कुंजी सेट करने की अनुमति देता है, मॉडल ID uncensored का उपयोग करके काम करता है। समर्थित विधियाँ POST /v1/chat/completions और GET /v1/models हैं।
क्या कोई ऐसा सामग्री है जिसे मॉडल नहीं लिखेगा?
नाबालिगों से जुड़ी यौन सामग्री कभी भी अनुमत नहीं है। इसके अलावा, मॉडल को कानूनी वयस्क उपयोग के लिए बिना सामग्री अस्वीकृतियों के उत्तर देने के लिए ट्यून किया गया है।
क्या आप मेरी कहानियों को स्टोर करते हैं या उन पर प्रशिक्षण देते हैं?
प्रॉम्प्ट को प्रशिक्षण के लिए उपयोग नहीं किया जाता है।
आपकी कुंजी बस एक फॉर्म दूर है
एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। यही पूरा सेटअप है।