เริ่มต้นใช้งานสำหรับผู้ใช้ OpenRouter NSFW
ผสาน API LLM แบบไม่เซ็นเซอร์ของเราเข้ากับโค้ดเบสที่มีอยู่ของคุณโดยการอัปเดต Base URL และคีย์ API คู่มือนี้ครอบคลุมเอนด์พอยต์ที่เข้ากันได้กับ OpenAI มาตรฐาน การสตรีมมิง และการจัดการข้อจำกัดสำหรับการใช้งานโดยตรงของนักพัฒนา
URL ฐานและการตรวจสอบสิทธิ์
แทนที่ Base URL ของผู้ให้บริการปัจจุบันของคุณด้วย https://api.openrouternsfw.com/v1 การตรวจสอบสิทธิ์ใช้หัวข้อความมาตรฐาน Authorization: Bearer <key> คุณได้รับคีย์ของคุณทันทีหลังจากสมัครสมาชิกผ่าน Google หรืออีเมลในหน้า รับคีย์ API ไม่จำเป็นต้องใช้หมายเลขโทรศัพท์ และคีย์จะแสดงเพียงครั้งเดียว ดังนั้นให้คัดลอกคีย์ก่อนออกจากหน้า
บริการของเราเป็น API ที่เป็นอิสระ ไม่ใช่ผู้ขายต่อโมเดลของผู้ขายรายอื่น รหัสโมเดลที่คุณส่งในคำขอคือ uncensored ซึ่งรันบนเซิร์ฟเวอร์ของเราเอง ปรับแต่งให้ตอบคำถามโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย แต่ไม่ใช่โมเดลของผู้ขายรายอื่นเช่น GPT หรือ Claude
ตรวจสอบให้แน่ใจว่าไลบรารีไคลเอนต์ของคุณได้รับการกำหนดค่าให้ใช้ Base URL ใหม่นี้ คำขอทั้งหมดต้องรวมคีย์ API ที่ถูกต้องในหัวข้อความ หากคีย์หายไปหรือไม่ถูกต้อง เซิร์ฟเวอร์จะส่งข้อผิดพลาด 401 กลับมา หากคุณไม่มีเครดิตแบบเติมเงินล่วงหน้า คุณจะได้รับข้อผิดพลาด 402 นี่คือรหัสสถานะ HTTP มาตรฐานที่บ่งชี้ถึงปัญหาการตรวจสอบสิทธิ์หรือการชำระเงิน ไม่ใช่ข้อผิดพลาดของเซิร์ฟเวอร์
เอนด์พอยต์การตอบแชท
ฟังก์ชันการทำงานหลักให้ผ่านเอนด์พอยต์ POST /v1/chat/completions เอนด์พอยต์นี้รับบอดี้ JSON ที่มีชื่อโมเดล อาร์เรย์ข้อความ และพารามิเตอร์เสริม ส่งกลับวัตถุ JSON ที่มีข้อความที่สร้าง สถิติการใช้งานโทเคน และ finish reason โครงสร้างนี้เข้ากันได้กับ SDK ทางการของ OpenAI และไลบรารีไคลเอนต์ที่เข้ากันได้กับ OpenAI ส่วนใหญ่
คุณไม่จำเป็นต้องเขียนไคลเอนต์ HTTP แบบกำหนดเองหากคุณต้องการใช้ SDK อย่างไรก็ตาม คุณต้องอัปเดตการกำหนดค่าให้ชี้ไปยัง Base URL ของเรา ตัวอย่างต่อไปนี้แสดงคำขอการสร้างข้อความมาตรฐานโดยใช้ cURL คำขอนี้ส่งพรอมต์ไปยังโมเดลแบบไม่เซ็นเซอร์และคาดหวังการตอบสนองเป็นข้อความ
curl https://api.openrouternsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'โปรดจำไว้ว่า API นี้ให้บริการเฉพาะข้อความ ไม่มีเอนด์พอยต์สำหรับการสร้างภาพ embeddings ภาพ เสียง หรือวิดีโอ หากคุณต้องการอินพุตหรือเอาต์พุตหลายรูปแบบในแอปพลิเคชันของคุณ คุณจะต้องจัดการสิ่งเหล่านั้นแยกต่างหาก บริการของเราเน้นที่การสร้างข้อความคุณภาพสูงด้วยโมเดลแบบไม่เซ็นเซอร์เท่านั้น
การผสานรวม Python SDK
การใช้ Python SDK ทำให้กระบวนการผสานรวมง่ายขึ้น เริ่มต้นไคลเอนต์ด้วย Base URL ที่ถูกต้องและคีย์ API ของคุณ ไลบรารีจัดการคำขอ HTTP และการแยกวิเคราะห์ JSON ให้คุณ คุณสามารถระบุรหัสโมเดลเป็น uncensored เพื่อให้แน่ใจว่าคุณกำลังใช้โมเดลเฉพาะของเรา
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouternsfw.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)ตัวอย่างโค้ดนี้แสดงวิธีการส่งข้อความและรับคำตอบ ไคลเอนต์จัดการการเชื่อมต่อและการรายงานข้อผิดพลาดโดยอัตโนมัติ หากเซิร์ฟเวอร์ส่งข้อผิดพลาดกลับมา SDK จะยกข้อยกเว้น คุณควรจัดการข้อยกเว้นเหล่านี้ในตรรกะแอปพลิเคชันของคุณเพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดีขึ้น
Python SDK เป็นเพียงตัวเลือกหนึ่ง คุณสามารถใช้ภาษาใดๆ ที่รองรับคำขอ HTTP โครงสร้างเอนด์พอยต์จะเหมือนกันไม่ว่าคุณจะเลือกไคลเอนต์ใด ความยืดหยุ่นนี้ช่วยให้คุณผสานโมเดลแบบไม่เซ็นเซอร์เข้ากับเวิร์กโฟลว์ที่มีอยู่ได้โดยไม่ต้องเปลี่ยนแปลงโค้ดมาก
การใช้งาน SDK Node
Node SDK ทำงานคล้ายกับเวอร์ชัน Python กำหนดค่าไคลเอนต์ด้วย Base URL และคีย์ API จากนั้นเรียกวิธีการสร้างข้อความสนทนา วิธีนี้เหมาะสำหรับแอปพลิเคชันฝั่งเซิร์ฟเวอร์หรือบริการแบ็กเอนด์ที่ต้องการสร้างข้อความแบบอะซิงโครนัส
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);นักพัฒนา Node.js สามารถผสาน API นี้เข้ากับโครงการที่มีอยู่ได้อย่างง่ายดาย SDK จัดการการทำให้เป็นข้อมูลและถอดรหัสข้อมูล JSON คุณยังสามารถระบุพารามิเตอร์เพิ่มเติมเช่น temperature หรือ top_p เพื่อควบคุมความสุ่มของผลลัพธ์
ตรวจสอบให้แน่ใจว่าคุณจัดการลักษณะการทำงานแบบอะซิงโครนัสของคำขอได้อย่างถูกต้อง ใช้ async/await หรือ Promise chains เพื่อจัดการข้อมูลการตอบสนอง นี้ช่วยให้แอปพลิเคชันของคุณยังคงตอบสนองได้ขณะรอให้โมเดลสร้างข้อความ Node SDK เป็นทางเลือกที่เชื่อถือได้สำหรับการสร้างบริการสร้างข้อความที่ปรับขนาดได้
การตอบแบบสตรีมมิง
เปิดใช้งานสตรีมมิงโดยการตั้งค่าพารามิเตอร์ stream เป็น true ในคำขอของคุณ เซิร์ฟเวอร์จะส่งชุดเหตุการณ์ที่ส่งโดยเซิร์ฟเวอร์ (SSE) แทนการตอบสนอง JSON เดียว แต่ละเหตุการณ์มีชิ้นส่วนข้อความที่สร้างบางส่วน
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)สตรีมมิงมีประโยชน์สำหรับแอปพลิเคชันแบบเรียลไทม์ที่คุณต้องการแสดงผลลัพธ์เมื่อมีการสร้างเสร็จ ส่วนข้อมูลสุดท้ายของสตรีมจะรวมการใช้โทเคนทั้งหมดสำหรับคำขอนี้ไว้ ซึ่งช่วยให้คุณติดตามต้นทุนได้อย่างแม่นยำโดยไม่ต้องรอให้คำตอบทั้งหมดเสร็จสิ้น
จัดการเหตุการณ์สตรีมอย่างระมัดระวังเพื่อให้แน่ใจว่าข้อความถูกประกอบขึ้นอย่างถูกต้อง ให้ต่อข้อความตามลำดับที่ได้รับจากเซิร์ฟเวอร์ ซึ่งรับประกันว่าข้อมูลจะถูกส่งตามลำดับ หากการเชื่อมต่อขาดหาย คุณอาจต้องลองส่งคำขอใหม่ สตรีมมิงเป็นฟีเจอร์ที่มีประสิทธิภาพซึ่งช่วยยกระดับประสบการณ์ของผู้ใช้สำหรับงานสร้างข้อความ
ขีดจำกัดอัตราและหน้าต่างบริบท
คีย์ API แต่ละตัวจำกัดอยู่ที่ 300 คำขอต่อนาที และ 8 คำขอพร้อมกัน ขนาดของบอดีคำขอถูกจำกัดไว้ที่ 8 MB หากเกินขีดจำกัดเหล่านี้ เซิร์ฟเวอร์จะส่งรหัสสถานะ 429 ซึ่งเป็นรหัสสถานะ HTTP มาตรฐานที่บ่งชี้ว่าคุณได้ส่งคำขอมากเกินไปในช่วงเวลาที่กำหนด คุณควรใช้การเพิ่มเวลาหน่วงแบบทวีคูณในไคลเอนต์เพื่อจัดการข้อผิดพลาดเหล่านี้อย่างราบรื่น
หน้าต่างบริบทรองรับโทเคนได้สูงสุด 100,000 โทเคนสำหรับพรอมต์และการตอบกลับรวมกัน ไม่มีขีดจำกัดผลลัพธ์แยกต่างหาก หากไม่ได้ระบุพารามิเตอร์ max_tokens การตอบกลับสามารถดำเนินไปจนสิ้นสุดหน้าต่างบริบท คุณสามารถจำกัดความยาวผลลัพธ์ได้โดยการตั้งค่า max_tokens เป็นค่าที่ต่ำกว่า
ตรวจสอบการใช้โทเคนของคุณเพื่อจัดการเครดิตแบบเติมเงินล่วงหน้าได้อย่างมีประสิทธิภาพ ข้อผิดพลาดและการปฏิเสธไม่ใช้โทเคน ดังนั้นคุณจะไม่ถูกเรียกเก็บเงินสำหรับคำขอที่ล้มเหลว สิ่งนี้ช่วยให้คุณสามารถจ่ายเฉพาะสำหรับการสร้างข้อความที่สำเร็จเท่านั้น ควรติดตามขีดจำกัดอัตราของคุณเพื่อหลีกเลี่ยงการหยุดชะงักของบริการ
ข้อมูลจำเพาะทางเทคนิค
ขีดจำกัดและความสามารถจริงทั้งหมดของ API ในที่เดียว ตรวจสอบก่อนเติมเงิน
| รายการ | ค่า |
|---|---|
| รูปแบบ API | รองรับ OpenAI: ใช้ OpenAI SDK ใดก็ได้ แค่เปลี่ยน base URL และคีย์ |
| การยืนยันตัวตน | Authorization: Bearer YOUR_KEY |
| เอนด์พอยต์ | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouternsfw.com/v1 |
| ID โมเดล | uncensored |
| โหมด JSON | response_format: {"type": "json_object"} |
| เอาต์พุตสูงสุด | ได้ถึงส่วนที่เหลือของหน้าต่าง 100,000 โทเคน; max_tokens ไม่บังคับ (ไม่มีเพดานแยก) |
| หน้าต่างบริบท | 100,000 โทเคน (อินพุตรวมเอาต์พุต) |
| พารามิเตอร์ | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| การเรียกใช้ฟังก์ชัน | รองรับ — tools, tool_choice คำตอบมี tool_calls รวมถึงตอนสตรีม ส่งผลลัพธ์กลับด้วย role: tool |
| สตรีมมิง | รองรับ — server-sent events ชิ้นสุดท้ายมีจำนวนโทเคนที่ใช้ |
| เฮดเดอร์ของคำตอบ | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| ขนาดคำขอ | ไม่เกิน 8 MB |
| คำขอพร้อมกัน | สูงสุด 8 คำขอพร้อมกันต่อคีย์ |
| ขีดจำกัดอัตรา | 300 คำขอต่อนาทีต่อคีย์ |
| เติมเงิน | USDT (TRC20) หรือ USDC (Base) จำนวนเต็มใดก็ได้ตั้งแต่ $20 ถึง $500 |
| อายุเครดิต | เครดิตที่ซื้อไม่มีวันหมดอายุ ไม่มีการสมัครรายเดือน |
| การคิดเงิน | เครดิตแบบเติมเงินล่วงหน้าตามการใช้งานจริง ข้อผิดพลาดและการปฏิเสธไม่คิดเงิน |
| เครดิตทดลองใช้ฟรี | $0.50 ใช้ได้ 7 วัน ไม่ต้องใช้บัตร · คีย์ทดลอง: 2 คำขอพร้อมกัน, 60 ครั้งต่อนาที; ขีดจำกัดเต็ม (8 และ 300) หลังเติมเงินครั้งแรก |
| โบนัส | +5% เมื่อเติมตั้งแต่ $50, +10% ตั้งแต่ $100, +15% ตั้งแต่ $200 |
| ราคา | $0.15 ต่อ 1 ล้านโทเคนอินพุต · $0.50 ต่อ 1 ล้านโทเคนเอาต์พุต |
| เนื้อหา | อนุญาตเนื้อหาสำหรับผู้ใหญ่ ปฏิเสธเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์ |
| เข้าสู่ระบบ | Google หรืออีเมลและรหัสผ่าน |
| คีย์ | หนึ่งบัญชีมีคีย์ที่ใช้งานได้หนึ่งคีย์ คีย์ใหม่จะแทนคีย์เดิม |
รหัสข้อผิดพลาด
ข้อผิดพลาดส่งกลับเป็น JSON พร้อม type ที่คงที่ คำขอที่ล้มเหลวหรือถูกปฏิเสธไม่คิดเงิน
| รหัส | ประเภท | ความหมาย |
|---|---|---|
400 | bad_request | JSON ไม่ถูกต้อง ข้อความว่าง พารามิเตอร์ผิด หรือเกินหน้าต่างบริบท |
401 | missing_key · invalid_key · key_revoked | ไม่มีคีย์ คีย์ผิด หรือคีย์ถูกแทนที่แล้ว |
402 | no_credit | เครดิตหมด เติมเงินแล้วใช้งานต่อได้ทันที |
403 | content_blocked | เนื้อหาทางเพศเกี่ยวกับผู้เยาว์ ถูกปฏิเสธ ไม่คิดเงิน |
404 | not_found | ไม่รู้จักเอนด์พอยต์ |
413 | request_too_large | ขนาดเกิน 8 MB |
429 | rate_limited · concurrency | เกิน 300/นาที หรือ 8 พร้อมกัน รอแล้วลองใหม่ |
503 | upstream_busy | โมเดลไม่ว่าง ลองใหม่ในไม่กี่วินาที |
ถาม-ตอบ
โมเดลแบบไม่เซ็นเซอร์แตกต่างจากผู้ขายรายอื่นอย่างไร
โมเดลของเราเป็นโมเดลแบบเปิดน้ำหนักที่รันบนเซิร์ฟเวอร์ของเราเอง ปรับแต่งให้ตอบคำถามโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย ไม่ใช่ GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama หรือโมเดลของผู้จัดจำหน่ายรายอื่น เราไม่เปลี่ยนเส้นทางระหว่างผู้จัดจำหน่าย; เราให้บริการเอนด์พอยต์แบบไม่เซ็นเซอร์เพียงจุดเดียว
เกิดอะไรขึ้นหากฉันเกินขีดจำกัดอัตรา?
หากคุณเกิน 300 คำขอต่อนาที หรือ 8 คำขอพร้อมกันต่อคีย์ เซิร์ฟเวอร์จะส่งรหัสสถานะ 429 ซึ่งเป็นรหัสสถานะ HTTP มาตรฐานที่บ่งชี้ว่าคุณได้ส่งคำขอมากเกินไปในช่วงเวลาที่กำหนด คุณควรใช้ตรรกะการเพิ่มเวลาหน่วงในไคลเอนต์เพื่อจัดการข้อผิดพลาดเหล่านี้
API รองรับ function calling และโหมด JSON หรือไม่?
ใช่ API รองรับ function calling (tools, tool_choice) และโหมด JSON (response_format json_object) คุณยังสามารถระบุพารามิเตอร์เช่น temperature, top_p, stop, seed, presence_penalty และ frequency_penalty เพื่อควบคุมผลลัพธ์ได้
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด
รับคีย์ API