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


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.8 更新细节:

  • 新增:为 ChainNode 添加 "async" 属性标识的设置
  • 新增:添加基于 Ollama 大语言模型的对接,非 openai 适配模式
  • 新增:新增 DnjsonClient 用于和 Ollama 的 stream 模型对接
  • 优化:重构 ChainCondition
  • 优化:chat 时当大语言模型发生错误时抛出异常,之前返回 null
  • 优化:重构 DocumentParser
  • 优化:Parameter 支持子参数的配置能力
  • 修复:Milvus 向量数据库当传入 number 类型是出错的问题
  • 测试:添加对 LoopChain 的测试
  • 测试:添加文使用 openai 兼容 api 对 Ollama 对接的测试

 

简单对话

使用 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-08-14

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

2024-07-06

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-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助手 更适合团队使用,一人配置,多人使用。完美权限控制,即可私用,也可公用 在线客服:跟客户聊 支持多渠道:

2022-11-17

该是RC(候选)版了。 Java通用代码生成器光2.3.0文明,发布了最新操作视频。详细介绍模板向导界面的操作,使用了两个示例。包括弹性登录模块,复杂版面和图形报表。并介绍了一键生成的图片功能。 请见视频:https://www.bil

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 帮