NsfwLocalเอกสารสำหรับนักพัฒนา
เอกสาร API
เริ่มต้นใช้งาน API LLM แบบไม่มีเซนเซอร์ได้ในไม่กี่นาที ใช้เครื่องมือที่เข้ากันได้กับ OpenAI มาตรฐานเพื่อส่งคำขอข้อความและรับคำตอบโดยตรงที่ไม่มีการกรอง
เริ่มต้นคำขอแรกของคุณ
เริ่มสร้างข้อความได้ทันทีโดยชี้ไคลเอนต์ของคุณไปยัง URL พื้นฐานของเราและตรวจสอบสิทธิ์ด้วยคีย์ API ที่สร้างขึ้นมา อินเทอร์เฟซปฏิบัติตามมาตรฐานทั่วไป ดังนั้นคุณจึงสามารถใช้ SDK ที่มีอยู่โดยไม่ต้องเรียนรู้โปรโตคอลใหม่ คุณจะต้องส่งคำขอไปยัง uncensored model และรับข้อความตอบกลับที่ไม่ใช้ตัวกรองเนื้อหาทั่วไปสำหรับการใช้งานผู้ใหญ่ที่ถูกต้อง
กำหนดค่า URL พื้นฐานและคีย์
ตั้งค่าตัวแปรสภาพแวดล้อมของคุณเพื่อออกเส้นทางคำขอไปยังจุดปลายเฉพาะของเรา แทนที่คีย์ตัวอย่างด้วยคีย์ที่สร้างขึ้นระหว่างการสมัครสมาชิก สิ่งนี้ทำให้แน่ใจว่าคำเรียกทั้งหมด subsequent ใช้อินสแตนซ์โมเดล uncensored ที่ถูกต้อง
- Base URL:
https://api.nsfwlocalllm.com/v1 - Auth Header:
Authorization: Bearer YOUR_API_KEY
คุณสามารถตรวจสอบว่าคีย์ของคุณใช้งานได้โดยตรวจสอบ endpoint ของโมเดล คีย์ที่ถูกต้องจะส่งกลับ ID ของโมเดลที่มีอยู่ทันที
ส่งคำขอ chat completion
ส่งแพย์โหลด chat completion มาตรฐานเพื่อสร้างข้อความ ระบบประมวลผลอินพุตของคุณและส่งการตอบสนองของโมเดลกลับมา ใช้ uncensored model ID เพื่อให้แน่ใจว่าคุณกำลังเข้าถึงอินสแตนซ์ที่ไม่มีตัวกรอง
การตอบสนองรวมถึงข้อความที่สร้างขึ้นมาและสถิติการใช้งานโทเค็น คุณสามารถแยกวิเคราะห์สิ่งนี้ลงในลอจิกแอปพลิเคชันของคุณได้โดยตรง
curl https://api.nsfwlocalllm.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Send me the server uptime stats"}]
}'ตรวจสอบรหัสสถานะ HTTP มาตรฐานเพื่อจัดการกรณีสำเร็จหรือล้มเหลว
เปิดใช้งานสตรีมสำหรับผลลัพธ์แบบเรียลไทม์
สตรีมการตอบกลับเพื่อลดเวลาแฝงที่ผู้ใช้รับรู้ เปิดใช้งานสตรีมโดยการตั้งค่า stream: true ในบอดีคำขอของคุณ API จะส่งคืนชุดเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ (SSE) ที่มีโทเค็นบางส่วน
รวมโทเค็นเหล่านี้ที่ฝั่งไคลเอนต์เพื่อสร้างข้อความเต็ม วิธีนี้เหมาะสำหรับอินเทอร์เฟซแชทที่การตอบกลับทันทีมีความสำคัญ เหตุการณ์ SSE สุดท้ายจะรวมการใช้งานโทเค็นทั้งหมดสำหรับคำขอนั้น
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwlocalllm.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)จัดการข้อผิดพลาดการเชื่อมต่อได้อย่างราบรื่นเพื่อสร้างประสบการณ์ผู้ใช้ที่ลื่นไหล
ใช้โหมด JSON สำหรับข้อมูลที่มีโครงสร้าง
บังคับให้โมเดลส่งออก JSON ที่ถูกต้องสำหรับการใช้งานเชิงโปรแกรม ตั้งค่า response_format เพื่อ {"type": "json_object"} ในการร้องขอของคุณ วิธีนี้ลดข้อผิดพลาดในการแยกวิเคราะห์และรับประกันโครงสร้างข้อมูลที่สอดคล้องกัน
ใช้สิ่งนี้สำหรับการสร้างพรอมต์ที่มีโครงสร้าง การแยกวิเคราะห์เอนทิตี หรือการสร้างเนื้อหาแบบไดนามิก โมเดลจะปฏิบัติตามข้อจำกัดของรูปแบบที่กำหนดไว้ในคำแนะนำของระบบ สิ่งนี้สำคัญต่อการผสานรวมที่เชื่อถือได้กับบริการอื่น ๆ
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwlocalllm.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);ตรวจสอบ JSON ที่ส่งออกทางฝั่งของคุณเพื่อจับกรณีขอบเขตใดๆ
เพิ่มการเรียกใช้ฟังก์ชัน
กำหนดเครื่องมือเพื่อขยายขีดความสามารถของโมเดล ส่ง tools อาร์เรย์ที่มีคำจำกัดความของฟังก์ชันไปยังคำขอ โมเดลสามารถเลือกเรียกใช้ฟังก์ชันเหล่านี้ตามบริบท
สิ่งนี้เปิดใช้งาน workflow ที่ซับซ้อนที่ LLM ตัดสินใจเมื่อใดที่จะดึงข้อมูลหรือดำเนินการ คุณจะได้รับอาร์กิวเมนต์ฟังก์ชันในคำตอบและดำเนินการเหล่านั้นในฝั่งของคุณ ส่งผลลัพธ์กลับไปยังโมเดลสำหรับการให้เหตุผลเพิ่มเติม
ตั้งค่า tool_choice เพื่อ auto สำหรับการตัดสินใจที่ยืดหยุ่น คุณลักษณะนี้รองรับสถานการณ์การสวมบทบาทขั้นสูงที่ต้องการการเข้าถึงข้อมูลภายนอก
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)คำถามที่พบบ่อย
ขนาด context window คืออะไร?
หน้าต่างบริบทมีขนาด 100,000 tokens โดยครอบคลุมทั้ง prompt และ completion ซึ่งเอื้อต่อการสนทนาที่ยาวนานและเอกสารขนาดใหญ่โดยไม่สูญเสียบริบท
เกิดอะไรขึ้นถ้าเครดิตหมด?
คำขอจะล้มเหลวด้วยรหัสสถานะ 402 เมื่อยอดคงเหลือที่เติมไว้ของคุณไม่เพียงพอ คุณสามารถเติมเงินผ่านคริปโตเพื่อกลับมาใช้งานบริการได้ทันที ข้อผิดพลาดเช่นขีดจำกัดอัตราไม่ใช้เครดิต
ฉันจัดการกับอัตราจำกัดได้อย่างไร?
API กำหนดอัตราสูงสุด 300 คำขอต่อนาทีต่อ key หากเกินกว่านี้ คุณจะได้รับ status code 429 ใช้ exponential backoff ในไคลเอนต์ของคุณเพื่อจัดการกับความล่าช้าเหล่านี้ได้อย่างมีประสิทธิภาพ
ดึงคีย์ API ของคุณทันที
สมัครสมาชิก คัดลอกโทเค็น แล้วอัปเดต URL พื้นฐาน การตั้งค่าเสร็จสมบูรณ์
รับ API key