predictive powers
Release 0.5.0
predictive-powers是一個庫,可輕鬆使用生成AI(Genai)服務來創建自主劑。它在我與Harald Gunia博士和Karolina Galinska博士合著的書《企業的Ultimate Chatgpt手冊》一書中刊登了這一文章。
使用此庫的優點:
為Genai功能添加了抽象層,這允許無縫插入不同的提供商,並減少訪問這些功能所需的代碼量。
隱藏了許多基本的API複雜性。例如:
自動處理上下文大小,具有準確的令牌計算。
自動處理聊天歷史記錄,具有可自定義的長度。
無論使用哪種機制,均勻的接口將工具(功能調用)添加到模型中(例如,單個或Paralllel函數呼叫OpenAI模型)。這包括一種模塊化方法,將工具添加到代理商中。
通過同一API使用文件,圖像或工具(功能調用)支持的多部分聊天消息。
仍然允許直接,低級,從Java訪問基礎API。
除聊天完成外,還可以訪問幾種功能,包括圖像生成,STT,TTS和Web搜索。
提供可序列化的內存矢量數據庫。
提供以不同格式(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
}
}