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
}
}