NsfwAiApi/คู่มือ
LLM ท้องถิ่นที่ดีที่สุดสำหรับเล่นบทบาท หรือ API แบบโฮสต์?
โมเดล LLM ท้องถิ่นที่ดีที่สุดสำหรับการเล่นบทบาทคือโมเดล uncensored ขนาดใหญ่ที่สุดที่ GPU ของคุณรองรับได้ในคุณภาพที่ยอมรับได้ และคำตอบนี้จะเปลี่ยนไปทุกไม่กี่เดือน หากคุณต้องการหลีกเลี่ยงการใช้ฮาร์ดแวร์ เอนด์พอยต์แบบโฮสต์ให้เวิร์กโฟลว์การแชทเดียวกันด้วยการเปลี่ยน URL เพียงครั้งเดียว

รันในเครื่องหรือใช้โฮสต์: การตัดสินใจที่รวดเร็ว
เลือกแบบในเครื่องหากคุณมี GPU ที่ทรงพลังอยู่แล้ว ต้องการการทำงานแบบออฟไลน์ทั้งหมด หรือชอบปรับแต่งโมเดล เลือกแบบโฮสต์หากคุณต้องการความจำที่ยาวนานในเรื่องราว ใช้แล็ปท็อปหรือโทรศัพท์ หรือต้องการใช้เวลาเพียงไม่กี่นาทีแทนที่จะเป็นทั้งสุดสัปดาห์ในการตั้งค่า หลายคนใช้ทั้งสองแบบ: โมเดลในเครื่องสำหรับการทดลองแบบส่วนตัว และแบบโฮสต์สำหรับแคมเปญที่ยาวนาน
| ปัจจัย | โมเดลในเครื่อง | API แบบโฮสต์ |
|---|---|---|
| โมเดลต้นทุน | ฮาร์ดแวร์และพลังงาน ไม่มีค่าธรรมเนียมต่อโทเคน | จ่ายต่อโทเคนจากเครดิตแบบเติมเงินล่วงหน้า |
| ขนาดโมเดล | จำกัดด้วยหน่วยความจำ GPU ของคุณ | ไม่ว่าผู้ให้บริการจะรันโมเดลอะไร |
| ความยาวของบริบท | จำกัดด้วยหน่วยความจำ เนื่องจากหน้าต่างบริบทที่ยาวขึ้นต้องการหน่วยความจำมากขึ้น | 100,000 โทเคนที่นี่ |
| ความเป็นส่วนตัว | ไม่มีอะไรออกจากเครื่องของคุณ | พรอมต์ถูกส่งไปยังผู้ให้บริการ; ที่นี่จะไม่ถูกนำไปใช้ในการฝึกโมเดล |
| การตั้งค่า | เวลาเรียกใช้ น้ำหนักโมเดล การควอนไทซ์ และการอัปเดต | Base URL และคีย์ API |
| ใช้งานได้จากอุปกรณ์ใดๆ | เฉพาะเมื่อคุณเปิดเครื่องของคุณเอง | ใช่ |
สิ่งที่กำหนดโมเดลในเครื่องที่ดีที่สุดจริงๆ
การจัดอันดับโมเดลโลคอลที่ดีที่สุดสำหรับการเล่นบทบาทสมมติล้าสมัยอย่างรวดเร็ว และไม่มีชื่อใดที่เหมาะสมสำหรับทุกคน ให้ประเมินผู้สมัครจากสิ่งที่ปรากฏในเซสชันจริง
- พฤติกรรมการปฏิเสธ โมเดลพื้นฐานและแบบอินสตรักชันจำนวนมากถูกปรับให้ปฏิเสธธีมบางประเภท โมเดลที่ปรับแต่งสำหรับงานวรรณกรรมหรือระบุว่าเป็น uncensored มักจะปฏิเสธน้อยกว่า แต่คุณภาพแตกต่างกัน ดังนั้นควรทดสอบกับฉากของคุณเอง
- การรักษาตัวละคร สังเกตโมเดลที่เบี่ยงเบนไปเป็นการบรรยายการกระทำของตัวละครของคุณ พูดซ้ำคำเดิมทุกเทิร์น หรือลืมว่าใครอยู่ในห้อง
- คุณภาพการเขียน อ่านคำตอบสิบครั้งติดต่อกัน โมเดลบางตัวใช้ได้เพียงเทิร์นเดียวแต่ทำให้เหนื่อยล้าเมื่อถึงเทิร์นที่สิบ
- การจัดการหน้าต่างบริบท โมเดลอาจประกาศหน้าต่างบริบทที่ยาวและยังสูญเสียรายละเอียดจากตรงกลางของมันได้ ทดสอบโดยให้ข้อเท็จจริงจากต้นบทสนทนามีความสำคัญในภายหลัง
- ขนาดและการควอนไทซ์ โมเดลขนาดใหญ่ที่ถูกบีบอัดด้วยการควอนไทซ์แบบหนักอาจสูญเสียคุณภาพมากกว่าโมเดลขนาดเล็กที่รันด้วยความแม่นยำสูง เปรียบเทียบ อย่าสันนิษฐาน
ฟอรัมชุมชนและการ์ดโมเดลสำหรับรันไทม์ที่คุณใช้คือแหล่งที่เหมาะสมสำหรับคำแนะนำปัจจุบัน ดาวน์โหลดผู้สมัครสองสามราย รันฉากเดียวกันบนแต่ละราย และเก็บไว้เฉพาะตัวที่ทำให้คุณอยากดำเนินเรื่องต่อ
เมื่อการรันในเครื่องหมดพื้นที่
กำแพงที่ผู้เล่นบทบาทสมมติส่วนใหญ่เจอคือหน่วยความจำ และมันเกิดขึ้นในสองจุด จุดแรกคือโมเดลเอง: โมเดลที่ใหญ่กว่าเขียนได้ดีกว่าแต่ต้องการหน่วยความจำ GPU มากกว่า จุดที่สองคือหน้าต่างบริบท ข้อความทุกข้อความในเรื่องราวที่ยาวจะถูกส่งอีกครั้งในแต่ละเทิร์นใหม่ และแคชที่เก็บข้อความนั้นจะขยายตามความยาว ดังนั้นแคมเปญที่ยาวนานอาจทำให้ GPU ที่จัดการบทสนทนาสั้นๆ ได้ดีหมดแรง
ทางลัดทั่วไปคือการสรุปบทสนทนาเก่า ใช้หนังสือโลเรที่ฉีดเฉพาะข้อเท็จจริงที่เกี่ยวข้อง และลดขนาดหน้าต่างบริบท วิธีเหล่านี้ใช้ได้ผล และยังเป็นงานเพิ่มเช่นกัน หน้าต่างเอนด์พอยต์แบบโฮสต์ที่มีหน้าต่าง 100,000 โทเคนช่วยให้คุณเก็บเนื้อเรื่องไว้ในมุมมองได้มากกว่า ซึ่งเหมาะสำหรับแคมเปญยาว โลกที่แชร์กันที่มีตัวละครจำนวนมาก และเรื่องราวที่ดำเนินไปหลายสัปดาห์
สิ่งที่ต้องแลกคือต้นทุน ดังนั้นการวัดต้นทุนจึงช่วยได้ สมมติว่าแชทมีประวัติ 30,000 โทเคน และโมเดลเขียนคำตอบ 300 โทเคนต่อรอบ ค่าใช้จ่ายหนึ่งรอบคือโทเคนอินพุต 30,000 โทเคนที่ $0.15 ต่อ 1M ซึ่งเท่ากับ $0.0045 บวกโทเคนเอาต์พุต 300 โทเคนที่ $0.50 ต่อ 1M ซึ่งเท่ากับ $0.00015 นั่นคือ $0.00465 ต่อรอบ หรือ $0.465 สำหรับ 100 รอบ ค่าใช้จ่ายในการเล่นหนึ่งเย็นจะต่ำกว่าหนึ่งดอลลาร์มาก หน้า ราคา แสดงอัตราและระดับโบนัสสำหรับการเติมเงินขนาดใหญ่
การตั้งค่าแบบโฮสต์ที่ใช้งานได้จริงใน Python
เอนด์พอยต์นี้เข้ากันได้กับ OpenAI ดังนั้นแพ็กเกจ openai ทางการจึงใช้งานได้โดยไม่ต้องแก้ไข ยกเว้น Base URL และคีย์ โมเดล ID คือ uncensored ขั้นแรกรับคีย์จาก หน้าคีย์ API; บัญชีใหม่สามารถรับเครดิตทดลองใช้ $0.50 ได้ด้วยการคลิกหนึ่งครั้ง ไม่ต้องใช้ข้อมูลการชำระเงิน
สคริปต์นี้เก็บประวัติแบบวนซ้ำ สตรีมมิงคำตอบ และตัดบทสนทนาเก่าออกเพื่อให้พรอมต์มีขนาดเล็กลง ส่วนพรอมต์ระบบคือส่วนที่คุณควรให้ความสำคัญ: ส่วนนี้กำหนดฉาก กฎ และสไตล์
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.nsfwaiapi.com/v1",
api_key=os.environ["NSFWAIAPI_KEY"],
)
SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving ผู้เยาว์ under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''
history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40 # keep the last 40 messages besides the system prompt
def say(user_text):
history.append({"role": "user", "content": user_text})
trimmed = [history[0]] + history[1:][-MAX_TURNS:]
stream = client.chat.completions.create(
model="uncensored",
messages=trimmed,
temperature=0.9,
top_p=0.95,
frequency_penalty=0.3,
max_tokens=600,
stream=True,
)
reply = ""
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
piece = chunk.choices[0].delta.content
reply += piece
print(piece, end="", flush=True)
print()
history.append({"role": "assistant", "content": reply})
say("I push open the door of the Gull and Anchor and look for the harbor master.")
เนื่องจากหน้าต่างบริบทมีขนาด 100,000 โทเคน คุณสามารถเพิ่ม MAX_TURNS ได้มากก่อนที่การตัดทอนจะสำคัญ การตัดทอนยังคงเป็นนิสัยที่ดี: พรอมต์ที่สั้นกว่ามีต้นทุนต่ำกว่าและช่วยให้โมเดลจดจ่อกับเหตุการณ์ล่าสุด
การตั้งค่าไคลเอนต์สำหรับ SillyTavern และแอปอื่นๆ ที่คล้ายกัน
หน้าเว็บบทบาทสมมติส่วนใหญ่มีหน้าจอการเชื่อมต่อสำหรับแหล่งที่มาของการสร้างข้อความแชทที่เข้ากันได้กับ OpenAI แบบไม่เซ็นเซอร์ พร้อมพรอมต์ระบบที่ใช้งานได้จริงและการตั้งค่าไคลเอนต์ OpenAI หรือแบบกำหนดเอง เช่น SillyTavern ช่วยให้คุณเพิ่มเอนด์พอยต์ที่เข้ากันได้กับ OpenAI แบบไม่เซ็นเซอร์ พร้อมพรอมต์ระบบที่ใช้งานได้จริงและการตั้งค่าไคลเอนต์ OpenAI ได้ ฟิลด์ต่างๆ มีลักษณะเดียวกันทุกที่:
- Base URL หรือเอนด์พอยต์ URL:
https://api.nsfwaiapi.com/v1แอปบางตัวต้องการเส้นทางเต็มลงท้ายด้วย/chat/completions; หากแอปขอ Base URL ให้หยุดที่/v1 - API key: คีย์ของคุณ ส่งเป็น bearer token
- Model:
uncensoredหากแอปสามารถดึงรายการโมเดลได้ มันสามารถเรียกGET /v1/modelsได้ - Streaming: เปิดอยู่ คำตอบจะปรากฏเมื่อเขียน และแอปสามารถหยุดก่อนหน้าได้หากคุณไม่ชอบทิศทางนั้น
สำหรับการสุ่มตัวอย่าง อุณหภูมิประมาณ 0.8 ถึง 1.0 เหมาะกับข้อความเชิงบรรยาย พร้อมค่า top_p ใกล้ 0.95 การปรับค่าปรับความถี่หรือการปรากฏเล็กน้อยจะลดวลีที่ซ้ำกันซึ่งบทสนทนาที่ยาวมักสะสม เพิ่มค่าปรับเฉพาะเมื่อคุณเห็นการซ้ำซ้อน เนื่องจากค่าสูงทำให้บทบรรยายหลีกเลี่ยงอย่างแปลกๆ ลำดับหยุดจะถูกส่งผ่าน ดังนั้นการเพิ่มชื่อผู้เล่นตามด้วยเครื่องหมายโคลอนเป็นสตริงหยุดจะช่วยหากโมเดลพยายามพูดแทนคุณ ตั้งขนาดหน้าต่างบริบทของแอปตามจำนวนที่คุณยินดีจ่าย; คุณไม่จำเป็นต้องเติมโทเคนทั้งหมด 100,000 โทเคน
ให้คำนึงถึงการทำงานพร้อมกันหากคุณเปิดแท็บแชทหลายแท็บหรือบอทสำหรับเพื่อน คีย์แบบเต็มอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที และคีย์ทดลองอนุญาตให้ทำ 2 และ 60 คำขอ คำตอบแบบสตรีมมิงจะครอบครองช่องของมันจนกว่าสตรีมจะสิ้นสุด ดังนั้นแท็บที่ค้างอยู่อาจใช้ช่องไปจนหมด หน้า docs แสดงขีดจำกัดและเฮดเดอร์การตอบกลับ รวมถึง X-Balance-USD ซึ่งแสดงเครดิตที่เหลือของคุณ
Routine เล็กๆ ที่ทำให้เรื่องราวยาวๆ มีสุขภาพดี
เซสชันบทบาทสมมติที่ยาวนานมักเกิดปัญหาในรูปแบบที่คาดเดาได้ และนิสัยไม่กี่อย่างก็ช่วยป้องกันปัญหาส่วนใหญ่ได้ เขียนสรุปเรื่องราวสั้นๆ ทุกๆ 20 หรือ 30 รอบ และเก็บไว้ใกล้ส่วนบนของพรอมต์ หลังจากข้อความระบบ อัปเดตด้วยตนเองหรือขอให้โมเดลสร้างให้ แล้วตรวจสอบว่าชื่อ สถานที่ และคำสัญญาที่ยังค้างอยู่ยังคงอยู่ ล็อกข้อเท็จจริงที่ต้องไม่ลืม เช่น ความสัมพันธ์และเส้นเรื่องที่ยังไม่จบ ไว้ในข้อความระบบเอง
หากคำตอบไปในทิศทางที่คุณไม่ชอบ ให้สร้างใหม่แทนที่จะโต้แย้งกับมันในแชท การโต้แย้งจะปนเปื้อนประวัติและสอนโมเดลว่าฉากนั้นเกี่ยวกับการโต้แย้ง เมื่อคุณต้องการควบคุม ให้เพิ่มบรรทัดที่ชัดเจนหนึ่งบรรทัดในวงเล็บ เช่น หมายเหตุเกี่ยวกับอารมณ์ของฉากถัดไป และปล่อยให้คำตอบถัดไปรับมันไป รักษาชื่อตัวละครให้สอดคล้องกันและให้ตัวละครที่ไม่ใช่ผู้เล่นมีโน้ตเสียงหนึ่งบรรทัด เพราะโมเดลมักทำให้ตัวละครที่เสียงคล้ายกันดูคล้ายกัน
ขีดจำกัดที่แท้จริงของโมเดลนี้
นี่คือโมเดลแบบเปิดน้ำหนักหนึ่งตัว ที่ดำเนินการโดยผู้ให้บริการอิสระและปรับแต่งให้ตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย ไม่ใช่ API ทางการของผู้ขายโมเดลรายใดรายหนึ่ง และไม่ใช่ตัวกลางที่เชื่อมต่อหลายโมเดล คุณไม่สามารถเลือกโมเดลได้ และไม่ควรคาดหวังว่ามันจะเทียบเท่าโมเดลแบบปิดที่ดีที่สุดในทุกงาน
มันสร้างข้อความเท่านั้น ไม่มีภาพสำหรับตัวละครของคุณ ไม่มีเสียง และไม่มี embedding สำหรับการค้นหา lorebook ดังนั้นหากคุณต้องการภาพประกอบหรือเสียง คุณต้องเพิ่มบริการแยกต่างหากสำหรับแต่ละอย่าง นอกจากนี้ยังไม่มี fine-tuning คุณภาพยังขึ้นอยู่กับพรอมต์ของคุณ: พรอมต์ระบบที่คลุมเครือให้เรื่องแต่งที่คลุมเครือ และโปรไฟล์ตัวละครที่ดีพร้อมตัวอย่างบทสนทนาทำได้ดีกว่าการปรับค่า sampling ใดๆ
มีกฎหนึ่งที่ใช้ได้คงที่ เนื้อหาทางเพศที่เกี่ยวข้องกับ ผู้เยาว์ ไม่อนุญาต และการตั้งค่าที่พยายามผลิตเนื้อหาดังกล่าวจะไม่ได้รับการสนับสนุน ให้ตัวละครเป็นผู้ใหญ่ และการใช้งานของคุณถูกต้องตามกฎหมาย สำหรับเรื่องแต่ง แอปเพื่อน companion และแชทตัวละครที่สร้างสำหรับผู้ใหญ่ ส่วนที่มีประโยชน์คือจำนวนการปฏิเสธที่น้อยลงและหน้าต่างบริบทที่ยาว
คู่มือเพิ่มเติม
ถาม-ตอบ
LLM ในเครื่องดีกว่า API แบบโฮสต์สำหรับบทบาทสมมติหรือไม่?
ไม่มีตัวเลือกใดชนะในทุกด้าน การรันในเครื่องให้คุณเป็นส่วนตัวแบบออฟไลน์และไม่มีต้นทุนต่อโทเคน ในขณะที่แบบโฮสต์ให้คุณหน้าต่างบริบทที่ยาวกว่าและไม่มีขีดจำกัดฮาร์ดแวร์ หลายคนใช้ทั้งสองแบบ
สามารถใช้ SillyTavern กับ API นี้ได้หรือไม่
ได้ SillyTavern และแอปคล้ายกันรองรับเอนด์พอยต์ที่เข้ากันได้กับ OpenAI แบบไม่เซ็นเซอร์ พร้อมพรอมต์ระบบที่ใช้งานได้จริงและการตั้งค่าไคลเอนต์ OpenAI ให้ใส่ https://api.nsfwaiapi.com/v1 เป็น URL คีย์ของคุณ และ model ID uncensored
เซสชันบทบาทสมมติสามารถใช้หน้าต่างบริบทได้มากแค่ไหน
หน้าต่างบริบทมีขนาด 100,000 โทเคน โดยนับรวมพรอมต์และการตอบกลับ การสนทนาที่ยาวนานมีค่าใช้จ่ายมากขึ้นเนื่องจากประวัติจะถูกส่งในทุกเทิร์น
มันสร้างภาพหรือเสียงสำหรับตัวละครของฉันหรือไม่
ไม่ใช่ บริการมีเฉพาะข้อความ ไม่มีสร้างรูปภาพ เสียง วิดีโอ หรือ embeddings
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด
รับคีย์ APINsfwAiApiAPI LLM แบบไม่เซ็นเซอร์สำหรับการสร้างข้อความ NSFW