predictive-powers ist eine Bibliothek, die problemlos autonome Agenten mit generativen AI-Diensten (Genai) erstellt. Es wurde in einem Kapitel des Buches "Ultimate Chatgpt Handbook for Enterprises" vorgestellt, das ich mit Dr. Harald Gunia und Karolina Galinska mitverfasst habe.
Vorteile der Verwendung dieser Bibliothek:
Fügt eine Abstraktionsschicht für Genai-Funktionen hinzu. Dadurch können verschiedene Anbieter nahtlos angeschlossen werden und die Menge an Code verringert, die für den Zugriff auf diese Funktionen benötigt wird.
Verbirgt einen Großteil der zugrunde liegenden API -Komplexität. Zum Beispiel:
Automatisierte Handhabung von Kontextgrößen mit genauen Token -Berechnungen.
Automatisierte Handhabung des Chat -Verlaufs mit anpassbarer Länge.
Einheitliche Schnittstelle zum Hinzufügen von Tools (Funktionsaufrufe) zu Modellen, unabhängig von dem von ihnen verwendeten Mechanismus (z. Dies beinhaltet einen modularen Ansatz zum Hinzufügen von Werkzeugen zu Agenten.
Mehrteilige Chat-Chat-Messges, die die Verwendung von Dateien, Bildern oder Tools (Funktionsaufrufe) über die gleiche API unterstützen.
Ermöglicht immer noch direkte, niedrige, auf zugrunde liegende API von Java.
Bietet Zugang zu mehreren Funktionen zusätzlich zum CHAT -Abschluss, einschließlich Bildgenerierung, STT, TTS und Websuche.
Bietet eine serialisierbare In-Memory-Vektor-Datenbank.
Bietet Methoden zum einfachen Lesen, Teilen und Einbetten von Textinhalten aus Webseiten und Dateien in verschiedenen Formaten (MS Office, PDF, HTML usw.).
Das folgende Beispiel ist ein Einzeiler, der mit GPT chatten kann.
Weitere Details zur Bibliothek, einschließlich Handbüchern, finden Sie auf der Projektseite.
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
}
}