th ▾
รับคีย์ทดลองใช้

การแก้ปัญหา Mistake ทั่วไปกับโมเดล abliterated

การแก้ปัญหาโมเดลแบบ abliterated มักขึ้นอยู่กับความเข้าใจว่า LLM แบบ uncensored จัดการกับโครงสร้าง บริบท และการสตรีมข้อมูลแตกต่างจาก API เชิงพาณิชย์มาตรฐานอย่างไร โดยการแก้ไขการตรวจสอบ JSON ข้อจำกัดของโทเคน และการปรับแต่งพารามิเตอร์ คุณสามารถรับประกันการเล่นบทบาทหรือการเขียนโค้ด NSFW ที่เชื่อถือได้โดยไม่มีการปฏิเสธหรือรูปแบบที่เสียหาย

อัปเดตล่าสุด

สรุป

เหตุผลที่การตอบกลับ JSON ของคุณล้มเหลวในการตรวจสอบ

การแยกวิเคราะห์ JSON ล้มเหลวเมื่อโมเดลเพิ่มข้อความสนทนาไว้ภายนอกบล็อกโค้ด โมเดลแบบ uncensored ให้ความสำคัญกับกระแสภาษาธรรมชาติ ดังนั้นจึงมักเพิ่มข้อความ "นี่คือ JSON" ไว้ก่อนหรือหลังข้อมูลดิบ สิ่งนี้ทำให้ parser ที่เข้มงวดซึ่งคาดหวังเฉพาะออบเจกต์ทำงานผิดพลาด

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

  • ตั้งค่า response_format เพื่อ json_object ใน payload ของคำขอของคุณ
  • ตรวจสอบให้แน่ใจว่าระบบนำทางของคุณร้องขอผลลัพธ์ JSON อย่างชัดเจน
  • จัดการเครื่องหมายจุลภาคส่วนท้ายหรือข้อผิดพลาดไวยากรณ์เล็กน้อยได้อย่างสง่างามหากโมเดลพลาด
from openai import OpenAI

client = OpenAI(base_url="https://api.abliteratedllmonline.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)

การจัดการขีดจำกัดหน้าต่างบริบทอย่างถูกต้อง

หน้าต่างบริบทของคุณรองรับ 100,000 โทเค็นรวมกัน ซึ่งรวมถึงทั้งอินพุตและเอาต์พุต หากคุณส่งประวัติการสนทนาที่ยาว คุณต้องลดความยาวสูงสุดของเอาต์พุต ความยาวเอาต์พุตสูงสุดโดยค่าเริ่มต้นคือ 2,048 โทเค็น เว้นแต่คุณจะระบุค่าอื่น

คำนวณโทเค็นที่เหลือโดยลบขนาดอินพุตของคุณออกจาก 100,000 หากคุณกำลังทำบทบาทสมมติ ให้รักษาคำสั่งระบบให้กระชับ เก็บเฉพาะรอบการสนทนาล่าสุดในคำขอ API บริบทเก่าสามารถสรุปหรือตัดทอนได้ สิ่งนี้ป้องกันไม่ให้เกินขีดจำกัดแข็งระหว่างการสร้างข้อความ

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);

ข้อผิดพลาดการเรียกฟังก์ชันกับโมเดลแบบ uncensored

การเรียกฟังก์ชันล้มเหลวเมื่อโมเดลเพิกเฉยต่อคำจำกัดเครื่องมือหรือส่งคืนอาร์กิวเมนต์ที่ไม่ถูกต้อง โมเดลแบบ uncensored อาจให้ความสำคัญกับการตอบกลับเชิงสร้างสรรค์มากกว่าการใช้งานเครื่องมือที่เข้มงวด พวกมันอาจสร้างพารามิเตอร์ที่ไม่มีอยู่ในสคีมาของคุณ

กำหนดเครื่องมือของคุณอย่างชัดเจนใน tools array. ใช้ tool_choice เพื่อบังคับพฤติกรรมเฉพาะ หากโมเดลปฏิเสธการเรียกใช้เครื่องมือ ให้ตรวจสอบคำสั่งระบบของคุณเพื่อหาคำสั่งที่ขัดแย้งกัน ตรวจสอบให้แน่ใจว่าชื่อและคำอธิบายของเครื่องมือมีความชัดเจนไม่กำกวม ทดสอบด้วยการสอบถามแบบง่ายก่อนเพื่อยืนยันการผสานรวม

  • ระบุชื่อเครื่องมือและคำอธิบายให้ชัดเจน
  • ใช้ tool_choice เพื่อควบคุมการเรียกใช้
  • ตรวจสอบอาร์กิวเมนต์กับสคีมาของคุณก่อนดำเนินการ
curl https://api.abliteratedllmonline.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
  }'

การหยุดชะงักของการสตรีมและการจัดการ SSE

การสตรีมผ่าน Server-Sent Events (SSE) อาจทำให้สูญเสียโทเค็นได้หากไคลเอนต์ตัดการเชื่อมต่อหรือเกิดปัญหาเครือข่ายชั่วคราว ชิ้นข้อมูลสุดท้ายจะประกอบด้วยสถิติการใช้งานโทเค็น คุณต้องแยกวิเคราะห์ชิ้นข้อมูลนี้เพื่อดึงจำนวนอินพุตและเอาต์พุต

ใช้ไคลเอนต์ SSE ที่แข็งแกร่งซึ่งจัดการตรรกะการเชื่อมต่อใหม่ อย่าสันนิษฐานว่าทุกชิ้นมีข้อมูล บางชิ้นอาจว่างเปล่าหรือมีเพียงช่องว่าง แยกวิเคราะห์ชิ้นสุดท้ายเพื่ออัปเดตยอดเครดิตหรือตัวนับโทเค็น ซึ่งช่วยให้การเรียกเก็บเงินและการติดตามการใช้งานมีความแม่นยำ

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)

การตั้งค่าอุณหภูมิที่ส่งผลต่อเอาต์พุต NSFW

อุณหภูมิควบคุมความสุ่มของผลลัพธ์ของโมเดล ค่าที่สูงกว่าเช่น 0.8 หรือ 0.9 เพิ่มความสร้างสรรค์และความไม่แน่นอน ค่าที่ต่ำกว่าเช่น 0.2 ทำให้เอาต์พุตมีความเป็นกำหนดเองและมุ่งเน้นมากขึ้น สำหรับการสวมบทบาท NSFW อุณหภูมิที่สูงกว่าสร้างการตอบสนองที่หลากหลายและเข้มข้นมากขึ้น

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

  • ใช้ 0.7-0.9 สำหรับบทบาทสมมติเชิงสร้างสรรค์
  • ใช้ 0.2-0.5 สำหรับงานข้อเท็จจริงหรือการเขียนโค้ด
  • ติดตามคุณภาพ output ขณะปรับแต่ง

Top P และความหลากหลายในการสร้างบทบาท

Top P (การสุ่มนิวเคลียส) จำกัดโมเดลให้พิจารณาเฉพาะเปอร์เซ็นต์บนสุดของมวลความน่าจะเป็น ทำงานร่วมกับอุณหภูมิเพื่อควบคุมความหลากหลาย ค่า Top P ที่ต่ำทำให้ผลลัพธ์มีความคาดเดาได้มากขึ้น ค่าที่สูงอนุญาตให้มีความหลากหลายในการเลือกคำมากขึ้น

ผสาน Top P กับอุณหภูมิเพื่อควบคุมอย่างละเอียด เช่น อุณหภูมิสูงร่วมกับ Top P ต่ำสามารถสร้างข้อความที่สร้างสรรค์แต่มีทิศทางชัดเจน เหมาะสำหรับรักษาเสียงของตัวละครขณะอนุญาตให้เกิดการกระทำแบบสุ่ม ลองผสมผสานต่างๆ เพื่อให้เหมาะกับสไตล์การเล่าเรื่องของคุณ

from openai import OpenAI

client = OpenAI(base_url="https://api.abliteratedllmonline.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)

การเข้าใจขีดจำกัดโทเค็นและค่าใช้จ่าย

การใช้งานโทเค็นส่งผลกระทบต่อเครดิตเติมเงินของคุณ API คิดราคา $0.15 ต่อล้านโทเค็นอินพุตและ $0.50 ต่อล้านโทเค็นเอาต์พุต โทเค็นเอาต์พุตมีราคาแพงกว่าเพราะแทนงานของโมเดล การสตรีมไม่เปลี่ยนต้นทุน; คุณจ่ายสำหรับโทเค็นที่สร้างทั้งหมด

ติดตามการใช้โทเค็นของคุณเพื่อหลีกเลี่ยงการเรียกเก็บเงินที่ไม่คาดคิด ข้อมูลโทเค็นที่แน่นอนจะอยู่ใน chunk สุดท้ายของ SSE ใช้ข้อมูลนี้เพื่ออัปเดตยอดคงเหลือหรือแดชบอร์ดการเรียกเก็บเงินของคุณในเครื่อง การเกิดข้อผิดพลาดและการปฏิเสธจะไม่มีค่าใช้จ่าย ดังนั้นคุณจึงจ่ายเฉพาะสำหรับการสร้างที่สำเร็จเท่านั้น โมเดลการจ่ายตามการใช้งานนี้ทำให้คุณไม่จ่ายเกินจำเป็น

  • โทเค็นอินพุตมีราคา $0.15 ต่อล้านโทเค็น
  • โทเค็นเอาท์พุตมีราคา $0.50 ต่อล้าน
  • การปฏิเสธและข้อผิดพลาดฟรี

การแทนที่คีย์ API และข้อจำกัดอัตรา

แต่ละบัญชีอนุญาตให้ใช้คีย์ API ที่ใช้งานอยู่ได้เพียง 1 คีย์ หากคุณสร้างคีย์ใหม่ คีย์เก่าจะหมดอายุทันที ซึ่งช่วยรักษาความปลอดภัยแต่คุณต้องอัปเดตไคลเอนต์ของคุณอย่างรวดเร็ว ขีดจำกัดความเร็วถูกตั้งค่าไว้ที่ 300 คำขอต่อนาที และคำขอแบบขนาน 8 คำขอต่อคีย์

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

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);

การแก้ปัญหาข้อผิดพลาด HTTP ที่พบบ่อย

ข้อผิดพลาด HTTP บ่งชี้ถึงปัญหาในคำขอของคุณหรือการตอบสนองของเซิร์ฟเวอร์ ข้อผิดพลาดทั่วไปรวมถึง 400 Bad Request, 401 Unauthorized และ 429 Too Many Requests ข้อผิดพลาด 400 มักหมายถึง JSON ที่ไม่ถูกต้องหรือพารามิเตอร์ที่ไม่ถูกต้อง ข้อผิดพลาด 401 บ่งชี้ว่าคีย์ API ไม่ถูกต้องหรือหมดอายุ

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

  • 400: ตรวจสอบไวยากรณ์ JSON และพารามิเตอร์
  • 401: ตรวจสอบความถูกต้องของ API key
  • 429: ใช้ตรรกะการเรียกซ้ำพร้อม backoff
curl https://api.abliteratedllmonline.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
  }'

คำถามที่พบบ่อย

ฉันสามารถใช้โมเดลแบบ abliterated กับ SDK OpenAI มาตรฐานได้หรือไม่?

ใช่ API ของเรารองรับการทำงานแบบ OpenAI อย่างสมบูรณ์ คุณสามารถใช้ SDK ทางการของ OpenAI ได้เพียงเปลี่ยน base URL เป็น HTTPS://api.abliteratedllmonline.com/v1 และระบุ API key ของคุณ รหัสโมเดลที่ต้องส่งคือ "uncensored" ซึ่งช่วยให้การผสานรวมกับโค้ดที่มีอยู่ของคุณเป็นไปอย่างราบรื่น

โมเดลแบบไม่มีการกรองเนื้อหาปฏิเสธเนื้อหาหรือไม่?

โมเดลนี้ถูกออกแบบมาให้ uncensored สำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย มันไม่ปฏิเสธหัวข้อที่ถกเถียงกัน เรื่องแต่ง หรือเนื้อหา NSFW อย่างไรก็ตาม มีขีดจำกัดเนื้อหาที่แข็ง: คำขอที่เกี่ยวข้องกับเนื้อหาทางเพศกับเด็กจะถูกปฏิเสธเสมอ นี่คือข้อปฏิเสธที่เข้มงวดเพียงอย่างเดียวในบริการของเรา

ฉันจัดการกับการสตรีมมิ่งพร้อมการใช้งานโทเค็นได้อย่างไร?

เมื่อใช้ Server-Sent Events (SSE) ชิ้นสุดท้ายประกอบด้วยสถิติการใช้งาน token คุณต้องแยกวิเคราะห์ชิ้นสุดท้ายนี้เพื่อรับจำนวน token input และ output ซึ่งช่วยให้คุณติดตามการใช้เครดิตและเรียกเก็บเงินได้อย่างแม่นยำ ข้อผิดพลาดและการปฏิเสธบริการเป็นฟรี ดังนั้นคุณจ่ายเฉพาะสำหรับการดำเนินการสำเร็จ

ขนาด context window คืออะไร?

หน้าต่างบริบทมีขนาด 100,000 tokens ซึ่งรวมถึง prompt และการสร้างผลลัพธ์ (completion) การสร้างผลลัพธ์สูงสุดต่อคำขอคือ 16,000 tokens หรือ 2,048 tokens หากไม่ระบุพารามิเตอร์ max_tokens หน้าต่างขนาดใหญ่นี้ช่วยให้สามารถสนทนาเชิงลึกและประมวลผลเอกสารยาวๆ ได้

รับคีย์ API ของคุณ

ลงทะเบียน รับคีย์ของคุณ และอัปเดต URL พื้นฐาน แค่นี้เอง