predictive-powers هي مكتبة لإنشاء عوامل مستقلة بسهولة باستخدام خدمات الذكاء الاصطناعي (GENAI). تم عرضه في فصل من كتاب "Ultimate Chatgpt Handbook for Enterprises" الذي شاركت في تأليفه مع الدكتور هارالد غونيا وكارولينا غالنسكا.
مزايا استخدام هذه المكتبة:
يضيف طبقة تجريبية لقدرات Genai ، وهذا يسمح بتكليف مزودي مختلفين بسلاسة ويقلل من كمية التعليمات البرمجية اللازمة للوصول إلى هذه القدرات.
يخفي الكثير من تعقيد API الأساسي. على سبيل المثال:
المعالجة الآلية لأحجام السياق ، مع حسابات رمزية دقيقة.
التعامل الآلي لتاريخ الدردشة ، بطول قابل للتخصيص.
واجهة موحدة لإضافة أدوات (مكالمات الوظائف) إلى النماذج ، بغض النظر عن الآلية التي تستخدمها (على سبيل المثال ، تدعو وظيفة واحدة أو Paralllel إلى نماذج OpenAI). ويشمل ذلك نهجًا معياريًا لإضافة أدوات إلى الوكلاء.
رسائل الدردشة متعددة الأجزاء التي تدعم استخدام الملفات أو الصور أو الأداة (مكالمات الوظائف) من خلال نفس واجهة برمجة التطبيقات.
لا تزال تسمح بإمكانية الوصول المباشر والمنخفضة المستوى إلى واجهة برمجة التطبيقات الأساسية من 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
}
}