别只会写 Java 了!LangChain4J 带你弯道超车 AI 赛道

什么是LangChain4J

要想知道LangChain4j是什么,就要知道LangChain。

LangChain 是一个开源框架,用于构建基于大语言模型(LLM)的智能应用。它由 Harrison Chase 于 2022 年创建,现已成为 LLM 应用开发的事实标准之一。

LangChain4jLangChain 的官方 Java 实现 ,由 LangChain 核心团队支持,专为 Java 和 JVM 开发者设计,用于构建基于大语言模型(LLM)的智能应用,如 RAG(检索增强生成)、Agent(智能体)、对话系统等。

LangChain4j 官网:docs.langchain4j.dev/


LangChain 与 LangChain4j 的核心区别在于:它们是同一理念在不同编程语言生态中的官方实现

LangChain 最初是 Python 版本 ,而 LangChain4j 是其官方 Java/JVM 实现,由 LangChain 团队支持,专为 Java 开发者设计。

阿里百炼大模型

申请阿里百炼大模型,来对接qwen 大模型。

bailian.console.aliyun.com/

登录阿里云账号,进入模型服务,选择qwen-max模型,点击进入API参考页面

自行申请api-key即可

api-key配置页面

整合SpringBoot

基础对话问答

引入langchain、百炼大模型依赖

xml 复制代码
<properties>
        <java.version>17</java.version>
        <langchain4j.version>1.0.0-beta1</langchain4j.version>
</properties>

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

<dependency>
  <groupId>dev.langchain4j</groupId>
  <artifactId>langchain4j</artifactId>
  <version>${langchain4j.version}</version>
</dependency>



<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>

选择qwen-max

接入后,我们需要加载依赖到springboot项目中,搜索 dashscope-spring-boot-starter 找到AutoConfig

在配置文件中进行配置api-key、model-name信息

ini 复制代码
langchain4j.community.dashscope.chat-model.api-key=${apiKey} # 阿里百炼大平台申请apiKey
#langchain4j.community.dashscope.chat-model.model-name=qwen-max

测试AI基础问答

less 复制代码
@Resource
QwenChatModel qwenChatModel;

@RequestMapping("/chat")
public String test(@RequestParam(defaultValue="你是谁") String message) {
    String chat = qwenChatModel.chat(message);
    return chat;
}

效果

流式对话

加入依赖

xml 复制代码
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

增加代码

typescript 复制代码
@Resource
StreamingChatLanguageModel qwenStreamingChatModel;

@RequestMapping(value = "/stream_chat",produces ="text/stream;charset=UTF-8")
    public Flux<String> streamChat(@RequestParam(defaultValue="你是谁") String message) {
        return Flux.create(sink -> {
            qwenStreamingChatModel.chat(message, new StreamingChatResponseHandler() {
                @Override
                public void onPartialResponse(String partialResponse) {
                    sink.next(partialResponse);  // 逐次返回部分响应
                }

                @Override
                public void onCompleteResponse(ChatResponse completeResponse) {
                    sink.complete();  // 完成整个响应流
                }

                @Override
                public void onError(Throwable error) {
                    sink.error(error);  // 异常处理
                }
            });
        });
    }

测试效果

结语

LangChain4J是Java程序员面向AI应用开发的必备技能,通过此示例,我们可以基本的了解到在SpringBoot项目中如何对接AI来对自己的业务系统进行升级。 未来,Java AI应用开发是一个大趋势,作为Java程序员,AI是必备技能。

相关推荐
起个名字好难啊这也被占用了4 分钟前
Vite插件开发实战AI提交前审查代码坏味道
人工智能·ai编程
Code额8 分钟前
Python 连接 DeepSeek API,OpenAI 对话方式总结
后端·python·ai·ai编程
星火10248 分钟前
【LangChain4j系列10】Guardrails 安全护栏
人工智能·后端
四千岁9 分钟前
稀疏向量BM25Retriever不支持中文怎么办?jieba来帮忙
前端·javascript·后端
用户69190268133911 分钟前
Docker基本概念
后端·docker·容器
颜进强13 分钟前
14 - OpenSpec 老页面改造骨架:定位 + 增量 + 回归三件套
前端·后端·ai编程
唐青枫14 分钟前
别只把 switch 当成多路 if:Zig 模式匹配、状态机与 Tagged Union 实战
后端
步行cgn18 分钟前
MyBatis 错误 Result Maps collection does not contain value for ... 详解与解决方案
后端
用户2506949216121 分钟前
Cordis 从入门到实战:插件卸载后,别留下一地鸡毛
后端
SomeB1oody34 分钟前
【RustyML入门】5.3. 聚类指标
开发语言·后端·机器学习·rust·教程