HI ▾

ट्रायल क्रेडिट से शुरू करें

ईमेल और पासवर्ड, कुंजी तुरंत स्क्रीन पर।

https://api.uncensoredllmhub.com/v1

Uncensored LLM Hub: चैट और एजेंट्स के लिए एक एंडपॉइंट

Uncensored LLM Hub एक होस्टेड, OpenAI-संगत टेक्स्ट API है जिसमें एक मॉडल और एक Base URL है। यह पृष्ठ इसके ऊपर एक चैट ऐप और एजेंट के लिए एक व्यावहारिक सेटअप को समझाता है।

अपडेट किया गया

एक चैट विंडो, एक एजेंट और दस्तावेज़ों से प्रकाश की धाराओं द्वारा जुड़ा केंद्रीय चमकता हुआ हब

मुख्य बिंदु

  • एक Base URL और एक मॉडल ID, uncensored, किसी भी OpenAI SDK या क्लाइंट के साथ काम करते हैं।
  • स्ट्रीमिंग, टूल कॉलिंग और JSON मोड का समर्थन किया जाता है, 100,000 टोकन की कॉन्टेक्स्ट विंडो के साथ।
  • एक पूर्ण कुंजी 8 समानांतर अनुरोधों और प्रति मिनट 300 की अनुमति देती है, इसलिए व्यस्त ऐप्स के लिए एक छोटा कतार योजना बनाएं।
  • बिलिंग प्रीपेड क्रेडिट से 1M इनपुट टोकन के लिए $0.15 और 1M आउटपुट टोकन के लिए $0.50 है, और प्रॉम्प्ट्स को प्रशिक्षण के लिए उपयोग नहीं किया जाता है।

एक एंडपॉइंट से आपको क्या मिलता है

लोग Uncensored LLM Hub की तलाश करते हैं जब उन्हें एक ऐसा मॉडल चाहिए जो कानूनी वयस्क उपयोग के लिए बिना सामग्री अस्वीकृति के जवाब दे, लेकिन GPUs चलाना नहीं चाहते। सेवा एक साधारण HTTPS API है। आप एक OpenAI क्लाइंट को https://api.uncensoredllmhub.com/v1 पर निर्देशित करते हैं, मॉडल ID uncensored भेजते हैं, और Authorization: Bearer YOUR_KEY के साथ प्रमाणीकरण करते हैं। दो विधियां मौजूद हैं: POST /v1/chat/completions संवादों के लिए और GET /v1/models सूचीबद्ध करने के लिए।

उस एंडपॉइंट के पीछे क्या है, यह स्पष्ट करना महत्वपूर्ण है। यह एक ओपन-वेट मॉडल है, जो एक स्वतंत्र प्रदाता द्वारा चलाया जाता है और सामग्री अस्वीकृति को छोड़ने के लिए ट्यून्ड किया गया है। यह किसी बड़े विक्रेता की आधिकारिक API नहीं है, और न ही यह मॉडल के बीच चयन करने वाला एक रूटर है। यह केवल टेक्स्ट संभालता है: कोई छवियां, ऑडियो, वीडियो, एम्बेडिंग्स या फाइन-ट्यूनिंग नहीं। एक कठोर नियम बिना किसी अपवाद के लागू होता है: नाबालिगों से संबंधित यौन सामग्री नहीं।

यह संकीर्ण स्कोप ही मुख्य बात है। एक स्थिर एंडपॉइंट के आसपास बनाना आसान है। नीचे दिए गए खंड एक छोटे चैट बैकएंड, फिर एक एजेंट लूप, और फिर उन सीमाओं को दिखाते हैं जिनके लिए आपको डिज़ाइन करना है।

चरण 1: मौजूदा क्लाइंट को कनेक्ट करें

चूंकि API OpenAI फॉर्मेट का पालन करता है, आपको नया क्लाइंट कोड लिखने की बहुत कम जरूरत होती है। अपना SDK या टूल खोलें, बेस URL और कुंजी बदलें, और मॉडल को uncensored पर सेट करें। पहले API कुंजी पृष्ठ पर साइन अप करें (Google, या ईमेल और पासवर्ड के साथ), फिर एक क्लिक से $0.50 का मुफ़्त ट्रायल क्रेडिट क्लेम करें। ट्रायल के लिए कार्ड की जरूरत नहीं है, यह 7 दिनों के लिए मान्य है और प्रति व्यक्ति एक बार ही सीमित है।

पायथन में एक न्यूनतम अनुरोध:

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)

सैम्पलिंग सेटिंग्स जैसे temperature, top_p, stop, seed और फ्रीक्वेंसी व प्रेजेंस पनाल्टी मॉडल को पास की जाती हैं, इसलिए आपको अन्य प्रोवाइडर्स से परिचित नॉब्स वैसे ही व्यवहार करेंगे। वही कॉल उन टूल्स में काम करती है जो एक कस्टम OpenAI-कम्पेटिबल एंडपॉइंट स्वीकार करते हैं, जैसे कि SillyTavern या Open WebUI: बेस URL पेस्ट करें, कुंजी जोड़ें और मॉडल ID हाथ से टाइप करें।

चरण 2: चैट इंटरफ़ेस में स्ट्रीमिंग उत्तर

यदि उपयोगकर्ता पूरा उत्तर आने तक खाली बॉक्स में देखता रहता है तो चैट ऐप्स धीमे लगते हैं। स्ट्रीमिंग इस समस्या को हल करती है। stream: true सेट करें और API सर्वर-सेंट इवेंट्स के रूप में उत्तर भेजती है, जिसमें स्ट्रीम के अंत में उपयोग की रिपोर्ट होती है। यहाँ एक नोड संस्करण है जो टोकन को आने पर आगे बढ़ाता है:

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;
}

दो आदतें बाद में परेशानी बचाती हैं। पहला, हमेशा एक एबॉर्ट सिग्नल पास करें और जब यूजर टैब बंद करे या स्टॉप दबाए तो उसे कैंसल करें। एक स्ट्रीमिंग अनुरोध अपनी समानांतर अनुरोध स्लॉट को तब तक ओक्युपी करता रहता है जब तक स्ट्रीम खत्म न हो जाए, इसलिए छोड़े गए स्ट्रीम्स आपके अलाउंस को खत्म करते हैं। दूसरा, उस पूरे टेक्स्ट को रखें जिसे आपने एसेम्बल किया है, क्योंकि आप उसे अगली टर्न के लिए असिस्टेंट मैसेज के रूप में हिस्ट्री में एपेंड करेंगे।

यदि स्ट्रीमिंग के दौरान आपके फ्रंटएंड में अस्पष्ट त्रुटियाँ दिखाई देती हैं, तो स्ट्रीमिंग विफलताओं के निदान पर हमारा नोट सामान्य कारणों को कवर करता है, जैसे कि एक गलत बेस URL, एक प्रॉक्सी जो इवेंट्स को बफर करता है और दो 429 कोड।

चरण 3: लंबे कॉन्टेक्स्ट का इरादापूर्वक उपयोग करें

कॉन्टेक्स्ट विंडो 100,000 टोकन की है, जो प्रॉम्प्ट और आउटपुट दोनों द्वारा शेयर की जाती है। एक स्टोरी-राइटिंग टूल, चैरेक्टर चैट या डॉक्यूमेंट असिस्टेंट के लिए, यह एक लंबी हिस्ट्री, एक बड़े सिस्टम प्रॉम्प्ट और रेफरेंस मैटेरियल के लिए एक साथ जगह है। आपको max_tokens सेट करने की ज़रूरत नहीं है; आउटपुट जो भी बचा है उसे इस्तेमाल कर सकता है।

इन कीमतों पर लंबे कॉन्टेक्स्ट को आज़माना सस्ता है। इनपुट के लिए पूरी विंडो भरने की लागत 100,000 इनपुट टोकन के लिए 0.1 × $0.15 = $0.015 है। एक 2,000 टोकन का उत्तर जोड़ें (0.002 × $0.50 = $0.001) और लगभग पूर्ण कॉल की लागत $0.016 होती है। फिर भी आपको विंडो का प्रबंधन करना चाहिए, तीन कारणों से: लेटेंसी प्रॉम्प्ट साइज के साथ बढ़ती है, प्रत्येक टर्न इतिहास को फिर से भेजता है इसलिए लागत एक सत्र में जुड़ जाती है, और बहुत लंबे इतिहास शीर्ष पर दिए गए निर्देशों को कमजोर कर देते हैं।

एक सरल नीति अच्छी तरह काम करती है:

  1. सिस्टम प्रॉम्प्ट और किसी भी स्थिर संदर्भ टेक्स्ट को शुरुआत में रखें।
  2. सबसे हालिया बारी को शब्दशः रखें।
  3. जब इतिहास आपकी चुनी हुई सीमा (उदाहरण के लिए 60,000 टोकन) से अधिक हो जाए, तो मॉडल से सबसे पुराने हिस्से को एक छोटे नोट में सारांशित करने के लिए कहें और उन टर्न को उससे बदल दें।
  4. अगले अनुरोध का आकार जानने के लिए प्रत्येक प्रतिक्रिया से usage.prompt_tokens पढ़ें, अक्षरों द्वारा अनुमान लगाने के बजाय।

चरण 4: एजेंट्स के लिए टूल्स और संरचित आउटपुट

एजेंट्स को मॉडल से दो चीजों की जरूरत होती है: फंक्शन कॉल करने का तरीका और आउटपुट जिसे आप पार्स कर सकें। दोनों समर्थित हैं। टूल कॉलिंग मानक tools और tool_choice पैरामीटर्स का उपयोग करती है, टूल कॉल्स को स्ट्रीम किया जा सकता है, और नतीजे role: "tool" वाले मैसेज के रूप में वापस आते हैं। एक सिंगल राउंड ट्रिप इस तरह दिखता है:

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)

कोई भी साइड इफेक्ट चलाने से पहले हमेशा तर्कों की सत्यापन करें। एक मॉडल एक खराब या अप्रत्याशित मान उत्पन्न कर सकता है, और आपका कोड रक्षा की अंतिम रेखा है।

टूल्स के बिना प्लेन स्ट्रक्चर्ड आउटपुट के लिए, response_format को {"type": "json_object"} सेट करके JSON मोड का उपयोग करें। प्रॉम्प्ट में भी उस शेप का वर्णन करें जो आप चाहते हैं, और रिप्लाई को एक ट्राई ब्लॉक के अंदर पार्स करें ताकि एक खराब रिस्पॉन्स क्रैश के बजाय एक रिट्राई ट्रिगर करे।

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."}
    ]
  }'

डिज़ाइन के आसपास की सीमाएँ

एक पूर्ण कुंजी 8 समानांतर अनुरोध और प्रति मिनट 300 अनुरोध की अनुमति देती है। एक ट्रायल कुंजी 2 और 60 की अनुमति देती है। बॉडी 8 MB तक हो सकती है। प्रत्येक प्रतिक्रिया X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests और X-RateLimit-Limit-Concurrency ले जाती है, जो लॉग करने के लिए उपयोगी हैं।

जब आप एक सीमा पार कर जाते हैं, तो API HTTP 429 लौटाता है। बहुत सारे अनुरोध प्रति मिनट के लिए कोड rate_limited होता है और एक साथ बहुत सारे अनुरोधों के लिए concurrency होता है। एक अस्थायी ओवरलोड भी 429 लौटाता है, Retry-After: 5 के साथ। एक बहु-उपयोगकर्ता ऐप के लिए, API के सामने एक छोटा क्यू रखें: एक सेमाफोर जो समानांतरता सीमा से नीचे साइज़ का हो और एक रीट्राई जो Retry-After का सम्मान करता हो। एक एजेंट के लिए जो समानांतर टूल कॉल में फैन आउट करता है, फैन-आउट को उसी संख्या पर कैप करें।

पूर्ण पैरामीटर सूची और त्रुटि प्रारूप API दस्तावेज़ में हैं।

लागत, टॉप-अप और डेटा हैंडलिंग

मूल्य निर्धारण प्रीपेड क्रेडिट से 1M इनपुट टोकन के लिए $0.15 प्रति और 1M आउटपुट टोकन के लिए $0.50 प्रति है। कोई सब्सक्रिप्शन नहीं है, क्रेडिट कभी नहीं खत्म होता, और विफल या अस्वीकृत अनुरोधों पर चार्ज नहीं किया जाता है। 1,500 इनपुट और 500 आउटपुट टोकन का एक चैट टर्न 0.0015 × $0.15 + 0.0005 × $0.50 = $0.000225 + $0.00025 = $0.000475 लागत करता है, इसलिए $20 का क्रेडिट लगभग 42,000 ऐसे टर्न कवर करता है।

आप $20 से $500 तक किसी भी पूर्ण राशि को टॉप-अप कर सकते हैं। बोनस $50 से +5%, $100 से +10% और $200 से +15% है। कार्ड (Visa, Mastercard, Apple Pay, Google Pay) या क्रिप्टो (TRC20 पर USDT, Base पर USDC) से भुगतान करें। मूल्य निर्धारण पृष्ठ पर वर्तमान तालिका है।

डेटा के बारे में: प्रॉम्प्ट प्रशिक्षण के लिए उपयोग नहीं किए जाते। पूर्ण पाठ के लिए गोपनीयता नीति पढ़ें। मॉडल के साथ आप जो बनाते हैं, उसकी ज़िम्मेदारी आपकी ही रहती है, और सेवा केवल कानूनी वयस्कों के उपयोग के लिए है।

प्रश्न और उत्तर

मुझे किस मॉडल ID का उपयोग करना चाहिए?

हर अनुरोध में मॉडल ID के रूप में uncensored का उपयोग करें। बेस URL को https://api.uncensoredllmhub.com/v1 पर सेट करें और अपनी कुंजी Bearer टोकन के रूप में भेजें।

क्या यह मेरे मौजूदा OpenAI कोड के साथ काम करता है?

हाँ। बेस URL और कुंजी बदलने के बाद कोई भी OpenAI SDK या क्लाइंट काम करता है। चैट पूर्णता, स्ट्रीमिंग, टूल कॉलिंग और JSON मोड समर्थित हैं।

क्या यह छवियाँ या एम्बेडिंग्स जनरेट कर सकता है?

नहीं। यह केवल टेक्स्ट API है, जिसमें छवियों, ऑडियो या वीडियो जनरेशन, एम्बेडिंग्स और फाइन-ट्यूनिंग नहीं है।

कॉन्वर्सेशन कितना बड़ा हो सकता है?

कॉन्टेक्स्ट विंडो 100,000 टोकन की है, जो प्रॉम्प्ट और जवाब दोनों के लिए साझा है। अनुरोध बॉडी 8 MB तक हो सकती है।

आपकी कुंजी बस एक प्रपत्र दूर है

एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। सेटअप यही है।

API कुंजी पाएँ

https://api.uncensoredllmhub.com/v1