基于 Java 的 LLM 应用开发及编排框架,Agents-Flex beta.9 发布


Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发及编排框架。


基本能力

  • LLM 的访问能力
  • Prompt、Prompt Template 定义加载的能力
  • Function Calling 定义、调用和执行等能力
  • 记忆的能力(Memory)
  • Embedding
  • Vector Store
  • 文档处理
    • 加载器(Loader)
      • Http
      • FileSystem
    • 分割器(Splitter)
    • 解析器(Parser)
      • PoiParser
      • PdfBoxParser
  • Agent
    • LLM Agent
    • IOAgent
  • Chain 执行链
    • SequentialChain 顺序执行链
    • ParallelChain 并发(并行)执行链
    • LoopChain 循环执行连
    • ChainNode
      • AgentNode Agent 执行节点
      • EndNode 终点节点
      • RouterNode 路由节点
        • GroovyRouterNode Groovy 规则路由
        • QLExpressRouterNode QLExpress 规则路由
        • LLMRouterNode LLM 路由(由 AI 自行判断路由规则)

Agents-Flex beta.9 更新细节:

  • 新增: 添加自定义 openaiLLM 请求 api 的支持 https://github.com/agents-flex/agents-flex/issues/5
  • 新增: 添加 https.proxyHost 配置的支持 https://github.com/agents-flex/agents-flex/issues/1
  • 新增: 添加对 SpringBoot3 自动配置的支持 @songyinyin
  • 新增: 添加使用 openSearch 用于向量数据存储的支持 @songyinyin
  • 修复: 修复 QwenAutoConfiguration 配置错误的问题 @songyinyin
  • 修复: 修复 OpenAiLLmUtil.promptToEmbeddingsPayload 空指针异常的问题
  • 修复: 修复 FunctionMessageResponse 在某些情况下出错的问题, @imayou
  • 优化: 更新重构 bom 模块
  • 优化: 优化 SparkLlm.java 的相关代码

简单对话

使用 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);
//"北京的天气是阴转多云。 "
}

模块构成

 

开源地址​:

  • Gitee: https://gitee.com/agents-flex/agents-flex
  • Github: https://github.com/agents-flex/agents-flex
  • 官方网站:https://agentsflex.com

相關推薦

2024-07-06

Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发及编排框架。 基本能力 LLM 的访问能力 Prompt、Prompt Template 定义加载的能力 Function Calling 定义、调用和执行等能力 记忆的能力(Memory) Embedding Vector Store 文

2024-07-16

Agents-Flex: 一个基于 Java 的 LLM(大语言模型)应用开发及编排框架。 基本能力 LLM 的访问能力 Prompt、Prompt Template 定义加载的能力 Function Calling 定义、调用和执行等能力 记忆的能力(Memory) Embedding Vector Store 文

2023-10-08

识图谱为 LLM 提供更精确的 GenAI 预测和结果。 LangChain 编排:LangChain 促进了LLM、应用程序和数据库之间的通信,并提供了一个强大的向量索引。LangChain 是一个用于开发由 LLM 支持的应用程序的框架。其中包括 LangSmith,一种调试

2023-05-16

的数据作为上下文,无需理解晦涩的概念和技术处理。 基于 API 开发后端即服务。你可以直接访问网页应用,也可以接入 API 集成到你的应用中,无需关注复杂的后端架构和部署过程。 数据标注与改进:可视化查阅 AI 日志并

2023-08-23

GPU、NPU、FPGA...)提供一个抽象的通用框架,开发者可以基于该框架自定义多种类型的共享设备;当前,Volcano 已基于该框架实现 GPU 虚拟化特性,支持 GPU 设备复用、资源隔离等能力,详情如下: GPU共享:每个任务可以申请

2023-09-28

Jarboot 是一个强大的 Java 进程管理、诊断的平台,可以在线管理、监控及诊断本地和远程的 Java 进程。 官方文档:www.yuque.com/jarboot 3.0.0-beta3(9,2023) 新特性:集群模式 支持定时任务类型 修复目录中文连接超时bug 服务

2023-04-12

LiteFlow介绍 LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达5种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。 LiteFlo

2023-08-10

)驱动的多智能体系统进行自动任务解决的进展。现有的基于LLM的多智能体系统主要集中在简单的对话任务上。由于LLM的幻觉问题,复杂任务很少被研究。为了解决这个问题,作者引入了MetaGPT,一个新颖的框架,将高效的人类

2024-08-22

Chat as a Service 语言 English 中文 介绍 智能客服 基于大模型 LLM && RAG 的智能客服 AI助手 更适合团队使用,一人配置,多人使用。完美权限控制,即可私用,也可公用 在线客服:跟客户聊 支持多渠道:

2024-08-07

Chat as a Service 语言 English 中文 介绍 智能客服 基于大模型 LLM && RAG 的智能客服 AI助手 更适合团队使用,一人配置,多人使用。完美权限控制,即可私用,也可公用 在线客服:跟客户聊 支持多渠道:

2024-07-06

Chat as a Service 语言 English 中文 介绍 智能客服 基于大模型 LLM && RAG 的智能客服 AI助手 更适合团队使用,一人配置,多人使用。完美权限控制,即可私用,也可公用 在线客服:跟客户聊 支持多渠道:

2024-07-13

Chat as a Service 语言 English 中文 介绍 智能客服 基于大模型 LLM && RAG 的智能客服 AI 助手 更适合团队使用,一人配置,多人使用。完美权限控制,即可私用,也可公用 在线客服:跟客户聊 支持多渠道:

2023-06-22

码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web 服务。 smart-servlet 基于 smart-http 实现的 Servlet 3.1 容器服务。 smart-mqtt 基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。 smart-flow

2023-10-13

答、自然语言推理等。 AI Agent(LLM Agent) LLM Agent 是指基于 LLM 技术构建的智能代理,它可以用于各种任务,比如让机器与 ChatGPT 交互,一层一层挖掘信息,自动化完成任务;比如由机器人构成的虚拟小镇。 AI 编程 让 LLM 帮