Java程序员接入AI的另一种姿势:LangChain4j

Java对接AI大模型(一)【Langchain4j】 随着AI大模型技术的升起,人们越来越感觉到生活上的便捷以及人机对话照进现实.什么是大模型呢?大模型(Large Model),通常是指参数量非常庞大的深度学习模型,特别是在自然语言处理(NLP)、计算机视觉(CV)等领域中,模型参数数量达到数十亿甚至数千亿的规模。为了弥补Java在AI领域的工具短板,现在市面上出现了几款针对Java的AI开发工具. 阅读详情

01 引言

提起 LLM 应用开发,绝大部分的开发还是Python。虽然Spring AI已经正式发布,但是使用上总觉得差点东西。

LangChain4j很早就听人说了,但是一直没有来得及使用。这一节一起了解一下LangChain4j的简单使用。

02 简介

LangChain4j是LangChain 的 Java/JVM 版本。目标是让 Java 开发者能在自己的技术栈里,像 Python 开发者一样方便地构建 LLM 应用。不同的是,它不是简单移植,而是深度适配 Java 生态——Quarkus、Spring Boot``、Helidon` 原生集成,依赖注入、接口代理,一切都是 Java 开发者熟悉的方式。

LangChain4j 是一个 Java 库,用于构建 LLM 驱动的应用程序。它提供:

  • 统一 API:对接市面上几乎所有主流 LLM(OpenAI、Anthropic、Google Gemini、国内的通义千问、智谱等)和向量数据库(Pinecone、Milvus、Weaviate、Chroma 等),无需关心各家的 SDK 差异。
  • Java 原生设计:不是从 Python 翻译过来,而是从零开始用 Java 思维设计,充分利用 Java 的接口、注解、泛型、依赖注入等特性。
  • 分层抽象:既有底层组件(ChatModel、ChatMessage)满足定制需求,也有高层抽象(AI Services、RAG)让你少写代码。

最低支持 JDK 17。

官网地址:https://docs.langchain4j.dev/

GitHub地址:https://github.com/langchain4j/langchain4j

03 入门

3.1 引入依赖

使用 Maven(推荐使用 BOM 管理版本):

dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j-bom</artifactId>
      <version>1.15.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
  </dependency>
  <dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
  </dependency>
</dependencies>

3.2 简单测试

没有 API Key?LangChain4j 还提供了一个 demo key,限制使用 gpt-4o-mini 模型,供快速体验:

OpenAiChatModel model = OpenAiChatModel.builder()
    .baseUrl("http://langchain4j.dev/demo/openai/v1")
    .apiKey("demo")
    .modelName("gpt-4o-mini")
    .build();

结果:

这就完成接入,就是这么直接。

3.3 接入其他厂商

管方默认提供了open-ai的案例,我们试试Ollama。

langchain4j针对不同的尝试使用了不同的依赖,所以我们要继续引入ollama的依赖。

 <dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
</dependency>

测试案例:

@Test
void testOllama() {
    OllamaChatModel model = OllamaChatModel.builder()
            .baseUrl("http://10.100.213.26:11434")
            .modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
            .build();

    String response = model.chat("你是什麽模型");
    System.out.println(response);
}

模型的名称,大家根据自己本地的那模型填写对应的名称。

结果:

我们可以看到完全独立,不依赖Spring生态。

04 进阶

AI Services:把 LLM 当服务写,这是 LangChain4j 最核心的高层抽象,也是体验最好的部分。

核心思路

参考 Spring Data JPA 和 Retrofit 的思路:你声明一个接口,框架通过动态代理生成实现类。接口里定义业务方法,框架负责处理 Prompt 构造、LLM 调用、输出解析等底层工作。

4.1 定义接口

public interface Assistant {

    String chat(String message);
}

4.2 调用

LangChain4j提供了dev.langchain4j.service.AiServices抽象类用来构建接口的实现。

@Test
void testAiService() {
    OllamaChatModel model = OllamaChatModel.builder()
            .baseUrl("http://10.100.213.26:11434")
            .modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
            .build();

    Assistant assistant = AiServices.create(Assistant.class, model);
    String response = assistant.chat("hello");
    System.out.println(response);
}

单独的模型可以直接调用,而AiService则将调用抽象成方法,可以根据不同的模型构建不同的实现。

4.3 注入角色设定

我重新定义一个接口,注入角色设自定。

public interface Friend {

    @SystemMessage("你是我的朋友,总能给我提供情绪价值。")
    String chat(String userMessage);
}

@SystemMessage正是用来提供角色设定的关键注解。

我们直接看看调用结果:

05 SpringBoot集成

官方也提供了与SpringBoot的集成方式。

5.1 引入依赖

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

5.2 接口改造

在 Spring Boot 中,配置好依赖后,AI Service 直接作为 Bean 注入即可,完全不需要手动调用 AiServices.create。

@AiService
public interface Friend {

    @SystemMessage("你是我的朋友,总能给我提供情绪价值。")
    String chat(String userMessage);
}

其中@AiService是自动将接口作为Bean注入。

5.3 配置

因为直接使用框架,我们就需要配置ollama的参数。

langchain4j.ollama.chat-model.base-url=http://10.100.213.26:11434
langchain4j.ollama.chat-model.model-name=modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest

5.4 调用

@SpringBootTest
class BootLangChain4jTests {

    @Autowired
    private Friend friend;

    @Test
    void contextLoads() {
        String response = friend.chat("我失恋了");
        System.out.println(response);
    }
}

结果展示:

06 小结

到这里就已经基本入门了,后面我们将继续探索更深层次的用法。总体感觉用起来不Spring AI要顺畅一些。

Langchain4j框架-Java程序员的大模型框架 LangChain4j 可以理解是Java版本的LangChain,是一个旨在简化将大型语言模型(LLM)集成到 Java 应用程序中的框架。它帮我们封装了不同LLM 提供商(如 OpenAI、Google Vertex AI)的专有API方便在不同 LLM 或嵌入式存储之间切换,而无需重写代码。该项目于 2023 年初启动,旨在填补 Java 生态系统中缺乏 LLM 库和框架的空白。 阅读详情

相关推荐

使用Java和LangChain4j实现人工智能:从分类到生成式AI

LangChain4j 是一个专为 Java 设计的 AI 框架,灵感来源于 Python 的 LangChain,但完全基于 Java 开发。生成式 AI:生成文本、代码或图像。分类任务:基于训练数据进行预测。嵌入模型:处理文本相似性或搜索。工具集成:与外部 API 和数据集无缝交互。LangChain4j 的模块化设计使其适合快速原型开发和企业级应用。

静水深流 1128

Java开发者零基础接入AI:Spring AI与LangChain4j实战指南

大模型应用开发并非Python专属,其核心在于API调用、上下文管理与业务流程编排,这恰好是Java后端工程师的强项。Spring AI与LangChain4j两大框架的出现,让Java开发者无需转型即可融入AI赛道。Spring AI将大模型封装为Spring生态中的普通组件,通过ChatClient实现对话、结构化输出与流式响应;LangChain4j则聚焦Agent与RAG场景,借助@Tool注解赋予模型调用工具的能力,并通过检索增强让模型回答私有业务知识。从知识库问答到智能运维助手,从对话机器人到多

weixin_29038303的博客 227

Spring AI vs LangChain4j:Java AI开发框架完整对比指南

SystemMessage("你是一个专业的客服助手")@SystemMessage("分析以下文本的情感")@SystemMessage("总结以下内容")// 使用.build();String response = assistant.chat("你好");@Tool("查询用户信息")public String queryUser(@P("用户ID") String userId) {try {",return "用户不存在";

java_beautiful的博客 1822

AI大模型企业应用实战:Prompt让LLM理解知识

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

2401_84204413的博客 3205

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

是一个功能丰富、易于使用的Java AI开发框架,特别适合需要快速集成和使用大型语言模型的Java开发者。项目特点多语言模型支持:○ 支持多种大语言模型(LLM),包括OpenAI、Anthropic、Cohere等。○ 提供了统一的API接口,使得切换不同的语言模型变得简单。丰富的功能:○ LLM访问:轻松调用不同的语言模型进行文本生成、对话等任务。○ Prompt定义:提供了灵活的Prompt定义方式,支持动态生成和模板化。

m0_74824823的博客 1372

深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?

首先介绍 AI 时代 Java 开发框架选择背景,接着对比两者功能特性(Spring AI 的生态集成与标准化设计、LangChain4j 的多模型适配与提示工程)、应用场景(企业级系统改造与创新产品开发)、开发体验(学习成本与调试工具)、生态扩展(Spring 商业支持与 LangChain4j 开源社区)、性能安全(企业级优化与自主安全实现)及成本趋势(短期投入、长期回报与技术演进),最后给出选型建议与混合架构方案。

博客 5442

java接入AI大模型个人实践(一)

近来工作比较清闲、当然这也得益于AI技术的日益成熟、由于一直使用的是发小公司的AI大模型产品、博主也没有跟上潮流去研究如何接入个人项目,心血来潮,浅浅研究一下如何接入个人项目

小金的博客 3735

智能车竞赛蚂蚁搬家组:NXP-MicroPython与STC单片机协同搬运策略解析

本文深入解析智能车竞赛蚂蚁搬家组中NXP-MicroPython与STC单片机的协同搬运策略。通过硬件选型、通信架构设计、效率优化及实战经验分享,展示了如何利用NXP-MicroPython的实时控制与STC单片机的感知导航优势,实现高效多智能体协同作业,为参赛团队提供实用技术参考。

motor的博客 1077

java接入 ai大模型

在Java中接入大型语言模型(LLM,例如OpenAI的GPT系列)可以通过多种方式实现,主要依赖于OpenAI提供的API。以下是一些步骤和示例代码,帮助你在Java项目中接入和使用这些模型。

yang1276的博客 2452

GROMACS自由能景观图绘制全流程:从PCA分析到Origin 3D可视化(附避坑指南)

本文详细解析了使用GROMACS绘制自由能景观图的全流程,涵盖从PCA分析、数据预处理、自由能计算到最终在Origin中进行3D可视化的完整步骤。文章重点分享了数据处理与格式转换中的常见“避坑”指南,帮助研究者从分子动力学轨迹中有效提取并解读构象自由能信息,深化对生物大分子动力学过程的理解。

oauth7security的博客 309

Matlab实战:用卡尔曼滤波搞定无人机GPS轨迹优化(附完整代码)

本文详细介绍了如何使用Matlab实现卡尔曼滤波(KF)算法优化无人机GPS轨迹,提供完整代码和工程实践指南。通过线性卡尔曼滤波技术,有效降低定位噪声,提升轨迹平滑度,适用于无人机导航和控制系统开发。

weixin_29061425的博客 253

Java接入AI接口

本篇主要以jdk8版本的项目实现(手搓)ai接口的接入,实现AI对话

2301_79425914的博客 1131

ArchLinux下用Wine运行钉钉全攻略:从字体配置到中文输入法避坑

本文详细介绍了在ArchLinux系统上使用Wine运行钉钉的完整配置流程。从最新的WoW64架构环境准备、中文字体配置与DPI优化,到钉钉安装、关键系统库替换,再到解决中文输入法失效等核心难题,提供了实战避坑指南。旨在帮助Linux用户在企业办公场景下,获得接近原生的稳定使用体验。

alice7model的博客 585

Java程序员的AI之LangChain4j(一)从零到企业级AI开发

让JAVA程序员更快的理解AI接入的LangChain4j

qq1071643762的博客 1万+

外部ADC之AD7949——14bit、8通道、250k

在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。

cyaya6的博客 6707

建立时间与保持时间

建立时间与保持时间的计算 文章目录1、建立时间与保持时间概述及模型2、寄存器之间数据传输时建立时间与保持时间3、寄存器之间数据传输时建立时间余量与保持时间余量计算4、 FPGA允许的最大时钟频率或最小时钟周期5、计算FPGA时钟所允许的最大频率或最小时钟周期6、违反建立和保持时间会发生什么? 1、建立时间与保持时间概述及模型 建立时间(Tsu): 在时钟采样之前,输入必须稳定一段时间,该时间量称为建立时间。 理想最优建立时间: 保持时间(Th): 在时钟沿之后输入到触发器稳定所需的最短时间。 理想最优

Crazzy_M的博客 3万+

《四种姿势用Java玩转AI大模型:从原生HTTP到LangChain4j》

本文介绍了四种在Java项目中接入AI大模型的实用方法,重点以阿里云Qwen3模型为例进行演示。首先介绍了SDK接入方式,通过Maven依赖和API密钥实现快速集成;其次讲解了HTTP接入方案,适用于不支持SDK的语言环境;然后详细解析了SpringAI框架的核心价值与特性,包括跨供应商API、向量数据库支持等功能;最后探讨了LangChain4j框架的特点及其与SpringAI的对比。作者推荐使用SpringAI方案,因其与Spring生态的无缝集成和易用性,同时提供了完整的代码示例帮助开发者快速实现AI

程序员天天困的博客 1284

RK3588平台开发系列讲解(DMA篇)DMA engine使用

Linux 内核的 DMA 引擎提供了一组完整的接口,用于申请和释放 DMA 通道、准备 DMA 描述符、启动和控制 DMA 传输,以及同步和管理缓存。通过这些接口,内核能够高效地处理异步的 DMA 传输任务,减少 CPU 的干预,提高数据传输的效率。

内核笔记 1831

Java开发AI项目,太爽了!LangChain4j保姆级教程

这个教程是用一个编程小助手项目带大家在实战中依次学习 LangChain 几乎所有主流的用法和特性。

努力做最接地气的编程干货分享,感谢关注 4884

第10篇:Agent + 爬虫 = 全自动数据采集专家

在企业级数据采集场景中,传统爬虫的痛点已经到了无法忽视的地步:而Agent + 爬虫的组合,就是这些痛点的终极解决方案。它的核心逻辑是:把爬虫从「人工写死的固定执行脚本」,升级为「能自主分析、自主决策、自主适配、自主修复的智能采集机器人」。我们在生产环境中做过对比测试:传统爬虫开发10个网站的采集脚本需要3人天,而Agent采集机器人只需要3分钟,页面改版后的修复成本从1人天降到了0,采集任务的成功率从62%提升到了95%以上。终端执行以下命令,安装基础依赖,与前9篇环境完全兼容: 二、核心能力拆解:Age

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1576

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

快速接入AI大模型 - Langchain4j 实战

前面我们根据官网的文档描述,编写了一个简单的入门案例,相信你可能有点感觉了,接下来我们就来简单介绍下 Langchain4j 是什么,能做什么以及出现的背景和主要解决什么问题。en,头大了,真不上写这些没有意义的文字,,,,前面我们 既然它能和GPT交互,那我们也可以直接GPT吧。修改一下chat 方法的入参String answer = model.chat("我现在很想知道 Langchain4j 是什么,能做什么,出现的背景以及它主要是为了解决什么问题");运行main函数后我们看控制台输出的信息。

代码洁癖症患者 9876

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI

LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI

和时间做朋友,终身学习 2155

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LangChain4j系列:带你入门LangChain4j框架

本文所有示例均在 langchain4j 0.31.0 版本之上进行,langchain4j也是在快速发展的阶段。

2301_81940605的博客 1万+

「Java AI实战」LangChain4J接入Xinference本地大模型

随着大语言模型(LLM)的持续火热,LangChain 成为构建智能应用的事实标准。而对于 Java 开发者而言,LangChain4J 则是一把通往 AI 应用开发的新钥匙。它不仅封装了与 OpenAI、HuggingFace、Baidu、Azure 等模型服务的接入能力,更提供了类似 LangChain 的链式调用编排、上下文管理、Agent 机制、工具集成等核心功能,让 Java 开发者也能便捷地构建问答系统、RAG 应用、多轮对话、智能代理等 LLM 应用。

OFFTime_we的博客 1785

有了LangChain4j+Cursor ,Java 开发AI应用也就简单多了

有了LangChain4j+Cursor ,Java 开发AI应用也就简单多了

大数据指北 1950

LangChain4j(1):初识LangChain4j

LangChain是一个大模型的开发框架,使用LangChain框架,程序员可以更好的利用大模型的能力,大大提高编程效率。如果你是一个lava程序员,那么对LangChain最简单直观的理解就是,LangChain是大模型领域的Spring。LangChain不光提供了一整套快速接入各种开放大模型的工具,更重要的是,他集成了当今程序员使用大模型能力最好的方案。LangChain是一个基于Python开发的框架,而Langchain4j则是Langchain的]ava版本。

u013938578的博客 1934
上一篇: 57K星标的开源AI视频神器:三分钟出片,零门槛
下一篇: langchain4j进阶:AI记忆与RAG
智_永无止境
博客等级 码龄10年 803粉丝 403原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值