TH ▾

เริ่มต้นด้วยเครดิตทดลองใช้

อีเมลและรหัสผ่าน คีย์แสดงบนหน้าจอทันที

https://api.uncensoredllmhub.com/v1

Uncensored LLM Hub: เอนด์พอยต์เดียวสำหรับแชทและเอเยนต์

uncensored llm hub คือ API ข้อความที่โฮสต์และเข้ากันได้กับ OpenAI โดยมีโมเดลเดียวและ base URL เดียว หน้าเว็บนี้แนะนำการตั้งค่าเชิงปฏิบัติสำหรับแอปแชทและเอเยนต์

อัปเดต

ศูนย์กลางเรืองแสงเชื่อมต่อกับหน้าต่างแชท เอเยนต์ และเอกสาร

ประเด็นสำคัญ

  • base URL เดียวและ model ID เดียวแบบ uncensored ทำงานกับ SDK หรือไคลเอนต์ OpenAI ใดๆ ได้
  • รองรับ streaming, tool calling และ JSON mode พร้อมหน้าต่างบริบท 100,000 token
  • คีย์แบบเต็มอนุญาตคำขอพร้อมกัน 8 รายการและ 300 รายการต่อนาที ดังนั้นควรวางแผนคิวขนาดเล็กสำหรับแอปที่ใช้งานหนัก
  • การเรียกเก็บเงินคือ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens จาก prepaid credit และ prompts ไม่ถูกนำไปใช้สำหรับการฝึกโมเดล

สิ่งที่คุณได้รับจากเอนด์พอยต์เดียว

ผู้คนค้นหา uncensored llm hub เมื่อต้องการโมเดลที่ตอบคำถามโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย แต่ไม่ต้องการรัน GPU บริการเป็น API HTTPS ธรรมดา คุณชี้ OpenAI client ไปที่ https://api.uncensoredllmhub.com/v1 ส่ง model ID uncensored และยืนยันตัวตนด้วย Authorization: Bearer YOUR_KEY มีสองวิธี: POST /v1/chat/completions สำหรับบทสนทนา และ GET /v1/models สำหรับรายการโมเดล

การเข้าใจสิ่งที่อยู่หลังเอนด์พอยต์นั้นเป็นสิ่งสำคัญ นี่คือโมเดล open-weight โมเดลเดียวที่รันโดยผู้ให้บริการอิสระและปรับแต่งเพื่อข้ามการปฏิเสธเนื้อหา ไม่ใช่ API ทางการของผู้ขายรายใหญ่ และไม่ใช่ router ที่เลือกโมเดล มันจัดการเฉพาะข้อความ: ไม่มีภาพ เสียง วิดีโอ embeddings หรือ fine-tuning กฎข้อเดียวที่เข้มงวดคือ: ไม่มีเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์

ขอบเขตที่แคบนี้คือจุดประสงค์ เอนด์พอยต์เดียวที่เสถียรง่ายต่อการสร้างรอบส่วนด้านล่างแสดง backend แชทขนาดเล็ก จากนั้นลูปเอเยนต์ แล้วจำกัดที่คุณต้องออกแบบ

ขั้นตอนที่ 1: เชื่อมต่อกับไคลเอนต์ที่มีอยู่

เนื่องจาก API ใช้รูปแบบ OpenAI คุณจึงแทบไม่ต้องเขียนโค้ดไคลเอนต์ใหม่ เปิด SDK หรือเครื่องมือของคุณ เปลี่ยน base URL และคีย์ แล้วตั้งค่าโมเดลเป็น uncensored สมัครสมาชิกที่หน้า คีย์ API (Google หรืออีเมลและรหัสผ่าน) จากนั้นรับเครดิตทดลองใช้ $0.50 ด้วยคลิกเดียว เครดิตทดลองใช้ไม่ต้องใช้บัตร ใช้ได้ 7 วัน และจำกัดหนึ่งครั้งต่อบุคคล

คำขอขั้นต่ำใน 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)

การตั้งค่าการสุ่มตัวอย่างเช่น temperature, top_p, stop, seed และค่าปรับความถี่และการปรากฏจะถูกส่งผ่านไปยังโมเดล ทำให้ปุ่มที่คุณคุ้นเคยจากผู้ให้บริการรายอื่นทำงานในลักษณะเดียวกัน คำขอเดียวกันนี้ใช้งานได้กับเครื่องมือที่ยอมรับ endpoint ที่เข้ากันได้กับ OpenAI เช่น SillyTavern หรือ Open WebUI: วาง base URL เพิ่มคีย์ พิมพ์ ID โมเดลด้วยตนเอง

ขั้นตอนที่ 2: สตรีมคำตอบเข้าสู่ส่วนติดต่อแชท

แอปแชทจะรู้สึกช้าหากผู้ใช้จ้องกล่องว่างจนกว่าคำตอบเต็มจะมาถึง การสตรีมมิงแก้ไขปัญหานี้ ตั้งค่า stream: true และ API จะส่งคำตอบเป็นเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ โดยรายงานการใช้งานที่ท้ายสตรีม นี่คือเวอร์ชัน Node ที่ส่งต่อโทเคนเมื่อมาถึง:

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

สองนิสัยช่วยประหยัดปัญหาภายหลัง ประการแรก ส่ง abort signal เสมอและยกเลิกเมื่อผู้ใช้ปิดแท็บหรือกดหยุด คำขอแบบสตรีมจะครอบครอง concurrency slot ของคุณจนกว่าสตรีมจะจบ ดังนั้นสตรีมที่ถูกทิ้งจะกินโควตาของคุณ ประการที่สอง เก็บข้อความเต็มที่คุณรวบรวมไว้ เพราะคุณจะเพิ่มข้อความนั้นไปยังประวัติเป็นข้อความของผู้ช่วยสำหรับเทิร์นถัดไป

หากคุณเห็นข้อผิดพลาดคลุมเครือในฝั่งไคลเอนต์ขณะสตรีม บันทึกของเราเกี่ยวกับการวินิจฉัยการล้มเหลวของการสตรีมครอบคลุมสาเหตุทั่วไป เช่น base URL ผิด โปร๊กซีที่บัฟเฟอร์เหตุการณ์ และรหัส 429 สองตัว

ขั้นตอนที่ 3: ใช้หน้าต่างบริบทอย่างมีเจตนา

context window มีขนาด 100,000 tokens ซึ่งใช้ร่วมกันระหว่าง prompt และ completion สำหรับเครื่องมือเขียนนิทาน แชร์ตัวละคร หรือผู้ช่วยเอกสาร พื้นที่นี้เพียงพอสำหรับประวัติที่ยาวนาน ระบบ prompt ขนาดใหญ่ และวัสดุอ้างอิงพร้อมกัน คุณไม่จำเป็นต้องตั้งค่า max_tokens; completion สามารถใช้พื้นที่ที่เหลือได้ทั้งหมด

การทดลองใช้ context ยาวในราคาเหล่านี้ถือว่าคุ้มค่า การกรอกหน้าต่างทั้งหมดด้วย input มีค่าใช้จ่าย 0.1 × $0.15 = $0.015 สำหรับ 100,000 input tokens เพิ่มคำตอบขนาด 2,000 tokens (0.002 × $0.50 = $0.001) และการเรียกใช้ที่เกือบเต็มหน้าต่างจะมีค่าใช้จ่ายรวม $0.016 คุณยังคงต้องการจัดการหน้าต่างบริบทด้วยเหตุผลสามประการ: latency เพิ่มขึ้นตามขนาดของ prompt แต่ละรอบจะส่งประวัติใหม่ทำให้ต้นทุนสะสมตลอดเซสชัน และประวัติที่ยาวมากจะทำให้ instructions ที่ด้านบนเจือจางลง

นโยบายง่ายๆ ทำงานได้ดี:

  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)

ตรวจสอบอาร์กิวเมนต์เสมอก่อนดำเนินการใดๆ ที่มีผลข้างเคียง โมเดลสามารถผลิตค่าที่ผิดรูปแบบหรือคาดไม่ถึง และโค้ดของคุณคือแนวป้องกันสุดท้าย

สำหรับผลลัพธ์ที่มีโครงสร้างแบบธรรมดาโดยไม่ใช้เครื่องมือ ให้ใช้โหมด JSON โดยตั้งค่า response_format เป็น {"type": "json_object"} อธิบายรูปร่างที่คุณต้องการในพรอมต์ด้วย และแยกวิเคราะห์การตอบกลับภายในบล็อก try เพื่อให้การตอบกลับที่ไม่ดีทำให้เกิดการลองใหม่แทนที่จะเกิดข้อผิดพลาด

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 สำหรับคำขอเกินพร้อมกัน การ overload ชั่วคราวยังส่ง 429 พร้อม Retry-After: 5 สำหรับแอปหลายผู้ใช้ ให้ใส่คิวเล็กๆ หน้า API: semaphore ที่มีขนาดต่ำกว่าขีดจำกัด concurrency และ retry ที่เคารพ Retry-After สำหรับ agent ที่กระจายไปยังการเรียกใช้เครื่องมือแบบขนาน ให้จำกัดการกระจายที่จำนวนเดียวกัน

รายการพารามิเตอร์ทั้งหมดและรูปแบบข้อผิดพลาดอยู่ใน เอกสาร API

ต้นทุน การเติมเงิน และการจัดการข้อมูล

ราคาอยู่ที่ $0.15 ต่อ 1M โทเคนอินพุต และ $0.50 ต่อ 1M โทเคนเอาท์พุต จากเครดิตแบบเติมเงินล่วงหน้า ไม่มีสมาชิก เครดิตไม่หมดอายุ และคำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน การตอบกลับแชทที่มี 1,500 โทเคนอินพุตและ 500 โทเคนเอาท์พุตมีค่าใช้จ่าย 0.0015 × $0.15 + 0.0005 × $0.50 = $0.000225 + $0.00025 = $0.000475 ดังนั้นเครดิต $20 จะครอบคลุมการตอบกลับประมาณ 42,000 แบบดังกล่าว

คุณสามารถเติมเงินจำนวนเต็มใดๆ ตั้งแต่ $20 ถึง $500 โบนัสคือ +5% จาก $50, +10% จาก $100 และ +15% จาก $200 จ่ายด้วยบัตร (Visa, Mastercard, Apple Pay, Google Pay) หรือคริปโต (USDT บน TRC20, USDC บน Base) หน้า หน้าราคา มีตารางปัจจุบัน

เกี่ยวกับข้อมูล: prompts ไม่ถูกนำไปใช้สำหรับการฝึกโมเดล อ่าน นโยบายความเป็นส่วนตัว เพื่อดูข้อความเต็ม คุณยังคงรับผิดชอบในสิ่งที่สร้างด้วยโมเดล และบริการนี้เหมาะสำหรับการใช้งานของผู้ใหญ่ที่ถูกต้องตามกฎหมายเท่านั้น

ถาม-ตอบ

ฉันต้องใช้รหัสโมเดลอะไร?

ใช้ uncensored เป็น model ID ในทุกคำขอ ตั้งค่า base URL เป็น https://api.uncensoredllmhub.com/v1 และส่งคีย์ของคุณเป็น Bearer token

มันทำงานกับโค้ด OpenAI ที่มีอยู่ของฉันได้หรือไม่

ใช่ SDK หรือไคลเอนต์ OpenAI ใดๆ ก็ทำงานได้หลังจากเปลี่ยน base URL และคีย์แล้ว รองรับการตอบกลับแบบแชท การสตรีมมิง การเรียกใช้เครื่องมือ และโหมด JSON

สามารถสร้างภาพหรือ embeddings ได้หรือไม่?

ไม่ นี่คือ API ที่รองรับเฉพาะข้อความ ไม่มี generation รูปภาพ เสียง หรือวิดีโอ ไม่มี embeddings และไม่มี fine-tuning

บทสนทนาสามารถยาวได้แค่ไหน

หน้าต่างบริบทมีขนาด 100,000 โทเคน ซึ่งใช้ร่วมกันโดยพรอมต์และคำตอบ request body สามารถมีขนาดได้สูงสุด 8 MB

คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว

สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด

รับคีย์ API

https://api.uncensoredllmhub.com/v1