Ollama API: วิธีทำงานและทางเลือกอื่น

Ollama API ให้อินเทอร์เฟซมาตรฐานสำหรับการรัน LLM ในเครื่อง แต่สำหรับนักพัฒนาที่ต้องการความน่าเชื่อถือระดับการผลิตโดยไม่ต้องโฮสต์เอง ทางเลือกแบบโฮสต์ที่เข้ากันได้ทันทีจะให้ความได้เปรียบด้านการดำเนินงานที่สำคัญ คู่มือนี้อธิบายวิธีการผสานรวมกับระบบนิเวศ Ollama API เข้าใจข้อจำกัด และประเมินเมื่อเอนด์พอยต์แบบโฮสต์ที่ไม่มีการเซ็นเซอร์เป็นทางเลือกที่สมเหตุสมผลสำหรับสายงานของคุณ
ไม่ต้องใช้บัตร หลังจากสมัครแล้ว รับเครดิตทดสอบฟรี $0.50 ด้วยคลิกเดียว (คนละหนึ่งครั้ง)
รับคีย์ APIประเด็นสำคัญ
- API มาตรฐานของ Ollama ถูกปรับให้เหมาะสมสำหรับการอนุมานในเครื่อง ซึ่งคุณต้องจัดการฮาร์ดแวร์ การอัปเดต และเวลาทำงานเอง
- ทางเลือกแบบโฮสต์เสนอไวยากรณ์ที่เข้ากันได้กับ OpenAI เหมือนกัน ลดภาระโครงสร้างพื้นฐานขณะรองรับโมเดลแบบไม่เซ็นเซอร์
- หน้าต่างบริบทและขีดจำกัดโทเคนแตกต่างกันอย่างมากระหว่างการใช้งานในเครื่องและบริการที่โฮสต์ ส่งผลต่อการออกแบบพรอมต์
- สตรีมมิง การเรียกใช้ฟังก์ชัน และโหมด JSON เป็นฟีเจอร์มาตรฐานในระบบนิเวศทั้งสอง แต่การจัดการข้อผิดพลาดแตกต่างกันในการนำไปปฏิบัติ
เข้าใจหน้าต่างบริบท
หน้าต่างบริบทกำหนดจำนวนโทเคนทั้งหมดที่ LLM สามารถประมวลผลได้ในคำขอเดียว โดยรวมทั้งพรอมต์ขาเข้าและผลลัพธ์ที่สร้าง ในการใช้งาน Ollama ในเครื่อง ขีดจำกัดนี้ถูกกำหนดโดย VRAM และ RAM ของระบบที่มีอยู่ หากโมเดลของคุณเกินข้อจำกัดทางกายภาพเหล่านี้ การอนุมานจะล้มเหลวหรือลดลงอย่างมาก ผู้ให้บริการ API แบบโฮสต์ เช่น ผู้ที่เสนอโมเดลแบบไม่เซ็นเซอร์ มักจะโฆษณาหน้าต่างบริบทคงที่—มักจะเป็น 100,000 โทเคนสำหรับสถาปัตยกรรมสมัยใหม่—ซึ่งช่วยให้คุณออกแบบสายงานด้วยขอบเขตที่คาดการณ์ได้
เมื่อทำการย้ายจาก Ollama แบบโลคอลไปยัง API แบบโฮสต์ คุณต้องคำนึงถึงการแบ่งระหว่างโทเคนอินพุตและเอาต์พุต บริการบางแห่งกำหนดขีดจำกัดเอาต์พุตสูงสุดแยกต่างหาก แม้หน้าต่างบริบททั้งหมดจะใหญ่กว่า ความแตกต่างนี้สำคัญมากสำหรับงานสร้างข้อความยาว การตั้งค่าแบบโลคอลอนุญาตให้คุณทดลองกับบริบทที่ใหญ่ขึ้นได้โดยการอัปเกรดฮาร์ดแวร์ ในขณะที่บริการแบบโฮสต์กำหนดขีดจำกัดที่เข้มงวดเพื่อรักษาประสิทธิภาพแบบมัลติเทแนนต์ ตรวจสอบการแบ่งอินพุต/เอาต์พุตเฉพาะของเอนด์พอยต์ที่คุณเลือกเสมอ เพื่อหลีกเลี่ยงข้อผิดพลาดการตัดทอนระหว่างการทำงาน
ข้อผิดพลาดการนับโทเคน
ความคลาดเคลื่อนในการแบ่งโทเคนเป็นแหล่งที่มาของข้อผิดพลาด API ที่พบบ่อย โดยเฉพาะเมื่อเปลี่ยนจากอินสแตนซ์ Ollama ในเครื่องไปยังบริการแบบโฮสต์ภายนอก โมเดลต่างกันใช้ตัวแบ่งโทเคนต่างกัน ทำให้ข้อความเดียวกันอาจให้จำนวนโทเคนที่แตกต่างกัน ตัวห่อ Ollama ในเครื่องมักประมาณการโทเคนจากไฟล์โมเดลที่โหลด ในขณะที่ API แบบโฮสต์นับอย่างเคร่งครัดตามตัวแบ่งโทเคนของโมเดลที่ให้บริการ สิ่งนี้อาจนำไปสู่การชนขีดจำกัดอัตราหรือการล้นหน้าต่างบริบทหากคุณพึ่งพาจำนวนโทเคนในเครื่องเพื่อจัดการคำขอ API ภายนอก
เพื่อลดข้อผิดพลาดเหล่านี้ ให้ใช้กลไกการนับโทเคนที่แข็งแกร่งในโค้ดไคลเอนต์ของคุณก่อนส่งคำขอ ใช้ไลบรารี tokenizer ทางการที่ตรงกับโมเดลของคุณ (เช่น tokenizer ของ Llama 3 หรือ Mistral) แทนการประมาณค่าจากจำนวนอักขระ เมื่อใช้ API แบบโฮสต์แบบ uncensored ให้ตรวจสอบว่าการแบ่งโทเคนตรงกับรูปแบบที่โมเดลคาดหวัง API บางแห่งมีเอนด์พอยต์เฉพาะสำหรับการนับโทเคน แต่การพึ่งพาการคำนวณฝั่งไคลเอนต์ช่วยให้แน่ใจว่าคุณอยู่ในหน้าต่าง 100,000 โทเคน
การจัดการการตอบสนองแบบสตรีมมิง
การตอบสนองแบบสตรีมมิงช่วยให้คุณได้รับเอาต์พุตของโมเดลแบบเรียลไทม์ ซึ่งปรับปรุงประสบการณ์ผู้ใช้สำหรับอินเทอร์เฟซแชทและงานสร้างข้อความยาว ทั้ง API Ollama ในเครื่องและทางเลือกแบบโฮสต์รองรับ Server-Sent Events (SSE) สำหรับการสตรีม อย่างไรก็ตาม โครงสร้างของชิ้นส่วนสตรีมอาจแตกต่างกัน อินสแตนซ์ Ollama ในเครื่องอาจรวมเมตาดาต้าในทุกชิ้นส่วน ในขณะที่ API แบบโฮสต์มักรวมสถิติการใช้งานหรือเหตุผลการหยุดลงในชิ้นส่วนสุดท้าย
เมื่อใช้งานสตรีมมิง ให้แน่ใจว่าไคลเอนต์ของคุณสามารถจัดการกับวัตถุ JSON ส่วนย่อยและประกอบกลับได้อย่างถูกต้อง ใน API แบบโฮสต์ที่ไม่เซ็นเซอร์ ชิ้นสุดท้ายมักจะมีวัตถุการตอบกลับที่สมบูรณ์ รวมถึงการใช้โทเคนและเหตุผลการสิ้นสุด หากคุณกำลังสร้างแอปพลิเคชันแชท ให้บัฟเฟอร์โทเคนสตรีมมิงและอัปเดต UI แบบเพิ่มทีละส่วน จัดการการตัดการเชื่อมต่ออย่างราบรื่นเสมอ เนื่องจากความไม่เสถียรของเครือข่ายสามารถรบกวนสตรีมได้แตกต่างจากความล้มเหลวของฮาร์ดแวร์โลคอล ทดสอบตัวแยกวิเคราะห์สตรีมมิงของคุณกับทั้งเอนด์พอยต์โลคอลและโฮสต์เพื่อให้แน่ใจในความสอดคล้องของโครงสร้างข้อมูล
การกำหนดค่าการเรียกใช้ฟังก์ชัน
การเรียกใช้ฟังก์ชันช่วยให้โมเดลส่งออกข้อมูลที่มีโครงสร้างที่แอปพลิเคชันของคุณสามารถดำเนินการแบบโปรแกรมได้ Ollama ในเครื่องรองรับการใช้งานเครื่องมือผ่านสถาปัตยกรรมโมเดลเฉพาะ แต่รายละเอียดการนำไปขึ้นอยู่กับการฝึกข้อมูลของโมเดล API แบบโฮสต์ทำให้มาตรฐานนี้โดยปฏิบัติตามแผนการเรียกใช้ฟังก์ชันของ OpenAI ทำให้คุณสามารถใช้ SDK ที่มีอยู่ได้ด้วยการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับงานเช่นการสกัดข้อมูล การกรอกแบบฟอร์ม หรือการเรียกใช้ API ภายนอก
เมื่อกำหนดค่าการเรียกใช้ฟังก์ชัน ให้กำหนดเครื่องมือของคุณอย่างชัดเจนด้วยชื่อ คำอธิบาย และสคีมาพารามิเตอร์ที่แยกจากกัน บริการทั้งแบบโลคอลและแบบโฮสต์ต้องการการปฏิบัติตามสคีมาเหล่านี้อย่างเคร่งครัด; เอาต์พุต JSON ที่ไม่ถูกต้องจะทำให้การแยกวิเคราะห์ล้มเหลว โมเดลแบบโฮสต์ที่ไม่เซ็นเซอร์มักจะทำได้ดีกับการเรียกใช้ฟังก์ชันเพราะมีแนวโน้มที่จะปฏิเสธคำจำกัดความของเครื่องมือที่ซับซ้อนหรือไม่ธรรมดาได้ต่ำลง ทดสอบเครื่องมือของคุณอย่างละเอียดกับกรณีขอบ เช่น พารามิเตอร์ที่ขาดหายหรือประเภทข้อมูลที่ไม่คาดคิด เพื่อให้แน่ใจว่าโมเดลจัดการกับสิ่งเหล่านั้นได้อย่างราบรื่น จำไว้ว่าการเรียกใช้ฟังก์ชันใช้โทเคน ดังนั้นให้ติดตามการใช้งานของคุณเพื่อให้อยู่ในขีดจำกัดอัตรา
การตรวจสอบโหมด JSON
โหมด JSON บังคับให้โมเดลสร้างผลลัพธ์เป็น JSON ที่ถูกต้องตามหลักไวยากรณ์ ซึ่งจำเป็นสำหรับการบริโภคแบบโปรแกรมมิ่ง อินสแตนซ์ Ollama แบบโลคอลรองรับสิ่งนี้ผ่านพารามิเตอร์ format แต่ความเข้มงวดแตกต่างกันไปตามโมเดล API แบบโฮสต์มักบังคับใช้โหมด JSON แบบเข้มงวดโดยการปฏิเสธเอาต์พุตใดๆ ที่ไม่ตรงกับสคีมาที่กำหนด สิ่งนี้ลดความจำเป็นในการประมวลผลหลังการรับและจัดการข้อผิดพลาดในโค้ดแอปพลิเคชันของคุณ
เพื่อใช้โหมด JSON อย่างมีประสิทธิภาพ ให้ให้สคีมาที่ชัดเจนในคำขอของคุณ กำหนดฟิลด์ที่ต้องการ ประเภทข้อมูล และข้อจำกัด หากโมเดลสร้าง JSON ที่ไม่ถูกต้อง API จะส่งข้อผิดพลาดกลับมาโดยปกติ ซึ่งทำให้คุณสามารถลองใหม่ด้วยพรอมต์ที่ปรับแล้ว ใน API แบบโฮสต์ที่ไม่เซ็นเซอร์ โหมด JSON มีความน่าเชื่อถือเพราะโมเดลได้รับการปรับแต่งเพื่อความแม่นยำ ตรวจสอบเอาต์พุตด้วยตัวแยกวิเคราะห์ JSON เสมอก่อนส่งไปยังตรรกะแอปพลิเคชันของคุณ สิ่งนี้ป้องกันข้อผิดพลาดระหว่างการทำงานที่เกิดจากสตริงที่ผิดรูปแบบหรือวงเล็บที่หายไป
การจำกัดอัตรา (300 RPM)
ขีดจำกัดอัตราปกป้องโครงสร้างพื้นฐาน API จากภาระเกินและรับประกันการใช้งานที่เป็นธรรม อินสแตนซ์ Ollama ในเครื่องไม่มีขีดจำกัดอัตราโดยเนื้อแท้ ซึ่งถูกจำกัดเพียงฮาร์ดแวร์ของคุณ บริการแบบโฮสต์บังคับใช้ขีดจำกัดที่เข้มงวด เช่น 300 คำขอต่อนาทีต่อคีย์ API ขีดจำกัดนี้ใช้กับทั้งคำขอที่สำเร็จและล้มเหลว ดังนั้นโค้ดที่ไม่มีประสิทธิภาพอาจทำให้โควตาของคุณหมดลงอย่างรวดเร็ว
ใช้งานการหน่วงเวลาแบบเอกซ์โพเนนเชียลในโค้ดไคลเอนต์ของคุณเพื่อจัดการข้อผิดพลาดขีดจำกัดอัตราอย่างราบรื่น ติดตามเมตริกการใช้งานของคุณเพื่อคาดการณ์ขีดจำกัดก่อนที่จะถึง บริการโฮสต์บางแห่งยังกำหนดขีดจำกัดคำขอพร้อมกัน เช่น 8 คำขอพร้อมกันต่อคีย์ สิ่งนี้หมายความว่าคุณไม่สามารถส่งจำนวนมากไปยัง API ด้วยคำขอพร้อมกันโดยไม่ทำให้เกิดข้อผิดพลาด สำหรับแอปพลิเคชันที่มีปริมาณข้อมูลสูง ให้พิจารณาใช้คีย์ API หลายคีย์เพื่อกระจายโหลด ตรวจสอบเอกสาร API เสมอสำหรับรายละเอียดขีดจำกัดอัตราเฉพาะ เนื่องจากแตกต่างกันไปตามผู้ให้บริการและแผน
ปัญหาการชำระเงินและเครดิต
API แบบโฮสต์โดยทั่วไปทำงานบนโมเดลเครดิตแบบเติมเงินล่วงหน้า โดยที่คุณจ่ายสำหรับการใช้งานโทเคนจริง ค่าใช้จ่ายคำนวณจากโทเคนขาเข้าและขาออก โดยมีอัตราที่แตกต่างกันสำหรับแต่ละตัวอย่างเช่น โทเคนขาเข้าอาจมีราคา $0.15 ต่อล้าน ในขณะที่โทเคนขาออกมีราคา $0.50 ต่อล้าน ข้อผิดพลาดและการปฏิเสธมักจะไม่เสียค่าใช้จ่าย ซึ่งลดการสูญเสีย เครดิตโดยทั่วไปไม่หมดอายุ ทำให้คุณสามารถเติมเงินได้ตามต้องการ
วิธีการชำระเงินมีความหลากหลาย โดยบริการหลายแห่งชอบใช้คริปโตเพื่อความเป็นส่วนตัวและความเร็ว จำนวนการเติมเงินขั้นต่ำ เช่น $20 และโครงสร้างโบนัสสำหรับการฝากเงินจำนวนมากขึ้นเป็นเรื่องปกติ หากคุณพบปัญหาการเรียกเก็บเงิน เช่น การหักเงินสองครั้ง ให้ติดต่อฝ่ายสนับสนุนเพื่อแก้ไข ต่างจากโมเดลสมาชิกแบบสมัครสมาชิก เครดิตแบบเติมเงินล่วงหน้าให้คุณควบคุมการใช้จ่ายได้อย่างเต็มที่ ตรวจสอบแดชบอร์ดการใช้งานของคุณเสมอเพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่คาดคิด สำหรับนักพัฒนาที่กำลังทดสอบการผสานรวม ผู้ให้บริการหลายรายให้เครดิตทดลองใช้ฟรีจำนวนเล็กน้อย ซึ่งช่วยให้คุณตรวจสอบการตั้งค่าของคุณได้โดยไม่ต้องชำระเงินทันที
ตรรกะการปฏิเสธเนื้อหา
การปฏิเสธเนื้อหาคือการกำหนดว่า LLM จะบล็อกหัวข้อเฉพาะเมื่อใด เช่น เนื้อสำหรับผู้ใหญ่หรือมุมมองทางการเมืองที่ถกเถกัน โมเดล Ollama ในท้องถิ่นมีความหลากหลายในพฤติกรรมการปฏิเสธ ขึ้นอยู่กับโมเดลพื้นฐานและการปรับแต่ง API uncensored ที่โฮสต์ไว้ถูกออกแบบมาเพื่อลดการปฏิเสธสำหรับเนื้อผู้ใหญ่ที่ถูกต้องตามกฎหมาย การวิจัยด้านความปลอดภัย และหัวข้อที่ถกเถกัน ทำให้เหมาะสำหรับแอปพลิเคชันที่ให้ความสำคัญกับอิสระทางความคิดมากกว่าความปลอดภัยของแบรนด์
อย่างไรก็ตาม การไม่เซ็นเซอร์ไม่ได้หมายความว่าไม่มีข้อจำกัด บริการแบบโฮสต์ส่วนใหญ่ยังคงบังคับใช้ขีดจำกัดแข็ง เช่น การบล็อกเนื้อหาที่เกี่ยวข้องกับเด็ก การปฏิเสธมักจะถูกบ่งชี้โดย finish reason เฉพาะในการตอบกลับของ API เมื่อผสานรวม ให้จัดการการปฏิเสธเหล่านี้อย่างสุภาพโดยบันทึกและปรับตรรกะแอปพลิเคชันของคุณหากจำเป็น ตัวอย่างเช่น หากผู้ใช้ขอเนื้อหาประเภทเฉพาะที่ถูกบล็อก ให้แจ้งให้พวกเขาทราบอย่างชัดเจนโดยไม่ทำลายประสบการณ์ผู้ใช้ การเข้าใจขอบเขตเหล่านี้ช่วยให้คุณออกแบบแอปพลิเคชันที่แข็งแกร่งมากขึ้น
คู่มือเพิ่มเติม
ถาม-ตอบ
Ollama API เหมือนกับ OpenAI API หรือไม่
ไม่ แต่เข้ากันได้ API ของ Ollama มีโครงสร้างคล้ายกับของ OpenAI โดยใช้ endpoint เช่น /v1/chat/completions อย่างไรก็ตาม Ollama ในท้องถิ่นอาจมีพฤติกรรมการเริ่มต้นใช้งานสำหรับ streaming และการแบ่ง token ที่แตกต่างกัน API ที่โฮสต์ไว้มักเลียนแบบ schema ของ OpenAI อย่างแม่นยำเพื่อการโยกย้ายที่ง่ายขึ้น
ฉันสามารถใช้ Ollama สำหรับ function calling ได้หรือไม่
ได้ แต่ขึ้นอยู่กับโมเดล โมเดล Ollama ในท้องถิ่นทั้งหมดไม่รองรับ function calling API uncensored ที่โฮสต์ไว้โดยทั่วไปรองรับ function calling แบบมาตรฐานของ OpenAI ทำให้ผสานรวมกับเครื่องมือที่มีอยู่ได้ง่ายขึ้น
ฉันจัดการข้อผิดพลาดการนับ token ได้อย่างไร
ใช้ tokenizer ทางการสำหรับโมเดลของคุณเพื่อนับ token ให้แม่นยำก่อนส่งคำขอ การพึ่งพาการนับจำนวนอักขระหรือการประมาณการในท้องถิ่นอาจนำไปสู่ context overflow ได้ ตรวจสอบจำนวน token เทียบกับขีดจำกัดของ API เพื่อหลีกเลี่ยงข้อผิดพลาด
เกิดอะไรขึ้นหากฉันเกินขีดจำกัดอัตรา?
API จะส่งข้อผิดพลาด 429 Too Many Requests ใช้การถอยหลังแบบเอกซ์โพเนนเชียลในโค้ดไคลเอนต์ของคุณเพื่อลองใหม่หลังจากหยุดชั่วคราว พิจารณาใช้คีย์ API หลายคีย์เพื่อกระจายโหลดหากคุณต้องการ throughput ที่สูงขึ้น