คำตอบสั้นๆ: การตั้งค่าในห้าขั้นตอน
คู่มือข้อมูลโลก (World Info) ของ SillyTavern นี้เริ่มต้นด้วยส่วนที่ผู้คนส่วนใหญ่ต้องการก่อน เพื่อใช้ข้อมูลโลกกับ API นี้ คุณเชื่อมต่อ SillyTavern กับเอนด์พอยต์ เพิ่มขนาดบริบท จากนั้นสร้างรายการที่เหมาะกับงบประมาณโทเคน
- สร้าง API key บน key page
- ใน SillyTavern เปิดแผงการเชื่อมต่อ API เลือก Chat Completion และเลือกแหล่งข้อมูลแบบกำหนดเอง (เข้ากันได้กับ OpenAI)
- ตั้งค่า URL ของเอนด์พอยต์เป็น
https://api.uncensoredvideo.top/v1วางคีย์ และใส่uncensoredเป็น ID ของโมเดล - ตั้งค่าขนาดหน้าต่างบริบทให้ตรงกับหน้าต่าง 100,000 โทเคน โดยเหลือพื้นที่สำหรับคำตอบ
- เปิด World Info สร้างหนังสือ แนบกับตัวละครหรือแชทของคุณ และปรับการตั้งค่างบประมาณตามที่กล่าวถึงด้านล่าง
ป้ายเมนูเปลี่ยนไปตามเวอร์ชันของ SillyTavern ดังนั้นให้ใช้ชื่อเหล่านี้เป็นแผนที่มากกว่าข้อความที่ตรงกันเป๊ะ ชื่อเว็บไซต์ระบุว่าเป็นวิดีโอ แต่บริการนี้เป็น API ข้อความ: มีโมเดลแบบเปิดน้ำหนักหนึ่งตัว ซึ่งปรับแต่งมาให้ตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย โดยไม่มีการสร้างภาพ เสียง หรือวิดีโอ เนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์ไม่อนุญาต
ทดสอบ endpoint ก่อนแก้ไข SillyTavern
เมื่อการเชื่อมต่อล้มเหลว สาเหตุเกือบทุกครั้งคือการพิมพ์ URL หรือคีย์ผิด การทดสอบแบบบรรทัดเดียวช่วยประหยัดการลองผิดลองถูก สิ่งนี้จะแสดงโมเดลที่มีให้:
curl https://api.uncensoredvideo.top/v1/models -H "Authorization: Bearer YOUR_KEY"
จากนั้นส่งคำขอ chat completion สั้นๆ เพื่อยืนยันว่าการสร้างข้อความทำงานได้:
curl https://api.uncensoredvideo.top/v1/chat/completions -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}],"max_tokens":10}'
หากทั้งสองอย่างส่ง JSON กลับมา SillyTavern จะเชื่อมต่อด้วยค่าเดียวกัน Base URL ลงท้ายด้วย /v1 และไม่มี /chat/completions; SillyTavern เพิ่ม path เอง A 401 หมายถึง key ผิด เอกสารอ้างอิงคำขอเต็มรูปแบบอยู่ใน API docs
เหตุผลที่ World Info ต้องการหน้าต่างขนาดใหญ่
ข้อมูลโลก (World Info) หรือที่เรียกว่าหนังสือตำนาน (lorebook) จะเพิ่มรายการเข้าสู่พรอมต์เมื่อพบคำสำคัญในแชทล่าสุด จุดประสงค์คือเก็บโลกขนาดใหญ่ไว้ภายนอกพรอมต์จนกว่าจะมีความเกี่ยวข้อง แต่รายการยังคงอยู่ในพรอมต์เมื่อถูกเรียกใช้ ใกล้กับการ์ดตัวละคร ประวัติแชท และพรอมต์ระบบของคุณ บนหน้าต่างขนาดเล็ก ทุกอย่างแข่งขันกันเพื่อพื้นที่ และหนังสือตำนานจะแพ้
หน้าต่างขนาด 100,000 โทเคน ซึ่งครอบคลุมทั้งพรอมต์และการสร้างข้อความ เปลี่ยนสมดุลไป คุณมีความจุสำหรับการ์ดตัวละครที่ยาว ประวัติแชท 50 ข้อความขึ้นไป และรายการตำนานหลายรายการพร้อมกัน หน้าต่างไม่ได้หมายความว่าคุณควรเติมเต็มมัน พรอมต์ที่ยาวกว่าประมวลผลช้ากว่า มีค่าใช้จ่ายต่อข้อความมากขึ้น และทำให้โมเดลมีเนื้อหาที่ต้องเพิกเฉยมากขึ้น เป้าหมายคือบริบทที่เกี่ยวข้อง ไม่ใช่บริบทสูงสุด
การแบ่งส่วนที่ใช้งานได้สำหรับหน้าต่าง 100,000 โทเคน:
- การ์ดตัวละครและบุคลิก: 1,500 ถึง 3,000 โทเคน
- งบประมาณ World Info: 4,000 ถึง 10,000 โทเคน
- ประวัติแชท: ส่วนที่เหลือทั้งหมดจนถึงขีดจำกัดที่คุณเลือก
- พื้นที่การตอบกลับ: 500 ถึง 1,500 โทเคน
ตัวเลขเหล่านี้เป็นคำแนะนำสำหรับการเล่นบทบาทสมมติทั่วไป ไม่ใช่ข้อกำหนดของ API การใช้งานส่วนใหญ่ไม่จำเป็นต้องใช้ค่าสูงสุด
การสร้างรายการที่ใช้งานได้
คีย์เวิร์ดและเนื้อหา
แต่ละรายการมีคีย์เวิร์ดหลักที่กระตุ้นการทำงานและฟิลด์เนื้อหาที่จะถูกฉีดเข้าไป เขียนคีย์เวิร์ดในรูปแบบที่ผู้เล่นพูดจริงๆ สำหรับเมือง ให้เพิ่มชื่อ ชื่อเล่น และชื่อเขต การจับคู่รายการจะตรวจสอบจากข้อความล่าสุด ดังนั้นคีย์เวิร์ดที่ปรากฏเฉพาะในข้อความ lore เท่านั้นจะไม่ถูกเรียกใช้งาน
เก็บเนื้อหาให้สั้นและ factual
เขียนรายการเป็นประโยคกระชับ ไม่ใช่บทประพันธ์ เปรียบเทียบสองข้อนี้:
Harrow Quay: เขตท่าเรือ ควบคุมโดย Salt Guild ยอมรับการลักลอบ แต่ไม่ยอมรับการฆ่า กำหนดเวลาปิดเมืองตอนเที่ยงคืน บังคับโดยยามรับจ้าง
ย่อหน้าบรรยากาศสำหรับสถานที่เดียวกันอาจยาวเป็นสี่เท่าและเพิ่มเนื้อหาที่โมเดลสามารถประดิษฐ์ขึ้นเองได้น้อยมาก ควรสงวนรายการยาวๆ สำหรับข้อเท็จจริงที่โมเดลต้องจำได้ถูกต้อง: ชื่อ, กฎเวทมนตร์, ใครเป็นหนี้ใคร
รายการแบบคงที่ เลือกเฉพาะ และแบบวนซ้ำ
- รายการคงที่ จะถูกเพิ่มเสมอ ใช้สำหรับกฎที่ใช้กับทุกฉาก เช่น บรรยากาศของฉากหรือวิธีการทำงานของเวทมนตร์ และควรเก็บจำนวนให้เล็กน้อย
- รายการแบบเลือกได้ ใช้คำสำคัญรองเป็นตัวกรอง ดังนั้น "มังกร" จะทำงานเฉพาะเมื่อ "ถ้ำ" ถูกกล่าวถึงด้วย
- การสแกนแบบวนซ้ำ ทำให้ข้อความของรายการหนึ่งสามารถกระตุ้นรายการอื่นได้ มีประสิทธิภาพสำหรับตำนานที่เชื่อมโยงกัน และอาจดึงข้อมูลมากกว่าที่คุณคาดไว้ ควรตั้งขีดจำกัดจำนวนขั้นตอนการวนซ้ำ
ตำแหน่งและลำดับ
รายการสามารถแทรกไว้ก่อนหรือหลังคำจำกัดความของตัวละคร หรือที่ความลึกที่กำหนดในแชท ความลึกที่ใกล้กับส่วนท้ายของประวัติจะทำให้ข้อเท็จจริงอยู่ใกล้กับข้อความล่าสุดที่สุด ซึ่งโมเดลมักจะให้น้ำหนักกับข้อความนั้นมากกว่า ค่าลำดับจะตัดสินว่ารายการใดจะอยู่รอดเมื่องบประมาณจำกัด ดังนั้นจึงควรกำหนดลำดับความสำคัญที่สูงกว่าให้กับตำนานที่สำคัญ
การตั้งค่าที่ควบคุมการใช้โทเคน
แผง World Info มีการควบคุมระดับโลกหลายรายการ ชื่ออาจแตกต่างกันไปตามเวอร์ชัน แต่การตั้งค่าเหล่านี้มีอยู่ในเวอร์ชันล่าสุด
| การตั้งค่า | สิ่งที่มันทำ | ค่าเริ่มต้น |
|---|---|---|
| ความลึกในการสแกน | จำนวนข้อความล่าสุดที่ค้นหาคำคีย์เวิร์ก | 4 ถึง 8 |
| งบประมาณ (เปอร์เซ็นต์ของหน้าต่างบริบท) | สัดส่วนของหน้าต่างบริบทที่ World Info สามารถใช้ได้ | 10 ถึง 15 เปอร์เซ็นต์ |
| เพดานงบประมาณ | เพดานโทเคนแบบแข็งสำหรับ World Info | 6,000 ถึง 10,000 |
| การกระตุ้นขั้นต่ำ | ทำการสแกนลึกเข้าไปเรื่อยๆ จนกว่าจะมีรายการเพียงพอที่จะทำงาน | 0 เว้นแต่คุณต้องการมัน |
| ขั้นการวนซ้ำ | ความยาวสูงสุดของโซ่สำหรับการกระตุ้นแบบวนซ้ำ | 2 ถึง 3 |
ความลึกในการสแกนที่มากขึ้นจะจับข้อมูลตำนานที่ถูกระบุไว้เมื่อไม่กี่รอบที่ผ่านมา ในราคาของการกระตุ้นผิดพลาดมากขึ้น ด้วย 100,000 โทเคนที่มีอยู่ งบประมาณสูงสุดเป็นเรื่องของการควบคุมค่าใช้จ่ายมากกว่าการพอดีกับหน้าต่าง หากคุณเห็นโมเดลเขียนเกี่ยวกับสิ่งที่ไม่เกี่ยวข้องอย่างกะทันหัน คำสำคัญกำลังทำงานกว้างเกินไป; ให้เปลี่ยนเป็นรายการแบบเลือกได้
นอกจากนี้ ให้ตรวจสอบการตั้งค่าประวัติการสนทนาใน SillyTavern ว่าไม่ได้ตัดข้อความก่อนเวลาที่คุณตั้งใจ หน้าต่างบริบทเป็นข้อจำกัดของสิ่งที่ SillyTavern ส่ง ดังนั้นหากยังคงอยู่ที่ค่าเริ่มต้นขนาดเล็ก หน้าต่างขนาดใหญ่จะไม่ได้ใช้งาน
ต้นทุนของเซสชันการเล่นบทบาท
ราคาคือ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens Roleplay ใช้ input มาก เนื่องจาก SillyTavern ส่ง character card, lore และประวัติแชทใหม่ในทุกข้อความ
ใช้พรอมต์ขนาด 12,000 โทเคน (การ์ดตัวละคร, รายการตำนานบางรายการ, ประวัติ) และการตอบกลับ 400 โทเคน
- อินพุต: 12,000 / 1,000,000 x $0.15 = $0.0018
- เอาต์พุต: 400 / 1,000,000 x $0.50 = $0.0002
- รวม: $0.002 ต่อข้อความ
ร้อยข้อความมีค่าใช้จ่าย $0.20 เครดิตทดลองใช้ฟรี $0.50 ครอบคลุมข้อความประมาณ 250 ข้อความในขนาดนี้ ผลักดัน prompt ไปที่ 40,000 โทเคน และการตอบกลับเดียวกันมีค่าใช้จ่าย 40,000 / 1,000,000 x $0.15 = $0.006 สำหรับ input บวก $0.0002 สำหรับ output ดังนั้น $0.0062 ต่อข้อความ และ เครดิตทดลองใช้อยู่ได้ประมาณ 80 ข้อความ (0.50 / 0.0062 มีค่าประมาณ 80.6) นั่นคือค่าใช้จ่ายของงบประมาณ lorebook ขนาดใหญ่และ ประวัติแชทยาว และนั่นคือเหตุผลสนับสนุนสำหรับ รายการที่กระชับ
รับเครดิตทดลองใช้ด้วยคลิกเดียวที่หน้าคีย์ API หลังสมัครสมาชิก ไม่ต้องใช้วิธีการชำระเงิน ใช้งานได้ 7 วัน และจำกัดหนึ่งต่อคน การเติมเงินเริ่มต้นที่ $20 ถึง $500 ในจำนวนเต็มใดๆ พร้อมโบนัส +5% จาก $50, +10% จาก $100 และ +15% จาก $200 เว็บไซต์นี้รองรับเฉพาะ crypto: USDT บน TRC20 หรือ USDC บน Base Credit ไม่หมดอายุ และคำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน รายละเอียดทั้งหมดอยู่ที่ หน้าราคา
การแก้ปัญหาและขีดจำกัด
คีย์แบบเต็มอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที คีย์ทดลองอนุญาตให้ทำ 2 และ 60 SillyTavern สามารถทำคำขอพร้อมกันเกินสองคำขอได้ด้วยการแชทกลุ่ม การสไลด์ที่รวดเร็ว หรือแท็บที่สอง และการตอบกลับแบบสตรีมจะครอบครองช่องของมันจนกว่าจะสิ้นสุด จากนั้น API จะตอบกลับ HTTP 429 ด้วยโค้ด concurrency การเกินขีดจำกัดอัตราคำขอจะส่งกลับ rate_limited และการโอเวอร์โหลดชั่วคราวจะมาพร้อมเฮดเดอร์ Retry-After: 5 การรอไม่กี่วินาทีแล้วลองใหม่ก็เพียงพอแล้ว
- การตอบกลับถูกตัดออก ตรวจสอบความยาวการตอบกลับสูงสุดใน SillyTavern มันตั้งค่า
max_tokensซึ่งไม่บังคับใน API นี้ - โลรไม่ทำงานเลย เพิ่มความลึกของการสแกน และตรวจสอบการสะกดคีย์เวิร์ดเทียบกับที่ปรากฏในแชท
- การตอบกลับไม่สนใจโลรที่ทำงานแล้ว ย้ายเอนทรีไปมีความลึกที่ใกล้กับส่วนล่างของประวัติ หรือย่อให้สั้นลงเพื่อให้โดดเด่น
- พรอมต์รู้สึกช้า ลดขีดจำกัดงบประมาณและความยาวของประวัติแชทก่อนที่จะโทษเอนด์พอยต์
สำหรับตัวละครที่พูดในสไตล์คงที่ ให้ตั้งค่า temperature ไว้ที่ประมาณ 0.8 ถึง 1.0 และเพิ่มค่าปรับความถี่เล็กน้อยหากโมเดลทำซ้ำประโยค พรอมต์ไม่ถูกใช้ในการฝึก โมเดลเป็นโมเดลแบบเปิดน้ำหนักตัวเดียวที่ให้บริการโดยผู้ให้บริการอิสระ ไม่ใช่ตัวกระจายการรับส่งระหว่างผู้ขายหลายราย ดังนั้นคุณภาพจึงขึ้นอยู่กับโมเดลตัวนั้นๆ ไม่ใช่กลุ่มรวม
