predictive-powers -это библиотека, которая легко создает автономные агенты с использованием сервисов Generative AI (Genai). Он был показан в главе книги «Справочник Ultimate Catgpt для предприятий», которую я в соавторстве с доктором Харальдом Гунье и Каролиной Галинской.
Преимущества использования этой библиотеки:
Добавляет слой абстракции для возможностей Genai, это позволяет плавно подключать различных поставщиков и уменьшать количество кода, необходимого для доступа к этим возможностям.
Скрывает много основной сложности API. Например:
Автоматическое обращение с размерами контекста, с точными расчетами токена.
Автоматическое обращение с историей чата, с настраиваемой длиной.
Единый интерфейс для добавления инструментов (вызовов функций) в модели, независимо от механизма, который они используют (например, отдельная или параллельная функция, призывающая к моделям OpenAI). Это включает в себя модульный подход к добавлению инструментов к агентам.
Многочасовые чаты, которые поддерживают использование файлов, изображений или инструмента (вызовы функций) через тот же API.
По-прежнему позволяет прямой, низкоуровневый доступ к базовым API из 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
}
}