predictive-powers sont une bibliothèque pour créer facilement des agents autonomes en utilisant des services générateurs d'IA (Genai). Il a été présenté dans un chapitre du livre "Ultimate Chatgpt Handbook for Enterprises" que j'ai co-écrit avec le Dr Harald Gunia et Karolina Galinska.
Avantages de l'utilisation de cette bibliothèque:
Ajoute une couche d'abstraction pour les capacités Genai, cela permet de brancher différents fournisseurs de manière transparente et réduit la quantité de code nécessaire pour accéder à ces capacités.
Cache une grande partie de la complexité de l'API sous-jacente. Par exemple:
Gestion automatisée des tailles de contexte, avec des calculs de jetons exacts.
Gestion automatisée de l'historique des discussions, avec une longueur personnalisable.
Interface uniforme pour ajouter des outils (appels de fonction) aux modèles, quel que soit le mécanisme qu'ils utilisent (par exemple, une fonction unique ou paralllel appelant des modèles OpenAI). Cela comprend une approche modulaire pour ajouter des outils aux agents.
Les goûts de chat en plusieurs parties prennent en charge l'utilisation de fichiers, d'images ou d'outils (appels de fonction) via la même API.
Permet toujours un accès direct, de bas niveau, à l'API sous-jacente de Java.
Donne accès à plusieurs capacités en plus de l'achèvement du chat, notamment la génération d'images, STT, TTS et la recherche Web.
Fournit une base de données vectorielle en mémoire sérialisable.
Offre des méthodes pour lire, choisir et intégrer facilement le contenu textuel à partir de pages Web et de fichiers dans différents formats (MS Office, PDF, HTML, etc.).
L'exemple ci-dessous est un seul liner pour discuter avec GPT.
Plus de détails sur la bibliothèque, y compris les manuels, peuvent être trouvés sur la page du projet.
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
}
}