predictive-powers es una biblioteca para crear fácilmente agentes autónomos utilizando servicios generativos de IA (Genai). Ha aparecido en un capítulo del libro "Ultimate Chatgpt Handbook for Enterprises" que coautoré con el Dr. Harald Gunia y Karolina Galinska.
Ventajas de usar esta biblioteca:
Agrega una capa de abstracción para las capacidades de Genai, esto permite enchufar a diferentes proveedores sin problemas y reduce la cantidad de código necesario para acceder a estas capacidades.
Esconde mucha de la complejidad de la API subyacente. Por ejemplo:
Manejo automatizado de tamaños de contexto, con cálculos de token exactos.
Manejo automatizado del historial de chat, con longitud personalizable.
Interfaz uniforme para agregar herramientas (llamadas de funciones) a los modelos, independientemente del mecanismo que usen (por ejemplo, función única o paralela que requiere modelos OpenAI). Esto incluye un enfoque modular para agregar herramientas a los agentes.
Massges de chat múltiples que admiten el uso de archivos, imágenes o herramientas (llamadas de funciones) a través de la misma API.
Todavía permite acceso directo, de bajo nivel a la API subyacente de Java.
Proporciona acceso a varias capacidades además de completar el chat, incluidas la generación de imágenes, STT, TTS y la búsqueda web.
Proporciona una base de datos vectorial en memoria en serie.
Ofrece métodos para leer, fragmentar e incrustar fácilmente contenido textual de páginas web y archivos en diferentes formatos (MS Office, PDF, HTML, etc.).
El siguiente ejemplo es una línea de una sola para chatear con GPT.
Se pueden encontrar más detalles sobre la biblioteca, incluidos los manuales, en la página del proyecto.
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
}
}