news 2026/2/24 0:40:24

AI测试、大模型测试(七)Java主流大模型框架技术

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI测试、大模型测试(七)Java主流大模型框架技术

目录

一、大模型按「应用领域」分类

二、 主流框架技术特点

2.1 Spring AI框架

1、 pom依赖

2、 Spring AI特点

3、Spring AI 例子,Spring AI集成OpenAI并实现对话功能

2.2 LangChain4j框架

1、 LangChain4j简介

2、 LangChain4j使用

3、调用示例


一、大模型按「应用领域」分类

大模型按「应用领域」分类,可分为: 自然语言处理大模型、计算机视觉大模型和多模态大模型。

1.自然语言处理大模型自然语言处理大模型专注于处理和理解自然语言文本,涵盖文本分类、情感分析、机器翻译、问答系统等领域。常见的模型包括BERT、GPT系列、RoBERTa和ALBERT等。

2.计算机视觉大模型计算机视觉大模型专注于图像、视频等视觉数据的处理和分析,涵盖图像识别、目标检测、图像分割和图像生成等任务。此类模型通常采用卷积神经网络及其变种,或基于Transformer架构提取图像特征。

3.多模态大模型多模态大模型能够同时处理文本、图像、音频等多种类型的数据,实现跨模态的信息表示、理解与交互。此类模型在智能交互领域展现出了较强的适应性。

二、 主流框架技术特点

Java生态系统提供了多种开发框架选择, 主流框架技术:

- Spring AI:Spring生态集成,功能全面

- LangChain4j:灵感来自Python LangChain,链式调用

- Agents-Flex:国产框架,注重灵活性和性能

- Haystack:面向生产环境的搜索增强生成

**技术选型考量因素**

- 项目规模:大型项目适合Spring AI,轻量级场景考虑Agents-Flex

- 团队熟悉度:熟悉Spring生态的团队可优先选择Spring AI

- 性能要求:高并发场景需要评估框架的性能表现

- 功能需求:复杂代理场景可能需要更专业的框架支持

注: Midjourney和Stable Diffusion是专门用于从文本生成图像的模型,而ChatGPT擅长处理文本交互

2.1 Spring AI框架

1、 pom依赖

<!-- Spring AI -->

<dependency>

<groupId>org.springframework.ai</groupId>

<artifactId>spring-ai-openai-spring-boot-starter</artifactId>

<version>${spring-ai.version}</version>

</dependency>

2、 Spring AI特点

  • Spring AI支持处理语言、图像和音频等多种输入与输出格式。此外,Spring AI还提供对Embedding的支持,以实现更高级的用例,如多模态交互和跨领域应用。
  • Spring AI使用结构化输出转换器将字符串转换为JSON、XML或Java类等数据类型(大模型的输出是简单的字符串。即使请求以JSON格式返回,实际返回的也是字符串形式的JSON,而非真正的JSON数据结构)
  • Spring AI提供多种方法将用户数据和API集成到AI模型中,使其能够基于最新信息或外部系统数据进行响应。
  • 检索增强生成(Retrieval Augmented Generation,RAG)结合了检索与生成的优势,借助外部数据源弥补大模型自身知识的局限,提高生成内容的准确性和相关性,减少大模型的“幻觉”​。

3、Spring AI 例子,Spring AI集成OpenAI并实现对话功能

注:Chat-Gpt是由OpenAI开发的基于GPT-3.5架构的大型语言模型。OpenAI是一个非营利性人工智能研究实验室

注:Spring AI 也可以集成deepseek实现对话功能。

DeepSeek: 适用于需要高精度和领域专业知识的场景,例如医疗病历分析、金融风险评估等等(在特定领域应用中用户体验较好,结果可靠;但在通用对话中可能不如ChatGPT流畅)

ChatGPT: 适用于广泛的对话和生成任务,例如客服自动化、教育辅助、内容创作、编程帮助等

注:在实现基于Spring Boot框架的对话功能时,集成GPT(Generative Pre-trained Transformer)模型,特别是OpenAI的GPT-3或GPT-4,可以提供强大的自然语言处理能力。

注:要在Spring Boot应用中集成DeepSeek或其他类似模型,步骤类似。

步骤一,使用Spring Initializr创建项目+添加Spring Web依赖和OpenAI依赖

步骤二,配置API key,application.properties中配置OpenAI的API地址和密钥

注: API key可以保存在文件中,有时也支持保存在大模型平台上

步骤三,创建Controller并利用ChatClient通过链式调用实现对话功能

步骤四,访问/hwc/chat路径时,ChatClient响应请求并将应答结果返回至客户端

2.2 LangChain4j框架

1、 LangChain4j简介

LangChain4j 是LangChain 的 Java 实现,一款基于Java的轻量级框架, 专为构建基于大语言模型(LLM)的应用程序而设计。它是 LangChain 框架在 Java 社区的移植版本,旨在提供类似于 Python 中 LangChain 的功能和灵活性。LangChain 本身是用 Python 编写的,但它可以通过各种方式与 Java 应用程序集成;

LangChain4j的核心组件包括语言模型(Language Model)、记忆(Memory)、工具(Tool)等。其中,语言模型是核心,负责生成文本;记忆用于存储对话历史,以便模型能够进行上下文相关的回答;工具则可以扩展模型的能力,例如进行搜索、调用API等。

适用场景:

  • 聊天机器人:通过对话能力实现智能客服、虚拟助手等。
  • 问答系统:结合知识库,提供准确的问答服务。
  • 文本生成:生成文章、故事、代码等

2、 LangChain4j使用

第一步:

<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-core</artifactId> <version>最新版本号</version> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>最新版本号</version> </dependency>


第二步:通常需要在 application.properties 或 application.yml 文件中设置必要的配置,例如 API 密钥、模型选择

如果使用OpenAI的模型,需要在OpenAI官网注册账号并获取API Key

以OpenAI为例:langchain4j.openai.apiKey=你的OpenAI API Key

第三步:对话能力使用

@Service public class ChatService { private final ChatLanguageModel model; public ChatService() { model = new OpenAiChatModel(); } public String chat(String userMessage) { ConversationalRetrievalChain chain = ConversationalRetrievalChain.builder() .chatLanguageModel(model) .build(); return chain.execute(userMessage); } }
  • 设置角色参数:

你是一个{{role}},请用专业的角度回答:{{question}}

  • 设置会话记忆:
  • 自定义模型: 自定义模型允许开发者根据需求实现自己的语言模型,例如使用本地模型或自定义逻辑。

使用本地模型:例如使用本地的Transformer模型。

自定义逻辑:例如实现特定的文本生成逻辑。

  • 自定义工具允许开发者根据需求实现自己的工具,例如调用外部API或执行特定操作

调用外部API:例如调用天气API获取天气信息。

执行特定操作:例如调用系统命令执行操作。

  • 自定义链允许开发者根据需求实现自己的链,例如将多个任务串联起来。

串联多个任务:例如先进行文本生成,再进行情感分析。

实现复杂逻辑:例如根据条件选择不同的任务。

3、调用示例

https://cloud.tencent.com/developer/article/2512470

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/22 3:56:58

36、Linux 系统安全防护全攻略

Linux 系统安全防护全攻略 1. 物理环境安全 在保障 Linux 系统安全时,物理环境的安全是基础。 - 服务器空间访问控制 :对于服务器机房或配线柜,有不同的访问控制方法。使用带密码锁的特殊钥匙门是一种方式,但当员工离职时需更改密码,存在一定不便。而使用磁条卡是更实…

作者头像 李华
网站建设 2026/2/21 5:55:09

React Native语音识别终极指南:让你的应用听懂用户心声

React Native语音识别终极指南&#xff1a;让你的应用听懂用户心声 【免费下载链接】voice :microphone: React Native Voice Recognition library for iOS and Android (Online and Offline Support) 项目地址: https://gitcode.com/gh_mirrors/voi/voice 想象一下&…

作者头像 李华
网站建设 2026/2/20 23:29:24

字符串特性解析:Python不可变性引发的错误

引言 在Python编程中&#xff0c;字符串是最基础也是最常用的数据类型之一。[1]然而&#xff0c;许多开发者对于字符串的不可变性&#xff08;immutability&#xff09;特性理解不足&#xff0c;这导致了各种难以察觉的错误和性能问题。字符串的不可变性看似简单&#xff0c;实…

作者头像 李华