การติดตั้งและการกำหนดค่า
เริ่มด้วยการติดตั้ง official SDK สำหรับภาษาของคุณ ไคลเอนต์ต้องการเพียง API key และ base URL ที่ถูกต้องเพื่อกำหนดเส้นทาง request ไปยังเซิร์ฟเวอร์ของเรา การตั้งค่านี้ทำงานกับไคลเอนต์มาตรฐานที่เข้ากันได้กับ OpenAI ใดๆ
กำหนดค่าตัวแปรสภาพแวดล้อมหรือส่งไปยังคอนสตรัคเตอร์ไคลเอนต์โดยตรง คุณไม่จำเป็นต้องจัดการตรรกะการเปลี่ยนเส้นทางที่ซับซ้อนหรือสลับระหว่างโมเดลหลายตัว โมเดล uncensored เดียวจัดการคำขอทั้งหมด
- ติดตั้งแพ็กเกจผ่านตัวจัดการแพ็กเกจของคุณ
- ตั้งค่าคีย์ API จากแดชบอร์ดของคุณ
- ชี้ไคลเอนต์ไปยังเอนด์พอยต์ API
การขอข้อมูลครั้งแรกของคุณ
ส่งคำขอ POST ไปยัง endpoint chat completions โดยตั้งค่ารหัสโมเดลเป็น "uncensored" สิ่งนี้จะส่งข้อความตอบกลับโดยตรงจากโมเดล โดยข้ามตัวกรองเนื้อหามาตรฐาน คุณสามารถส่ง prompts ง่ายๆ หรือคำสั่งระบบที่ซับซ้อน
API ยอมรับพารามิเตอร์มาตรฐานเช่น temperature และ top_p ใช้คำสั่ง cURL ต่อไปนี้เพื่อตรวจสอบการเชื่อมต่อและคุณภาพการตอบสนองทันที
curl https://api.chatbotunrestricted.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Fetch current temperature in Tokyo."}]
}'การตอบสนองนี้ยืนยันว่าโมเดลพร้อมใช้งานและพร้อมสำหรับปริมาณการผลิต
การจัดการการตอบกลับแบบสตรีม
เปิดใช้งานการสตรีมโดยการตั้งค่าพารามิเตอร์ stream เป็น true API จะส่งสตรีม server-sent events (SSE) โดยส่งโทเค็นเมื่อถูกสร้าง ซึ่งช่วยลดความล่าช้าที่รับรู้ของผู้ใช้ปลายทางอย่างมีนัยสำคัญ
แยกวิเคราะห์ชิ้นส่วน SSE เพื่ออัปเดต UI ของคุณแบบเรียลไทม์ ชิ้นส่วนสุดท้ายรวมถึงการใช้งานโทเค็นรวมสำหรับคำขอนี้ วิธีการนี้จำเป็นสำหรับอินเทอร์เฟซแชทที่ผู้ใช้คาดหวังการตอบสนองทันที
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)ตรวจสอบให้แน่ใจว่าไคลเอนต์ของคุณจัดการเหตุการณ์การสิ้นสุดสตรีมได้อย่างถูกต้อง
การใช้เครื่องมือและการเรียกใช้ฟังก์ชัน
กำหนดเครื่องมือในคำขอเพื่อให้โมเดลแสดงผลการเรียกใช้ฟังก์ชันที่มีโครงสร้าง ส่งคำจำกัดความของเครื่องมือในอาร์เรย์ tools และระบุ tool_choice สำหรับการเลือกอัตโนมัติ โมเดลจะส่งการเรียกใช้ฟังก์ชันในเนื้อหาคำตอบ
แยกวิเคราะห์อาร์กิวเมนต์ฟังก์ชันและดำเนินการในโค้ดของคุณ จากนั้นส่งผลลัพธ์กลับไปยังโมเดลในข้อความถัดไป วงจรนี้อนุญาตให้ทำงานหลายขั้นตอนที่ซับซ้อนได้โดยไม่ต้องใช้ตรรกะการแยกวิเคราะห์ภายนอก
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.chatbotunrestricted.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);ตรวจสอบสคีมาผลลัพธ์ก่อนดำเนินการ
จัดการโทเค็นและขีดจำกัด
หน้าต่างบริบทรองรับ 100,000 tokens สำหรับทั้ง prompt และ completion รวมกัน แต่ละ request สามารถ output ได้สูงสุด 16,000 tokens หรือ 2,048 หากละเว้น max_tokens ตรวจสอบการใช้งานของคุณผ่านจำนวน tokens ใน response
อัตราการใช้งานอนุญาต 300 คำขอต่อนาทีและ 8 คำขอพร้อมกันต่อคีย์ API การเกินขีดจำกัดเหล่านี้จะกระตุ้นข้อผิดพลาด 429 รักษาความ unik ของคีย์ของคุณในแต่ละบัญชีเพื่อหลีกเลี่ยงการแบ่งปันขีดจำกัด
ข้อผิดพลาดเช่น 401 บ่งชี้ถึงคีย์ไม่ถูกต้อง ในขณะที่ 402 หมายถึงคุณต้องการเครดิตเพิ่ม การปฏิเสธสำหรับข้อจำกัดเนื้อหาเล็กน้อยเป็นฟรีและไม่ใช้โทเค็น
การจัดการข้อผิดพลาดและการแก้ปัญหา
จัดการข้อผิดพลาด HTTP อย่างสุภาพในตรรกะแอปพลิเคชันของคุณ สถานะ 401 หมายถึงคีย์ API ของคุณไม่ถูกต้องหรือหมดอายุ ตรวจสอบแดชบอร์ดของคุณเพื่อให้แน่ใจว่าคีย์ใช้งานอยู่
รหัสสถานะ 402 ระบุว่าเครดิตแบบเติมเงินไม่เพียงพอ กรุณาเติมเงินด้วย USDT หรือ USDC เพื่อฟื้นฟูบริการ รหัสข้อผิดพลาด 429 ระบุว่าคุณเกินขีดจำกัดอัตราแล้ว รอและลองใหม่ด้วยการเพิ่มเวลาแบบเอกซ์โพเนนเชียล
ร่างกายคำขอที่ไม่ถูกต้องจะส่งข้อผิดพลาด 400 ตรวจสอบโครงสร้าง JSON ของคุณให้ตรงกับข้อกำหนดของ API ข้อผิดพลาดเหล่านี้ไม่มีค่าใช้จ่ายและไม่หักจากยอดเงินของคุณ
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.chatbotunrestricted.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)