API Qwen Abliterated: เรียกโมเดลแบบโฮสต์ ไม่ต้องใช้ GPU

คุณสามารถเรียกใช้โมเดลแชทแบบไม่เซ็นเซอร์ผ่าน HTTP ด้วย OpenAI SDK ที่มีอยู่แล้ว และไม่ต้องดาวน์โหลดน้ำหนักโมเดลหรือเช่า GPU คู่มือนี้แสดงการตั้งค่า พร้อมโค้ดที่ใช้งานได้และค่าใช้จ่ายที่ชัดเจน
ประเด็นสำคัญ
- กำหนดค่า OpenAI SDK ใดๆ ให้ชี้ไปยัง URL พื้นฐาน และตั้งค่าโมเดลเป็น uncensored
- สตรีมมิง การเรียกใช้ฟังก์ชัน และโหมด JSON ทำงานผ่านพารามิเตอร์มาตรฐาน
- ขีดจำกัด: คำขอพร้อมกัน 8 คำขอ และ 300 คำขอต่อนาทีบนคีย์เต็ม
- จ่ายต่อโทเคน: $0.15 ต่อ 1M อินพุต, $0.50 ต่อ 1M เอาต์พุต
คำตอบสั้นๆ: เปลี่ยน base URL
หากคุณกำลังมองหา qwen abliterated api วิธีปฏิบัติที่ลงมือได้จริงคือการใช้เอนด์พอยต์แบบโฮสต์ที่รองรับโปรโตคอล OpenAI คุณเก็บโค้ดไคลเอนต์ไว้ เปลี่ยนค่าสองค่า แล้วส่งคำขอไปยังเซิร์ฟเวอร์ที่รันโมเดลให้ ไม่ต้องดาวน์โหลด GGUF ไม่ต้องเลือกการควอนไทซ์ ไม่ต้องกังวลเรื่องงบประมาณ VRAM
หมายเหตุจำเป็นเกี่ยวกับการตั้งชื่อ: นี่คือบริการอิสระ ไม่ใช่ API Qwen ทางการ และโมเดลที่โฮสต์ไว้จะระบุชื่อเป็น uncensored ไม่ใช่ชื่อไฟล์ checkpoint ของ Qwen นี่คือโมเดลแบบเปิดน้ำหนักหนึ่งตัวที่ให้บริการโดยผู้ให้บริการอิสระและปรับแต่งให้ตอบโดยไม่ปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย หากคุณต้องการไฟล์ abliterated เฉพาะ ให้รันไฟล์นั้นในเครื่อง หากคุณต้องการเอนด์พอยต์แชทที่เชื่อถือได้สำหรับแอปพลิเคชัน โปรดอ่านต่อ
| การตั้งค่า | ค่า |
|---|---|
| URL พื้นฐาน | https://api.qwenabliterated.top/v1 |
| โมเดล | uncensored |
| Auth header | Authorization: Bearer YOUR_API_KEY |
| เอนด์พอยต์ | POST /v1/chat/completions, GET /v1/models |
| หน้าต่างบริบท | 100,000 โทเคน รวมพรอมต์และการตอบกลับ |
รับคีย์
สมัครด้วย Google หรือด้วยอีเมลและรหัสผ่าน จากนั้นเปิด หน้าคีย์ API ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ $0.50 ได้ด้วยการคลิกหนึ่งครั้ง ต่อหนึ่งคน ใช้ได้เป็นเวลา 7 วันโดยไม่ต้องใช้บัตร จำนวนนี้เพียงพอสำหรับการรันตัวอย่างด้านล่างหลายครั้ง
คีย์ทดลองมีขีดจำกัดต่ำกว่าคีย์เต็ม: คำขอพร้อมกัน 2 คำขอ และ 60 คำขอต่อนาที เทียบกับ 8 และ 300 ในคีย์เต็ม โปรดจำไว้หากคุณทดสอบด้วย worker พร้อมกัน
เก็บคีย์ไว้ในตัวแปรสภาพแวดล้อมแทนที่จะเก็บใน source control:
export QWENABL_KEY="paste-your-key-here"คำขอแรกใน Python
ติดตั้ง SDK ทางการด้วย pip install openai จากนั้น:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.qwenabliterated.top/v1",
api_key=os.environ["QWENABL_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a blunt technical assistant."},
{"role": "user", "content": "Explain what a KV cache is in three sentences."},
],
temperature=0.7,
)
print(resp.choices[0].message.content)
print(resp.usage)
การตอบกลับมีบล็อก usage มาตรฐาน ดังนั้นคุณสามารถบันทึกโทเคนพรอมต์และการสร้างข้อความแล้วคำนวณค่าใช้จ่ายเองได้ หัวข้อ HTTP รวมถึง X-Request-Id สำหรับคำถามเกี่ยวกับการสนับสนุน และ X-Balance-USD เพื่อให้คุณสามารถติดตามเครดิตคงเหลือได้โดยไม่ต้องเปิดแดชบอร์ด
เหตุผลที่ใช้ API แทนไฟล์ GGUF
เส้นทางทั่วไปสู่โมเดลแบบไม่เซ็นเซอร์คือการค้นหาไฟล์ที่ผ่านการควอนไทซ์ โหลดใน runtime ท้องถิ่น แล้วเชื่อมต่อกับเซิร์ฟเวอร์ท้องถิ่น วิธีนี้ใช้ได้และเป็นวิธีที่ดีสำหรับการทดลอง แต่ความยุ่งยากจะปรากฏเมื่อคุณเปลี่ยนจากการทดลองไปเป็นสิ่งที่ผู้อื่นใช้งาน
ประการแรก ฮาร์ดแวร์ ไฟล์ที่พอดีกับการ์ดเดสก์ท็อปของคุณในบริบทสั้นๆ อาจไม่พอดีในบริบทยาว เนื่องจาก attention cache ขยายตามโทเคนทุกตัว ประการที่สอง ความพร้อมกัน กระบวนการท้องถิ่นเดียวจัดการแชทหนึ่งหรือสองแชทได้อย่างสบาย แต่ผู้ใช้สิบคนพร้อมกันหมายถึงคิว ประการที่สาม ความพร้อมใช้งาน เครื่องที่บ้านอาจหลับ เสียพลังงาน และอัปเดตไดรเวอร์ในเวลาที่ไม่เหมาะสม API ที่โฮสต์ไว้เปลี่ยนสิ่งเหล่านี้ให้เป็นงานของผู้อื่น และคุณจ่ายเฉพาะโทเคนที่ใช้
สิ่งที่คุณเสียไปคืออิสระในการเลือก checkpoint เฉพาะและการรับประกันว่าข้อมูลจะไม่ออกจากเครือข่ายของคุณ ตัดสินใจว่าสิ่งใดสำคัญกว่าสำหรับโครงการของคุณก่อนเลือก
Node.js และ curl
Node SDK ใช้ตัวเลือกสองตัวเดียวกัน:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.qwenabliterated.top/v1",
apiKey: process.env.QWENABL_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me five names for a fantasy tavern." }],
});
console.log(resp.choices[0].message.content);
และด้วย curl ซึ่งสะดวกสำหรับการตรวจสอบคีย์ก่อนเชื่อมต่ออะไรก็ตาม:
curl -s https://api.qwenabliterated.top/v1/models \
-H "Authorization: Bearer $QWENABL_KEY"
การเรียกใช้ที่สำเร็จจะส่งคืนรายการ JSON ที่มี uncensored รหัส 401 หมายถึงคีย์ผิดหรือหายไป เอกสารประกอบ ครอบคลุมรูปแบบข้อผิดพลาดโดยละเอียด
สตรีมมิง โหมด JSON และเครื่องมือ
สตรีมมิง
ตั้งค่า stream: true และอ่าน server-sent events การใช้งานจะถูกรายงานที่ท้ายสตรีม
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write a short scene on a night train."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
คำขอแบบสตรีมจะครอบครองช่อง concurrency จนกว่าสตรีมจะเสร็จสิ้น ดังนั้นไคลเอนต์ที่เปิดสตรีมแล้วเลิกติดตามจะบล็อกความจุ โปรดบริโภคหรือปิดสตรีมเสมอ
โหมด JSON
ส่ง response_format={"type": "json_object"} และกล่าวถึง JSON ในพรอมต์ของคุณ ควรแยกวิเคราะห์อย่างระมัดระวังเสมอ ไม่มีโมเดลใดปฏิบัติตาม schema ได้สมบูรณ์แบบทุกครั้ง
การเรียกใช้ฟังก์ชัน
ส่ง tools และหากต้องการ tool_choice เมื่อโมเดลขอใช้เครื่องมือ ให้รันแล้วส่งผลลัพธ์กลับเป็นข้อความที่มี role: "tool" การเรียกใช้เครื่องมือก็สตรีมได้เช่นกัน พารามิเตอร์การสุ่มตัวอย่าง temperature, top_p, stop, seed และค่าปรับความถี่และการปรากฏจะถูกส่งผ่าน
การนำไปใช้ในแอปพลิเคชันจริง
สคริปต์เดียวเป็นเรื่องง่าย แอปพลิเคชันต้องการนิสัยเพิ่มเติมเล็กน้อย และนั่นคือสิ่งเดียวกันที่คุณจะใช้กับ API สไตล์ OpenAI ใดๆ
เก็บคีย์ไว้บนเซิร์ฟเวอร์
อย่าส่งคีย์ไว้ในโค้ดเบราว์เซอร์หรือแอปมือถือ ให้เรียก API จากแบ็กเอนด์ของคุณแล้วเปิดเส้นทางของคุณเองไปยังหน้าเว็บส่วนหน้า ซึ่งคุณสามารถเพิ่มการตรวจสอบสิทธิ์และขีดจำกัดต่อผู้ใช้ได้ ใครก็ตามที่พบคีย์ในบันเดิลสามารถใช้จ่ายเครดิตของคุณได้
ตั้งค่าเวลาหมดอายุและจำกัดผลลัพธ์
การสร้างข้อความสามารถใช้พื้นที่ที่เหลือของหน้าต่าง 100,000 โทเคน และ max_tokens เป็นตัวเลือก สำหรับฟีเจอร์แชท ให้ตั้งค่าขีดจำกัดที่ตรงกับอินเทอร์เฟซของคุณเพื่อให้คำตอบที่ยาวผิดปกติไม่สามารถทำให้ค่าใช้จ่ายพุ่งสูงได้ จับคู่กับไคลเอนต์ timeout และคุณจะมีเพดานทั้งเวลาและเงินสำหรับการเรียกใช้แต่ละครั้ง
บันทึก ID ของคำขอ
การตอบกลับทุกฉบับมี X-Request-Id เก็บไว้ถัดจากบันทึกการเรียกใช้ของคุณ เมื่อผลลัพธ์ดูผิดปกติหรือคำขอล้มเหลว ตัวระบุนี้คือสิ่งที่ช่วยให้การสนับสนุนพบคำขอที่แน่นอน ส่วนหัว X-Balance-USD มีประโยชน์สำหรับการแจ้งเตือนแบบง่าย: หากตัวเลขต่ำกว่าเกณฑ์ ให้ส่งข้อความถึงตัวเองก่อนที่งานจะหมด
ตรวจสอบรายการโมเดลเมื่อเริ่มต้น
การตรวจสอบสุขภาพที่เรียก GET /v1/models ไม่ใช้โทเคนและยืนยันคีย์ URL และเส้นทางเครือข่ายได้ในขั้นตอนเดียว ให้เรียกใช้เมื่อบริการของคุณเริ่มต้นทำงาน และล้มเหลวอย่างชัดเจนหากส่งข้อผิดพลาดกลับ
ขีดจำกัดและการจัดการข้อผิดพลาด
คำขอที่เกินขีดจำกัดจะได้รับ HTTP 429 รหัสข้อผิดพลาดบอกคุณว่าคุณถึงขีดจำกัดใด: rate_limited หมายถึงคำขอมากเกินไปต่อนาที และ concurrency หมายถึงพร้อมกันมากเกินไป ระหว่างการรับภาระเกินชั่วคราว API ยังคืนค่า 429 พร้อม Retry-After: 5 header ขนาดสูงสุดของบอดี้คือ 8 MB
เคารพส่วนหัวและลดความถี่:
import time
from openai import OpenAI, RateLimitError
def ask(client, messages, tries=5):
for attempt in range(tries):
try:
return client.chat.completions.create(model="uncensored", messages=messages)
except RateLimitError as e:
wait = int(e.response.headers.get("Retry-After", 5))
time.sleep(wait * (attempt + 1))
raise RuntimeError("still rate limited")
หากคุณรัน worker pool ให้จำกัดไว้ที่ 8 เธรดสำหรับคีย์เต็ม การเกินกว่านั้นเพียงเปลี่ยนงานให้เป็นข้อผิดพลาด 429 เท่านั้น คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน ดังนั้นการลองใหม่จึงไม่เสียค่าใช้จ่ายเพิ่มเติมเมื่อล้มเหลว
ต้นทุนของคำขอ
โทเคนพรอมต์คือ $0.15 ต่อ 1M และโทเคนเอาต์พุตคือ $0.50 ต่อ 1M ตัวอย่างบางรายการที่คำนวณอย่างแม่นยำ:
- การสนทนา 1 ครั้งที่มีโทเคนพรอมต์ 2,000 ตัวและโทเคนคอมพลีชัน 500 ตัว: 2,000 x $0.15 / 1M = $0.0003 บวก 500 x $0.50 / 1M = $0.00025 ดังนั้น $0.00055 การสนทนา 1,000 ครั้งมีค่าใช้จ่าย $0.55
- งานแบทช์ที่ส่ง 10M โทเคนอินพุตและรับ 2M โทเคนเอาต์พุต: $1.50 บวก $1.00 ดังนั้น $2.50
- คำขอบริบทยาวที่มี 90,000 โทเคนพรอมต์และ 1,000 โทเคนเอาต์พุต: $0.0135 บวก $0.0005 ดังนั้น $0.014
เครดิตเป็นแบบเติมเงินล่วงหน้า ไม่หมดอายุ และไม่มีแพ็กเกจ เติมเงินจำนวนเต็มใดๆ ตั้งแต่ $20 ถึง $500; $50 เพิ่ม 5% ดังนั้นการเติมเงิน $50 จะได้เครดิต $52.50 ชำระด้วยคริปโต (USDT บน TRC20, USDC บน Base) ดู หน้าราคา สำหรับตารางโบนัสเต็มรูปแบบ
ไฟล์ที่โฮสต์หรือไฟล์ท้องถิ่น: แบบใดที่เหมาะกับคุณ
GGUF ท้องถิ่นให้คุณเป็นส่วนตัวโดยการแยกและควบคุมถ่วงน้ำหนักโมเดลที่แน่นอนอย่างสมบูรณ์ API ที่โฮสต์ให้คุณไม่ต้องทำงานด้านฮาร์ดแวร์ หน้าต่างบริบทที่ยาวนาน และ URL ที่บริการอื่นสามารถเรียกได้ ทีมส่วนใหญ่ที่สร้างบอท เครื่องมือเขียน หรือแบ็กเอนด์เกมพบว่าโฮสติ้งง่ายกว่า เนื่องจากกล่อง GPU สำรองเป็นอีกสิ่งหนึ่งที่ต้องดูแลให้ทำงานอยู่
เพื่อให้เห็นภาพกว้างขึ้นของการจ่ายตามโทเคนเมื่อเทียบกับวิธีอื่นในการเข้าถึงโมเดลแบบ Qwen โปรดดูคู่มือเปรียบเทียบ พรอมต์ที่ส่งไปยัง API จะไม่ถูกนำไปใช้ในการฝึกโมเดล โมเดลรองรับเฉพาะข้อความ และเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์ไม่ได้รับอนุญาตภายใต้เงื่อนไขใด ๆ
คู่มือเพิ่มเติม
ถาม-ตอบ
ฉันต้องการ GPU เพื่อใช้งานหรือไม่?
ไม่ โมเดลทำงานบนเซิร์ฟเวอร์ของผู้ให้บริการ โค้ดของคุณส่งเพียงคำขอ HTTP ดังนั้นแล็ปท็อปหรือ VPS ขนาดเล็กก็เพียงพอแล้ว
ฉันต้องส่งชื่อโมเดลใด?
ส่ง uncensored เป็นชื่อโมเดล คุณสามารถยืนยันได้ด้วยการขอ GET ไปยัง /v1/models
รองรับ SDK Python และ Node.js ของ OpenAI หรือไม่
รองรับ กำหนด Base URL เป็นที่อยู่ /v1 ของเว็บไซต์และใช้คีย์ของคุณ การสร้างข้อความแชทแบบสมบูรณ์ การสตรีมมิง การเรียกใช้ฟังก์ชัน และโหมด JSON ทำงานผ่านพารามิเตอร์ปกติ
เกิดอะไรขึ้นถ้าฉันส่งคำขอมากเกินไป
คุณได้รับ HTTP 429 พร้อมรหัส rate_limited หรือ concurrency รอแล้วลองใหม่ และปฏิบัติตามเฮดเดอร์ Retry-After เมื่อมีอยู่
มีวิธีทดสอบแบบฟรีหรือไม่?
ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ฟรี $0.50 ได้คลิกเดียวที่หน้าคีย์ API ใช้ได้ 7 วัน ไม่ต้องใช้บัตร
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด
รับคีย์ API