th ▾
สร้างคีย์

Ollama API: การแก้ปัญหาข้อผิดพลาดทั่วไป

API ollama เป็นอินเทอร์เฟซมาตรฐานสำหรับการเชื่อมต่อโมเดลแบบโลคอลหรือโฮสต์เข้ากับเครื่องมือภายนอก แต่หลายครั้งนักพัฒนาพบอุปสรรคเมื่อเปลี่ยนจากการอนุมานแบบโลคอลไปยัง endpoint แบบระยะไกล คู่มือนี้เจาะลึกข้อผิดพลาดในการกำหนดค่าที่แน่นอน ขอบเขต tokens และข้อจำกัดของ streaming ที่ทำให้การเชื่อมต่อล้มเหลว

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

สรุป

  • ความล้มเหลวในการผสานรวมส่วนใหญ่เกิดจาก URL พื้นฐานที่ไม่ถูกต้องหรือส่วนหัวการตรวจสอบสิทธิ์ที่ขาดหายไประหว่างการแทนที่ Ollama ท้องถิ่นด้วยจุดปลายระยะไกล
  • หน้าต่างบริบท 100k รวมทั้งโทเคนอินพุตและเอาต์พุต ซึ่งลดพื้นที่ที่มีอยู่สำหรับบทสนทนาที่ยาวลงอย่างมาก
  • การตอบสนองแบบสตรีมต้องการการแยกวิเคราะห์ชิ้นส่วน SSE อย่างถูกต้อง เนื่องจากข้อมูลเมตาการใช้งานโทเค็นจะปรากฏเฉพาะในชิ้นส่วนสุดท้ายเท่านั้น
  • Function calling และ JSON mode ต้องการการตรวจสอบสคีมาอย่างเข้มงวด มิฉะนั้นโมเดลจะส่งคืน JSON ที่มีรูปแบบไม่ถูกต้อง

ทำความเข้าใจหน้าต่างบริบทขนาด 100k

ประโยคแรกของแต่ละส่วนตอบคำถามในหัวข้อของมัน

หน้าต่างบริบทขนาด 100,000 token ดูใหญ่โต แต่จะถูกแบ่งเท่าๆ กันระหว่าง input prompt และ output completion เมื่อคุณส่ง system prompt ยาวๆ พร้อมประวัติการสนทนาที่ยาว คุณจะใช้งบประมาณนั้นเร็วกว่าที่คาดไว้ นักพัฒนาหลายคนคิดว่าขีดจำกัดนี้ใช้กับ input เท่านั้น ซึ่งนำไปสู่ response ที่ถูกตัดทอนหรือความล้มเหลวแบบเงียบๆ เมื่อโมเดลชนเพดาน

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

โทเค็นสูงสุด vs ความยาวเอาต์พุตเริ่มต้น

แต่ละส่วนต้องตอบคำถามในหัวข้อของมัน

หากคุณไม่ได้ระบุขีดจำกัด API ส่วนใหญ่จะกำหนดความยาวของผลลัพธ์แบบค่าเริ่มต้นที่ค่อนข้างต่ำ ซึ่งมักอยู่ที่ประมาณ 2,048 tokens ค่าเริ่มต้นนี้มีประโยชน์สำหรับคำถามสั้น ๆ แต่อาจ disastrous สำหรับการสร้างโค้ดหรือการเขียนแบบยาว หากคุณต้องการให้โมเดลสร้างสคริปต์เต็มรูปแบบหรือการวิเคราะห์โดยละเอียด คุณต้องตั้งค่าพารามิเตอร์ max_tokens อย่างชัดเจน

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

การจัดการชิ้นส่วนสตรีม SSE อย่างถูกต้อง

การสตรีมต้องการการจัดการ Server-Sent Events อย่างระมัดระวังเพื่อหลีกเลี่ยงการสูญเสียข้อมูล

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

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

ข้อผิดพลาดนิยามเครื่องมือของ Function Calling

การเรียกฟังก์ชันล้มเหลวเมื่อสคีมาเครื่องมือไม่ตรงกับสิ่งที่โมเดลคาดหวัง

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

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

ปัญหารูปแบบการตอบกลับโหมด JSON

โหมด JSON บังคับให้โมเดลแสดงผล JSON ที่ถูกต้อง แต่โมเดลอาจยังสร้างข้อมูลขึ้นมาเองได้

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

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

อัตราจำกัดและคำขอพร้อมกัน

อัตราจำกัดการเรียกใช้ถูกบังคับใช้ต่อคีย์ API ไม่ใช่ต่อผู้ใช้หรือที่อยู่ IP

API ส่วนใหญ่กำหนดขีดจำกัดบนจำนวนคำขอต่อนาทีและการเชื่อมต่อพร้อมกัน หากคุณเกินขีดจำกัดเหล่านี้ คุณจะรับข้อผิดพลาด 429 Too Many Requests สิ่งนี้สำคัญมากสำหรับแอปพลิเคชันที่สร้างเธรดหรือกระบวนการหลายตัวเพื่อจัดการคำขอของผู้ใช้ คีย์เดียวสามารถจัดการคำขอแบบขนานได้จำกัดจำนวน

เพื่อจัดการปัญหานี้ ให้ใช้กลไก exponential backoff ในโค้ดไคลเอนต์ของคุณ เมื่อได้รับข้อผิดพลาด 429 ให้รอพักสักครู่ก่อนทำการเรียกใหม่ วิธีนี้จะช่วยไม่ให้เซิร์ฟเวอร์ทำงานหนักเกินไปและสร้างประสบการณ์ผู้ใช้ที่ราบรื่นยิ่งขึ้น ควรตรวจสอบส่วนหัว (headers) ของการตอบกลับเสมอเพื่อหาค่า retry-after เพื่อปรับเวลาการรอให้เหมาะสม

API Key Replacement Behavior

Regenerating an API key invalidates the previous one immediately.

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

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

ข้อจำกัดขนาดร่างกายคำขอ

payload ขนาดใหญ่อาจเกินขีดจำกัด body request 8 MB

เมื่อส่งเอกสารหรือรูปภาพที่ยาวซึ่งเข้ารหัสเป็น base64 ร่างขออาจมีขนาดใหญ่ขึ้นอย่างรวดเร็ว หากคุณเกินขีดจำกัดขนาด เซิร์ฟเวอร์จะปฏิเสธคำขอด้วยข้อผิดพลาด 413 Payload Too Large นี่คือขีดจำกัดแข็งที่ไม่สามารถเพิ่มขึ้นได้โดยการอัปเกรดแผนของคุณในหลายกรณี

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

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

LLM แบบไม่มีการกรองเนื้อหารองพารามิเตอร์เดียวกับโมเดลมาตรฐานหรือไม่?

ใช่ engine แบบ uncensored รองรับพารามิเตอร์มาตรฐานเช่น temperature, top_p และลำดับ stop ออกแบบมาให้เป็นตัวเลือกแทนโมเดลมาตรฐาน ดังนั้นคุณสามารถใช้โค้ดไคลเอนต์และพารามิเตอร์ที่คุณคุ้นเคยอยู่แล้วได้

คีย์ API ของ ollama ปลอดภัยสำหรับการใช้งานในสภาพแวดล้อมการผลิตหรือไม่?

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

Can I use this uncensored AI model for commercial projects?

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

ฉันจะจัดการข้อผิดพลาดเมื่อโมเดล ollama uncensored ส่งคืน JSON ไม่ถูกต้องได้อย่างไร?

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

รับคีย์ API ในไม่กี่วินาที

ลงทะเบียน คัดลอกคีย์ อัปเดต URL ของ endpoint เพียงเท่านี้ก็เพียงพอแล้ว

สร้างคีย์