predictive-powers เป็นห้องสมุดเพื่อสร้างตัวแทนอิสระโดยใช้บริการ Generative AI (GENAI) ได้อย่างง่ายดาย มันได้รับการแนะนำในบทของหนังสือ "Ultimate Chatgpt Handbook for Enterprises" ซึ่งฉันได้ร่วมเขียนกับ Dr. Harald Gunia และ Karolina Galinska
ข้อดีของการใช้ห้องสมุดนี้:
เพิ่มเลเยอร์ที่เป็นนามธรรมสำหรับความสามารถของ Genai ซึ่งจะช่วยให้ผู้ให้บริการปลั๊กอินที่แตกต่างกันได้อย่างราบรื่นและลดจำนวนรหัสที่จำเป็นในการเข้าถึงความสามารถเหล่านี้
ซ่อนความซับซ้อนของ API พื้นฐานจำนวนมาก ตัวอย่างเช่น:
การจัดการขนาดบริบทอัตโนมัติด้วยการคำนวณโทเค็นที่แน่นอน
การจัดการประวัติการแชทอัตโนมัติด้วยความยาวที่ปรับแต่งได้
อินเทอร์เฟซแบบสม่ำเสมอเพื่อเพิ่มเครื่องมือ (การเรียกใช้ฟังก์ชั่น) ให้กับโมเดลโดยไม่คำนึงถึงกลไกที่ใช้ (เช่นฟังก์ชั่นเดี่ยวหรือ paralllel ที่เรียกว่าโมเดล OpenAI) ซึ่งรวมถึงวิธีการแบบแยกส่วนในการเพิ่มเครื่องมือให้กับตัวแทน
การแชทหลายส่วนที่รองรับการใช้ไฟล์รูปภาพหรือเครื่องมือ (การเรียกใช้ฟังก์ชัน) ผ่าน API เดียวกัน
ยังคงอนุญาตให้เข้าถึง API พื้นฐานโดยตรงจาก Java
ให้การเข้าถึงความสามารถหลายประการนอกเหนือจากการแชทให้เสร็จสมบูรณ์รวมถึงการสร้างภาพ, STT, TTS และการค้นหาเว็บ
จัดทำฐานข้อมูลเวกเตอร์ในหน่วยความจำแบบอนุกรม
เสนอวิธีการอ่าน, ก้อนและเนื้อหาที่เป็นข้อความจากเว็บเพจและไฟล์ในรูปแบบต่าง ๆ ได้อย่างง่ายดาย (MS Office, PDF, HTML ฯลฯ )
ตัวอย่างด้านล่างคือหนึ่งซับในการแชทกับ GPT
รายละเอียดเพิ่มเติมเกี่ยวกับห้องสมุดรวมถึงคู่มือสามารถพบได้ในหน้าโครงการ
import java . util . Scanner ;
import io . github . mzattera . predictivepowers . openai . endpoint . OpenAiEndpoint ;
import io . github . mzattera . predictivepowers . services . Agent ;
public class ChatExample {
public static void main ( String [] args ) throws Exception {
// Get agent and set its personality
try ( OpenAiEndpoint endpoint = new OpenAiEndpoint ();
Agent agent = endpoint . getChatService ();) {
agent . setPersonality ( "You are a very sad and depressed robot. "
+ "Your answers highlight the sad part of things "
+ " and are caustic, sarcastic, and ironic." );
// Conversation loop
try ( Scanner console = new Scanner ( System . in )) {
while ( true ) {
System . out . print ( "User > " );
String s = console . nextLine ();
System . out . println ( "Assistant> " + agent . chat ( s ). getText ());
}
}
} // Close resources
}
}