news 2026/2/12 14:15:12

LangChan4j在SpringBoot配置并且接入模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChan4j在SpringBoot配置并且接入模型

1、概述

1、简介

LangChain4j 的目标是简化将大语言模型(LLM - Large Language Model)集成到 Java 应用程序中的过程。

LangChain4J是LangChain(Python) 的 Java 移植版,遵循其原设计理念,灵活、模块化、非侵入式,是通用性很强的工具包。虽然LangChain4j是Python LangChain的 Java 实现,但并非简单移植,而是融合了 LangChain、Haystack、LlamaIndex 等框架的理念,专为 Java 开发者优化。

以 LLM为中心,注重模块化和灵活性,提供了统一的 API 来适配多种 LLM 和向量存储,适合需要高度定制化的场景。更灵活,模块化设计让开发者可以自由组合功能,适合构建复杂、定制化的 AI 工作流。

2、核心概念

LangChain4j旨在让 Java 开发者能够轻松集成 LLM、向量存储、外部工具和记忆管理,构建复杂的 AI 驱动应用(如聊天机器人、RAG 系统、代理工作流等)。

设计理念:

  • 模块化:提供松耦合的组件(如模型集成、向量存储、工具调用),开发者可按需组合。
  • 统一 API:为不同的 LLM 和向量存储提供一致的接口,降低适配成本。
  • Java 友好:使用 Java 的习惯(如 Builder 模式),并支持 GraalVM 以优化云原生部署。

社区与生态:由活跃的开源社区维护(GitHub 仓库:langchain4j/langchain4j),支持广泛的 LLM 提供商和向量存储,更新频繁。

2022 年11月30日OpenAI发布了Chat GPT(GPT-3.5)

早在 2022 年10月,Harrison Chase 发布了基于Python的LangChain。

随后同时包含了Python版和JavaScript(LangChain.js)版的LangChain 也发布了。

2023 年 11 月,Quarkus 发布了 LangChain4j 的 0.1 版本,2025 年 2 月发布了 1.0 - Beta1 版本,4 月发布了 1.0 - Beta3 版本

中文官网网站:https://docs.langchain4j.info/

3、主要功能

与大型语言模型和向量数据库的便捷交互

通过统一的应用程序编程接口(API),可以轻松访问所有主要的商业和开源大型语言模型以及向量数据库,使你能够构建聊天机器人、智能助手等应用。

专为Java打造

借助Spring Boot 集成,能够将大模型集成到ava 应用程序中。大型语言模型与 Java 之间实现了双向集成:你可以从 Java 中调用大型语言模型,同时也允许大型语言模型反过来调用你的 Java 代码

智能代理、工具、检索增强生成(RAG

为常见的大语言模型操作提供了广泛的工具,涵盖从底层的提示词模板创建、聊天记忆管理和输出解 析,到智能代理和检索增强生成等高级模式。

4、 背景

1.大型语言模型

语言模型是自然语言的概率模型,可以生成一系列单词的概率。大型语言模型 (<LLM)则是以其规模庞大而著称,通常包含数十亿参数的人工神经网络。
大型语言模型通常通过在大量未标记数据上进行预训练 ,使用自监督学习和弱监督学习技术。之后,通过微调和提示词工程等技术将预训练模型适配于特定任务

大型语言模型可以执行多种自然语言处理任务,如语言翻译、内容摘要等。此外,它们还具备生成内容的能力,因此在回答问题等应用场景中非常有用。
几乎所有主流云服务提供商都在其服务中引入了大型语言模型 。例如,Microsoft Azure 提供了 Llama 2 和 OpenAI GPT-4,Amazon Bedrock 提供了 AI21 Labs、Anthropic、Cohere、Meta 和 Stability AI 的模型。

2.提示词工程

大型语言模型是一种基础模型,经过大规模文本数据的训练后,可以捕捉人类语言的语法和语义。然而,为了让模型执行特定任务,它们需要进一步调整。
提示词工程(Prompt engineerin) 是让语言模型完成特定任务的最快捷方法之一。它通过结构化文本向模型描述任务目标,使其能够理解并执行任务

提示词帮助大型语言模型执行上下文学习,这种学习是暂时的。通过提示词工程,可以促进大型语言模型的安全使用,并构建新的功能,比如将领域知识和外部工具整合到模型中。

这一领域目前是一个活跃的研究方向,不断涌现新的技术。然而,诸如链式思维提示等技术已经变得颇为流行。这种方法的核心是让大型语言模型在给出最终答案之前,将问题分解为一系列中间步骤。

3. 词向量

如前所述,大型语言模型能够高效处理自然语言。如果我们将自然语言中的单词表示为词向量(Word Embeddings ),模型的性能将显著提升。词向量是能够编码单词语义的实值向量词向量通常通过算法生成,例如Word2vec或GloVe。
GloVe是一种无监督学习算法 ,在语料库的全局词共现统计上进行训练:

在提示词工程中,我们将提示转换成词向量,这使得模型更容易理解和响应提示。此外,它也对增强我们提供给模型的上下文非常有帮助,从而使模型能够给出更具上下文意义的回答。

例如,我们可以从现有数据集中生成词向量并将其存储在向量数据库中。然后,我们可以使用用户提供的输入在向量数据库中执行语义搜索 ,并将搜索结果作为附加上下文提供给模型。

4. 与spring ai 对比

特性维度LangChain4JSpring AI
背景与生态源自流行的 Python LangChain 项目,社区驱动。Spring 官方项目,是 Spring 生态的一部分,有VMware/Pivotal背书。
设计哲学工具包 (Library):提供构建AI应用所需的各种工具和组件,高度模块化,灵活性强。框架 (Framework):提供一站式的解决方案,遵循约定优于配置,与Spring生态无缝集成。
编程模型传统的 API 调用风格。需要自己管理组件(如模型、记忆、工具)的创建和组装。深度集成 Spring Boot 的编程模型(如自动配置、@EnableAi、@Bean)。大量使用 AOT(提前编译) 原生支持。
依赖注入不强制,可以选择任何DI容器(如Spring, Guice)来管理它的组件,或者不用。强制且深度依赖 Spring 的 IOC 容器。所有核心组件(如ChatClient, EmbeddingClient) 都是 Spring Bean。
模块化极其模块化。每个功能(如与不同模型的连接器、工具、记忆存储)都是独立的模块,按需引入,避免膨胀。相对集中。虽然功能也在拆分,但更倾向于提供一个“全家桶”式的 starter(如spring-ai-openai-spring-boot-starter)。
特色功能Agent(智能体) 功能非常强大和灵活,支持多种Agent类型和工具调用模式。Spring 生态集成是其最大特色(如AI+Spring Data Vector DB,AI+Spring Security)。输出结构化(强制JSON格式)做得非常优雅。

总的来说:

  • Spring AI优势在于:和Spring生态深度集成、配置优雅、企业级稳定,非常适合现有 Spring 项目快速接入
  • <LangChain4j则更偏向模块化、面向复杂流程、丰富的 AI 工具链和 RAG 支持,但使用复杂、文档和学习成本更高

2、SpringBoot接入LangChain4j

1、LangChain4j 库结构

LangChain4j 具有模块化设计,包括:

  1. langchain4j-core 模块,它定义了核心抽象概念(如聊天语言模型和嵌入存储)及其 API。
  2. 主 langchain4j 模块,包含有用的工具,如文档加载器、聊天记忆实现,以及诸如人工智能服务等
    高层功能。
  3. 大量的 langchain4j-{集成} 模块,每个模块都将各种大语言模型提供商和嵌入存储集成到
    LangChain4j 中。你可以独立使用 langchain4j-{集成} 模块。如需更多功能,只需导入主 langchain4j
    依赖项即可。

2、添加LangChain4j相关依赖

<properties> <langchain4j.version>1.0.0-beta3</langchain4j.version> </properties> <dependencies> <!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--引入langchain4j依赖管理清单--> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-bom</artifactId> <version>${langchain4j.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

3、创建配置文件

langchain4j: # 阿里百炼平台 community: dashscope: chat-model: api-key: xxx model-name: qwen3-max # opean-ai相关的 open-ai: chat-model: api-key: xxx(自己申请的密钥) model-name: deepseek-chat log-requests: true log-responses: true base-url: https://api.deepseek.com/v1

4、测试实例

/** * 整合SpringBoot */@AutowiredprivateOpenAiChatModelopenAiChatModel;@TestpublicvoidtestSpringBoot(){//向模型提问Stringanswer=openAiChatModel.chat("你好");//输出结果System.out.println(answer);}

LangChain4j支持接入的大模型LangChain4j支持的大模型

3、ollama本地部署

1、ollama介绍

Ollama 是一个本地部署大模型的工具。使用 Ollama 进行本地部署有以下多方面的原因:

  • 数据隐私与安全:对于金融、医疗、法律等涉及大量敏感数据的行业,数据安全至关重要。
  • 离线可用性:在网络不稳定或无法联网的环境中,本地部署的 Ollama 模型仍可正常运行。
  • 降低成本:云服务通常按使用量收费,长期使用下来费用较高。而 Ollama 本地部署,只需一次性投
  • 入硬件成本,对于需要频繁使用大语言模型且对成本敏感的用户或企业来说,能有效节约成本。
  • 部署流程简单:只需通过简单的命令 “ollama run < 模型名>”,就可以自动下载并运行所需的模型。
  • 灵活扩展与定制:可对模型微调,以适配垂直领域需求。

2、ollama部署deepseek

官网:ollama官网

(1)下载并安装ollama: OllamaSetup.exe

(2)查看模型列表,选择要部署的模型,模型列表:模型列表

(3)执行命令: ollama run deepseek-r1:1.5 运行大模型。如果是第一次运行则会先下载大模型

3、常用命令

4、ollama的依赖项

<!-- 接入ollama --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-ollama-spring-boot-starter</artifactId> </dependency>

5、ollama配置项

ollama: chat-model: base-url: http://localhost:11434 log-requests: true log-responses: true model-name: deepseek-r1:1.5b

测试用例:

@AutowiredprivateOllamaChatModelollamaChatModel;@TestpublicvoidtestOllama(){//向模型提问Stringanswer=ollamaChatModel.chat("你好");//输出结果System.out.println(answer);}

4、阿里百炼平台

1、什么是阿里百炼

  • 阿里云百炼是 2023 年 10 月推出的。它集成了阿里的通义系列大模型和第三方大模型,涵盖文本、 图像、音视频等不同模态。
  • 功能优势:集成超百款大模型 API,模型选择丰富;5-10 分钟就能低代码快速构建智能体,应用构 建高效;提供全链路模型训练、评估工具及全套应用开发工具,模型服务多元;在线部署可按需扩 缩容,新用户有千万 token 免费送,业务落地成本低。
  • 支持接入的模型列表:模型列表
  • 模型广场:模型广场

点击免费体验

点击开通服务

2、配置apiKey

申请apiKey:apiKey

3、添加依赖

LangChain4j参考文档:参考文档

<dependencies><!--接入阿里云百炼平台--><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId></dependency></dependencies><dependencyManagement><dependencies><!--引入百炼依赖管理清单--><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-bom</artifactId><version>${langchain4j.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
community:dashscope:chat-model:api-key:sk-2a180c67d74f47b9aa12f8c8c4eb2fcb model-name:qwen3-max

4、测试用例

生成对话:

/** * 通义千问大模型 */@AutowiredprivateQwenChatModelqwenChatModel;@TestpublicvoidtestDashScopeQwen(){//向模型提问Stringanswer=qwenChatModel.chat("你好");//输出结果System.out.println(answer);}

生成图片:

@TestpublicvoidtestDashScopeWanx(){WanxImageModelwanxImageModel=WanxImageModel.builder().modelName("wan2.6-t2v").apiKey("sk-2a180c67d74f47b9aa12f8c8c4eb2fcb").build();Response<Image>response=wanxImageModel.generate("奇幻森林精灵:在一片弥漫着轻柔薄雾的 古老森林深处,阳光透过茂密枝叶洒下金色光斑。一位身材娇小、长着透明薄翼的精灵少女站在一朵硕大的蘑菇上。她有着海藻般的绿色长发,发间点缀着蓝色的小花,皮肤泛着珍珠般的微光。身上穿着由翠绿树叶和白色藤蔓编织而成的 连衣裙,手中捧着一颗散发着柔和光芒的水晶球,周围环绕着五彩斑斓的蝴蝶,脚下是铺满苔藓的地面,蘑菇和蕨类植物丛生,营造出神秘而梦幻的氛围。");System.out.println(response.content().url());}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 4:37:05

实验四 ysy

/* project1_add.增加数据 */ #include <stdio.h> #include <stdlib.h>typedef struct {int id; // 产地IDchar name[50]; // 产地名称int yield; // 产量&#xff08;吨&#xff09; } OrangeFarm;int main() {OrangeFarm new_farm; // 本次只需定义一个结…

作者头像 李华
网站建设 2026/2/6 15:01:14

拥抱大数据领域数据服务,迎接数字时代挑战

拥抱大数据领域数据服务&#xff0c;迎接数字时代挑战 引言&#xff1a;数字时代的“数据焦虑” 凌晨两点&#xff0c;某零售企业的IT主管王磊盯着电脑屏幕上的报警信息发愁——营销部门刚发来紧急需求&#xff1a;“明天要推出‘618预热活动’&#xff0c;需要近30天所有门店的…

作者头像 李华
网站建设 2026/2/8 8:24:40

2025 零代码 AI 落地神器曝光

一、场景痛点与核心目标 场景痛点 企业落地 AI 应用时&#xff0c;常面临技术整合复杂、落地周期长、成本不可控、商用配套缺失等实际问题&#xff1a;多工具拼接易出现兼容性隐患&#xff0c;非技术团队难以独立完成配置&#xff1b;自研商用模块&#xff08;用户管理、支付…

作者头像 李华
网站建设 2026/2/6 15:17:44

雷达液位计工作原理是什么?(脉冲雷达 vs FMCW 雷达)

​ ​微波如何成为工业的“智慧之眼”&#xff1f;​ ​在现代工业的复杂环境中&#xff0c;精准测量液位是安全与效率的基石。雷达液位计&#xff0c;这项看似神秘的微波探测技术&#xff0c;正以其非接触、高精度的特性&#xff0c;默默守护着无数储罐与反应釜。它究竟…

作者头像 李华
网站建设 2026/2/6 21:18:05

【必读收藏】从写代码到“调教“AI:我的转型之路与开发方式革命

从Java程序员转型为AI应用开发工程师的经历。工作内容从编写CRUD接口变为研究大模型能力边界和设计AI业务流程。开发方式从直接写代码转变为与AI工具协作。思维方式从"工具人"升级为"编排师"&#xff0c;利用自身系统架构和业务经验优势&#xff0c;实现人…

作者头像 李华
网站建设 2026/2/10 5:35:59

牛批了,磁盘清理神器

今天给大家带来一款好用的硬盘清理软件&#xff0c;可以更好的管理电脑的硬盘存储空间&#xff0c;有需要的小伙伴一定要及时下载收藏。 HDCleaner 硬盘清洁器 这款软件功能非常多&#xff1a;包括电脑垃圾清理、注册表清理、永久删除文件、磁盘分析和整理等功能。 在清理栏目…

作者头像 李华