基于 Java 的大语言模型应用开发框架,Agents-Flex alpha.3 发布
Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发框架。
基本能力
- LLM 的访问能力
- Prompt、Prompt Template 定义加载的能力
- Function Calling 定义、调用和执行等能力
- 记忆的能力(Memory)
- Embedding
- Vector Storage
- 文档处理
- 加载器(Loader)
- Http
- FileSystem
- 分割器(Splitter)
- 解析器(Parser)
- PoiParser
- PdfBoxParser
- 加载器(Loader)
- LLM Chain
- Agents Chain
简单对话
使用 OpenAi 大语言模型:
@Test public void testChat() { OpenAiLlmConfig config = new OpenAiLlmConfig(); config.setApiKey("sk-rts5NF6n*******"); Llm llm = new OpenAiLlm(config); String response = llm.chat("请问你叫什么名字"); System.out.println(response); }
使用 “通义千问” 大语言模型:
@Test public void testChat() { QwenLlmConfig config = new QwenLlmConfig(); config.setApiKey("sk-28a6be3236****"); config.setModel("qwen-turbo"); Llm llm = new QwenLlm(config); String response = llm.chat("请问你叫什么名字"); System.out.println(response); }
使用 “讯飞星火” 大语言模型:
@Test public void testChat() { SparkLlmConfig config = new SparkLlmConfig(); config.setAppId("****"); config.setApiKey("****"); config.setApiSecret("****"); Llm llm = new SparkLlm(config); String response = llm.chat("请问你叫什么名字"); System.out.println(response); }
历史对话示例
public static void main(String[] args) { SparkLlmConfig config = new SparkLlmConfig(); config.setAppId("****"); config.setApiKey("****"); config.setApiSecret("****"); Llm llm = new SparkLlm(config); HistoriesPrompt prompt = new HistoriesPrompt(); System.out.println("您想问什么?"); Scanner scanner = new Scanner(System.in); String userInput = scanner.nextLine(); while (userInput != null) { prompt.addMessage(new HumanMessage(userInput)); llm.chatAsync(prompt, (context, response) -> { System.out.println(">>>> " + response.getMessage().getContent()); }); userInput = scanner.nextLine(); } }
Function Calling
- 第一步: 通过注解定义本地方法
public class WeatherUtil { @FunctionDef(name = "get_the_weather_info", description = "get the weather info") public static String getWeatherInfo( @FunctionParam(name = "city", description = "the city name") String name ) { //在这里,我们应该通过第三方接口调用 api 信息 return name + "的天气是阴转多云。 "; } }
- 第二步: 通过 Prompt、Functions 传入给大模型,然后得到结果
public static void main(String[] args) { OpenAiLlmConfig config = new OpenAiLlmConfig(); config.setApiKey("sk-rts5NF6n*******"); OpenAiLlm llm = new OpenAiLlm(config); FunctionPrompt prompt = new FunctionPrompt("今天北京的天气怎么样", WeatherUtil.class); FunctionResultResponse response = llm.chat(prompt); Object result = response.invoke(); System.out.println(result); //"北京的天气是阴转多云。 " }
模块构成
注意:当前版本为 v1.0.0-alpha.2 ,还在开发中,请暂时勿使用于正式的商业产品中。
开源地址:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
类腾讯文档 UI 风格的 AI 编辑器,AiEditor rc.8 发布
AiEditor 关于 AiEditor(官网https://aieditor.dev) AiEditor 是一个面向 AI 的下一代富文本编辑器,她基于 Web Component,因此支持 Layui、Vue、React、Angular 等几乎任何前端框架。她适配了 PC Web 端和手机端,并提供了 亮色 和 暗色 两个主题。除此之外,她还提供了灵活的配置,开发者可以方便的使用其开发任何文字编辑的应用。 在线演示 现代风格(类腾讯文档):http://aieditor1.jpress.cn 经典 / 传统风格:http://aieditor.jpress.cn 已完善 基础:标题、正文、字体、字号、加粗、斜体、下划线、删除线、链接、行内代码、上标、下标、分割线、引用、打印 增强:撤回、重做、格式刷、橡皮擦、待办事项、字体颜色、背景颜色、Emoji 表情、对齐方式、行高、有(无)序列表、段落缩进、强制换行 附件:支持图片、视频、文件功能,支持选择上传、粘贴上传、拖拽上传、支持拖动调整大小... 代码:行内代码、代码块、语言类型选择、AI 自动注释、AI 代码解释... 表格:左增右...
- 下一篇
webtim 开源即时通讯平台 v0.0.4 发布
前言:webtim是即时通讯平台,提供丰富的通讯功能,除了基础通讯,同时实现多人实时音视频,视频直播等功能。im 服务器为 Tim 。前端使用tim的js客户端 timjs 调用tim服务器接口解析数据并渲染页面 webtim官网 在线地址 webtim具备以下功能与特性: 信息安全性:信息加密加密机制,确保通信内容的安全性。 用户资料安全性:用户账号无需被记录到服务器。用户资料被加密存储。确保用户信息的安全性。 即时消息通讯:用户间进行实时信息发送。 离线消息存储:允许用户在离线状态下接收消息,并在重新上线时进行同步。 用户管理:支持用户注册、登录、个人信息管理等功能。 好友关系管理:支持用户添加、删除好友,管理好友列表等功能。 群管理:支持群的一系列操作功能 消息回执:提供消息的发送状态反馈。 消息撤回:消息可以被发送者撤回,并同步到相关所有的终端。 用户状态广播:实现了用户实时在线状态的广播与订阅 文件传输:支持用户间互发文件 视频电话:实现用户与用户之间建立音视频电话的功能 视频直播:实现了用户可以在线视频直播的功能 直播本地视频:实现了用户可以通过播放本地音视频来做在线直播的...
相关文章
文章评论
共有0条评论来说两句吧...