基于 Java 的大语言模型应用开发框架,Agents-Flex alpha.4 发布
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.4 ,还在开发中,请暂时勿使用于正式的商业产品中。
开源地址:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
warm-flow 工作流,新增监听器和参数传递
v1.1.0更新内容 可以跳转指定节点 增加全局变量 增加监听器 重构代码,解偶orm,方便扩展不同orm和数据,新增代码示例 修复并行网关流程流程图显示错误问题 介绍 此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便 支持简单的流程流转,比如跳转、回退、审批 支持角色、部门和用户等权限配置 官方提供简单流程封装demo项目,很实用 支持多租户 支持代办任务和已办任务,通过权限标识过滤数据 支持互斥网关,并行网关(会签、或签) 可退回任意节点 支持条件表达式,可扩展 同时支持spring和solon 兼容java8和java17,理论11也可以 支持不同orm框架和数据库扩展 支持增加监听器,参数传递 git地址: https://gitee.com/warm_4/warm-flow.git demo项目: springboot:RuoYi-Vue-Warm-Flow |演示地址 solon:warm-sun |演示地址 快速开始 在开始之前,我们假定您已经: 熟悉 Java 环境配置及其开发 熟悉 关系型 数据库,比如 My...
- 下一篇
MyData v0.7.4 更新日志
MyData 是基于 Web API 的数据集成平台,提供数据集成服务,简化跨系统之间的数据对接;mydata-blade 是平台后端,基于 SpringBlade 微服务平台开发; MyData 是针对多应用之间数据集成的场景,为开发人员提供更安全、更方便的对接集成;基于数据资产为核心思想设计和开发的,目标是:旨在让用户更好的掌控和管理数据。 v0.7.4主要更新内容:任务自动批量拉取数据,简化对接操作; 新功能 定时任务 增加分批模式,实现任务分为多个批次从接口拉取数据,直到接口没有数据为止; 优化 任务管理 表单界面改为Tab布局,更方便用户操作; 修复 安全漏洞 CVE-2023-42809 不可信数据的反序列化,升级redisson版本到3.22.0;
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6