基于 Java 的 LLM 应用开发框架,Agents-Flex beta.4 发布
Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发框架。
基本能力
- LLM 的访问能力
- Prompt、Prompt Template 定义加载的能力
- Function Calling 定义、调用和执行等能力
- 记忆的能力(Memory)
- Embedding
- Vector Store
- 文档处理
- 加载器(Loader)
- Http
- FileSystem
- 分割器(Splitter)
- 解析器(Parser)
- PoiParser
- PdfBoxParser
- 加载器(Loader)
- Agent
- LLM Agent
- IOAgent
- Chain 执行链
- SequentialChain 顺序执行链
- ParallelChain 并发(并行)执行链
- LoopChain 循环执行连
- ChainNode
- AgentNode Agent 执行节点
- EndNode 终点节点
- RouterNode 路由节点
- GroovyRouterNode Groovy 规则路由
- QLExpressRouterNode QLExpress 规则路由
- LLMRouterNode LLM 路由(由 AI 自行判断路由规则)
简单对话
使用 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.chatStream(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); //"北京的天气是阴转多云。 " }
模块构成
开源地址:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
共建国际开源社区 | openKylin 社区国际交流培训暨国际用户组招募活动成功举办
5月30日,openKylin社区联合信创海河实验室、南开大学软件学院共同举办了社区第三次国际交流活动,来自埃塞俄比亚、刚果、尼日利亚等20个国家近50名留学生参加本次活动。这场活动旨在进一步推进openKylin社区与国际企业、爱好者建立稳定友好的交流伙伴关系,推动科技创新合作、技术推广交流和成果转化应用发展,扩大openKylin开源社区国际影响力,打造开放繁荣社区生态。 openKylin社区Release SIG Maintainer张天雄向大家进行了精彩的讲解介绍。他从openKylin社区的发展历程、愿景使命以及最新成果等方面入手,详细阐述了openKylin社区的相关情况,让在场的南开大学留学生们对openKylin社区有了更加全面的了解。 openKylin Community SIG Maintainer范娇围绕openKylin 国际用户组介绍及招募进行分享。她首先介绍了openKylin国际用户组的宗旨和目标,openKylin国际用户组,是为方便全球各国家及地区开源爱好者交流openKylin系统版本及用户体验、推广openKylin操作系统而成立的开源爱好者组...
- 下一篇
开放签电子签章系统 (企业版) V2.0.4 版本详细更新内容
本次版本迭代详细内容如下: 1、模板配置: (1)增加单选、多选、下拉选择、图片格式的参数类型; (2)增加模板参数排序的功能; (3)模板参数增加字体、字体大小的设置; 2、业务线配置: (1)增加批量设置模板参数填写方的操作; (2)增加填写控件在正文区域与右侧控件区域的关联定位(精准定位); 3、签署环节: (1)支持新增的填写控件类型; (2)增加批量设置模板参数填写方的操作; (3)增加填写控件在正文区域与右侧控件区域的关联定位(精准定位),同时支持在正文区域的填写控件上直接进行填写(PC端); (4)优化填写位置准确度以及字体格式、大小的应用; 签署文件下载:未签署完成的文件,下载时,系统自动对该文件进行加签(加盖签署状态样章+平台防篡改证书),防止中间过程的文件被当作最终签署的文件; API接口: 发起签署时,模板参数新增单选、多选、下拉选择、图片格式的参数类型;
相关文章
文章评论
共有0条评论来说两句吧...