predictive-powers é uma biblioteca para criar facilmente agentes autônomos usando serviços generativos de IA (GENAI). Ele foi apresentado em um capítulo do livro "Ultimate Chatgpt Handbook for Enterprises", que eu co-autor com o Dr. Harald Gunia e Karolina Galinska.
Vantagens de usar esta biblioteca:
Adiciona uma camada de abstração para os recursos da Genai, isso permite conectar diferentes fornecedores de provedores e reduz a quantidade de código necessária para acessar esses recursos.
Esconde muito da complexidade da API subjacente. Por exemplo:
Manuseio automatizado de tamanhos de contexto, com cálculos exatos de token.
Manuseio automatizado do histórico de bate -papo, com comprimento personalizável.
Interface uniforme para adicionar ferramentas (chamadas de função) aos modelos, independentemente do mecanismo que eles usam (por exemplo, função única ou paralllel que exige modelos OpenAI). Isso inclui uma abordagem modular para adicionar ferramentas aos agentes.
As bagunças de bate-papo em várias partes que suportam o uso de arquivos, imagens ou ferramentas (chamadas de função) através da mesma API.
Ainda permite acesso direto e de baixo nível à API subjacente a Java.
Fornece acesso a vários recursos, além da conclusão do bate -papo, incluindo geração de imagens, STT, TTS e pesquisa na web.
Fornece um banco de dados vetorial em memória serializável.
Oferece métodos para ler facilmente, Chunk e incorporar conteúdo textual de páginas e arquivos da Web em diferentes formatos (MS Office, PDF, HTML, etc.).
O exemplo abaixo é uma linha para conversar com o GPT.
Mais detalhes sobre a biblioteca, incluindo manuais, podem ser encontrados na página do projeto.
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
}
}