Java开发的AI应用框架简述——LangChain4j、Spring AI、Agent-Flex

LangChain4j

LangChain4j官网

star很多,文档齐全,在AI服务中,提供了丰富的功能,示例代码丰富。

简介

是一个功能丰富、易于使用的Java AI开发框架,特别适合需要快速集成和使用大型语言模型的Java开发者。

项目特点

  1. 多语言模型支持:
    ○ 支持多种大语言模型(LLM),包括OpenAI、Anthropic、Cohere等。
    ○ 提供了统一的API接口,使得切换不同的语言模型变得简单。
  2. 丰富的功能:
    ○ LLM访问:轻松调用不同的语言模型进行文本生成、对话等任务。
    ○ Prompt定义:提供了灵活的Prompt定义方式,支持动态生成和模板化。
    ○ Function Calling:支持调用外部函数,将AI模型与其他服务集成。
    ○ 记忆(Memory):支持会话记忆,保持对话上下文的连贯性。
    ○ Embedding:提供了文本嵌入功能,支持向量化表示。
    ○ Vector Store:支持向量存储,便于相似性搜索和推荐系统。
  3. 简洁的API设计:
    ○ 通过简洁的API设计,使得开发者可以快速上手,减少学习成本。
    ○ 示例代码简单明了,易于理解和使用。
  4. 框架集成:
    ○ 可以与Spring Boot等主流Java框架无缝集成,方便在现有项目中引入AI功能。
    ○ 提供了Spring Boot Starter,使得配置和使用更加方便。
  5. 社区和支持:
    ○ 文档:提供了详细的文档和示例代码,帮助开发者快速上手。
    ○ 社区:有活跃的社区和论坛,开发者可以在这里交流经验和解决问题。
    ○ 贡献:欢迎开发者贡献代码和提出改进建议,共同推动项目的持续发展。
应用场景

● 聊天机器人:构建能够进行自然对话的聊天机器人。

● 文本生成:生成文章、摘要、报告等文本内容。

● 情感分析:分析文本的情感倾向,用于市场调研和用户反馈分析。

● 翻译:提供多语言翻译功能。

● 推荐系统:基于用户行为和偏好,提供个性化推荐。

对Chians的理解不同

官方文档中表示:Chains 的概念源自 Python 的 LangChain(在引入 LCEL 之前)。其理念是Chain为每种常见用例(如聊天机器人、RAG 等)都提供一个 Chains。Chains 结合了多个低级组件并协调它们之间的交互。Chains 的主要问题是,如果您需要自定义某些内容,它们会过于死板。LangChain4j 仅实现了两个 Chains(ConversationalChain和ConversationalRetrievalChain),我们目前不打算添加更多 Chains。
提出了另一种解决方案,称为 AI Services,专为 Java 量身定制。 其理念是将与 LLM 和其他组件交互的复杂性隐藏在简单的 API 背后。

这种方法与 Spring Data JPA 或 Retrofit 非常相似:您声明性地定义具有所需 API 的接口,而 LangChain4j 提供实现此接口的对象(代理)。您可以将 AI Service 视为应用程序中服务层的一个组件。它提供AI服务。因此得名。

AI 服务处理最常见的操作:

● 格式化 LLM 的输入

● 解析 LLM 的输出

它们还支持更多高级功能:

● 聊天记忆

● 工具

AI 服务可用于构建有状态的聊天机器人,以促进来回交互,以及自动化隔离对 LLM 的每个调用的流程。

https://docs.langchain4j.dev/tutorials/ai-services#ai-services-1

springboot集成

Spring Boot应用程序

LangChain4j Spring Boot starter 大大简化了在 Spring Boot 应用程序中使用 AI 服务。

示例代码丰富。

Spring AI

Spring AI官网

Spring AI是2024年3月1日推出的,目前只有1.0.0版本。star4.9k,springboot版本要求3.2以上,jdk17及以上

版本更新不快,我6月份使用最新是0.8.1版本。

简介

《Spring AI》是Spring框架家族中的一个新成员,专门用于简化人工智能(AI)应用的开发。它借鉴了Spring框架的核心设计理念,提供了一个强大且灵活的平台,使得开发者可以更轻松地集成和使用各种AI服务和模型。以下是关于《Spring AI》的详细介绍,包括其特点、功能、应用场景和使用方法。

关键特点
  1. 强大的生态系统:
    ○ Spring 生态:《Spring AI》继承了Spring框架的强大生态系统,可以与Spring Boot、Spring Data、Spring Security等其他Spring项目无缝集成。
    ○ 丰富的扩展:提供了大量的扩展和模块,支持多种AI服务和模型。
  2. 低门槛:
    ○ 简单的API:提供了简洁易用的API,使得开发者可以快速上手,减少学习成本。
    ○ 开箱即用:通过Spring Boot Starter,可以快速集成到现有的Spring项目中。
  3. 多语言模型支持:
    ○ 多种模型:支持多种大型语言模型(LLM),包括OpenAI的GPT系列、Anthropic的Claude、阿里云的Qwen等。
    ○ 统一接口:提供了统一的API接口,使得切换不同的语言模型变得简单。
  4. 丰富的功能:
    ○ LLM访问:轻松调用不同的语言模型进行文本生成、对话等任务。
    ○ Prompt定义:提供了灵活的Prompt定义方式,支持动态生成和模板化。
    ○ Function Calling:支持调用外部函数,将AI模型与其他服务集成。
    ○ 记忆(Memory):支持会话记忆,保持对话上下文的连贯性。
    ○ Embedding:提供了文本嵌入功能,支持向量化表示。
    ○ Vector Store:支持向量存储,便于相似性搜索和推荐系统。
  5. 反应式编程支持:
    ○ 反应式编程:支持反应式编程模型,可以构建高并发、低延迟的应用。
    ○ 非阻塞 I/O:使用非阻塞 I/O 操作,提高应用的响应能力和吞吐量。
  6. 安全性:
    ○ Spring Security:可以与Spring Security集成,提供强大的安全保护机制。
    ○ API密钥管理:支持API密钥的安全管理和使用。
应用场景

● 聊天机器人:构建能够进行自然对话的聊天机器人。

● 文本生成:生成文章、摘要、报告等文本内容。

● 情感分析:分析文本的情感倾向,用于市场调研和用户反馈分析。

● 翻译:提供多语言翻译功能。

● 推荐系统:基于用户行为和偏好,提供个性化推荐。

● 图像识别:支持图像识别和处理,适用于视觉相关的AI应用。

Agent-Flex

Agent-Flex官网

最近刚刚出炉的一个Java开发的AI应用框架,目前star不多才200+,可以看后续发展

简介

Agents-Flex 是一个 Java 开发的 AI 应用开发框架,是为了简化 AI 应用开发而生。 其灵感来源 LangChain、 LlamaIndex 以及作者作为一线 AI 应用开发工程师的最佳实践,提供了跨 AI 服务商的、可移植的、可编排、不限 Java 开发框架的 API 支持。

Agents-Flex 适用于聊天、图像生成、Embedding 模型、Function Calling 以及 RAG 应用、智能体编排等场景,支持同步以及流式(Stream)的 API 选择。

Agents-Flex 和其他框架对比

1、更具有普适性

相比 Spring-AI、LangChain4j 而言,Agents-Flex 更具有普适性。

  1. Spring-AI 要求的 JDK 版本必须是 JDK 17+,而 Agents-Flex 只需要 JDK 8+。
  2. Spring-AI 要求必须在 Spring 框架下使用,而 Agents-Flex 支持与任何的 JAVA 框架搭配使用,并提供了 spring-boot-starter 的支持。
  3. Spring-AI、LangChain4j 普遍不支持国内的大模型、Embedding 模型以及向量数据库,而 Agents-Flex 对国产服务支持友好。
    2、更简易的 API 设计
    使用 Agents-Flex 两行代码即可实现聊天功能
    2、更强大的智能体编排
    一个强大的 AI 应用,往往是需要灵活的编排能力来完成的, 相比 Agents-Flex 而言,Spring-AI、LangChain4j几乎没有编排的能力。
    Chain(执行链) 编排
    在 Agents-Flex 中,内置了 3 种不同的 Agents 执行链,他们分别是:
    ● SequentialChain:顺序执行链
    ● ParallelChain:并发(并行)执行链
    ● LoopChain:循环执行连
    而以上 3 种执行链中,每个又可以作为其他执行链的子链进行执行,从而形成强大而复杂的 Agents 执行链条。
核心模块

LLMs大语言模型

Memory记忆

Embedding嵌入

Store存储

Document文档

Agent智能体

Chain执行链

结论

Java端的AI能力主要是在2024年出现的,出现的过程中吸收了之前大量AI相关开源框架的设计经验与考虑了它们应用上的弊端。

能力方面基本满足,但迭代更新频率不快。虽然文档丰富,但使用的人相对于python这几个流行框架来说还是太少。

后续会重点关注上面三个框架发展,从目前来看LangChain4j的能力方面更强,文档更丰富、使用人群更多。

相关推荐
@小匠2 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
一灯架构4 小时前
90%的人答错!一文带你彻底搞懂ArrayList
java·后端
网教盟人才服务平台5 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
Y4090015 小时前
【多线程】线程安全(1)
java·开发语言·jvm
芯智工坊5 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾5 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)5 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz5 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
布局呆星5 小时前
SpringBoot 基础入门
java·spring boot·spring
风吹迎面入袖凉6 小时前
【Redis】Redisson的可重入锁原理
java·redis