Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

การปรับปรุงโครงการ OpenAI ด้วย Redis &Upstash:กรณีการใช้งานและคุณสมบัติในอนาคต

เมื่อเร็วๆ นี้ เราสังเกตเห็นนักพัฒนาจำนวนมากรวม Upstash เข้ากับ OpenAI และ AI API อื่นๆ เช่น Google Cloud AI, IBM Watson กอดหน้า. ในโพสต์นี้ เราจะหารือเกี่ยวกับกรณีการใช้งานที่พบบ่อยที่สุดและสรุปแผนในอนาคตของเราเพื่อรองรับคุณสมบัติเพิ่มเติม

การจำกัดอัตรา

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

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

การประมวลผลแบบอะซิงโครนัส

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

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

แคช

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

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

การแคชความหมาย

กรณีการใช้งานแคชเฉพาะสำหรับแอปพลิเคชัน AI คือการแคชพร้อมท์ การแคชความหมายมีประโยชน์มากในการเพิ่มประสิทธิภาพและประสิทธิภาพของแอปพลิเคชันที่ใช้ AI

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

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

หมายเหตุ:โมดูล Redis Search รองรับการสืบค้นความคล้ายคลึงของเวกเตอร์ แต่ Upstash เข้ากันไม่ได้กับ Redis Search มีโครงการที่จะใช้การค้นหาที่คล้ายกันเพื่อรองรับการสืบค้นเชิงความหมายภายใน Upstash

ตัวอย่าง:เครื่องกำเนิดงานศิลปะ

เครื่องกำเนิดงานศิลปะ ขับเคลื่อนโดย Dall-E-2 ใช้ AI เพื่อสร้างภาพจากข้อความ และอาศัย Upstash Redis เพื่อแคชภาพที่สร้างขึ้น นอกจากนี้ยังใช้ QStash เพื่อจัดการการเรียก API และประมวลผลการเรียกแบบอะซิงโครนัส เพื่อหลีกเลี่ยงการหมดเวลาของฟังก์ชันไร้เซิร์ฟเวอร์

เมื่อได้รับการส่งข้อความ แอปพลิเคชันจะส่งคำขอไปยัง OpenAI API ผ่านทาง /api/image ของ QStash จุดสิ้นสุด จากนั้น QStash จะรวบรวมและส่งต่อการตอบกลับไปยัง /api/callback เป็น URL ซึ่งต่อมาถูกเก็บไว้ใน Upstash Redis หลังจากเรียกใช้ OpenAI API แล้ว ไคลเอนต์จะสอบถาม Redis และดึงข้อมูลรูปภาพหากมี

ด้วยการมอบหมายการจัดการการเรียก API ให้กับ QStash นักพัฒนาสามารถหลีกเลี่ยงการหมดเวลาของฟังก์ชันไร้เซิร์ฟเวอร์เมื่อใช้งานบนแผน Hobby ของ Vercel ซึ่งมีขีดจำกัด 10 วินาที

การปรับปรุงโครงการ OpenAI ด้วย Redis &Upstash:กรณีการใช้งานและคุณสมบัติในอนาคต

ตัวอย่าง:กู้คืนรูปภาพ

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

การปรับปรุงโครงการ OpenAI ด้วย Redis &Upstash:กรณีการใช้งานและคุณสมบัติในอนาคต

การปรับปรุงโครงการ OpenAI ด้วย Redis &Upstash:กรณีการใช้งานและคุณสมบัติในอนาคต

บทสรุป

ในฐานะทีม Upstash เราประทับใจมากที่นักพัฒนานำ Redis มาใช้เพื่อแก้ปัญหาความท้าทายในขณะเดียวกันก็พัฒนาแอปพลิเคชันที่ขับเคลื่อนโดย AI เรามีแผนเพื่อทำให้ชีวิตของพวกเขาดีขึ้นดังต่อไปนี้:

  • พัฒนา SDK เพื่อลดความยุ่งยากในการใช้ AI API ตลอดจนเพิ่มฟังก์ชันการจำกัดอัตรา การแคช และการประมวลผลแบบอะซิงก์
  • รองรับการแคชความหมายและการสืบค้นที่คล้ายคลึงกันด้วย Redis Search API หรือ API ที่ดีกว่า