springboot 整合 langchain4j 实现简单的问答功能

 更新时间:2025年04月23日 10:42:13   作者:旅行的狮子  
最近在学习langchain4j,本文将介绍如何使用langchain4j快速实现一个简单的问答功能,结合实例代码给大家介绍的非常详细,需要的朋友参考下吧

最近在学习langchain4j,本文将介绍如何使用langchain4j快速实现一个简单的问答功能,帮助大家快速入门。

1. 工具

  • JDK 17
  • Maven 3.9.9
  • IntelliJ IDEA 2024.3.4 (Community Edition)

2. apikey

可以优先选择阿里云百炼申请一个apikey,免费额度足够测试使用。

3. springboot项目创建

3.1 项目创建

创建springboot项目,与其他springboot项目创建方式一样,这里不再详细介绍。

3.2 依赖引入

这里只提供了部分依赖示例,使用的版本是1.0.0-beta2,完整依赖可以参考langchain4j官方文档,本文最后给出了完整pom.xml供大家参考。实际上三方依赖会经常更新,随着版本变化需要引入的依赖总是会有些区别,还是建议多查阅官方文档。

<!-- springboot 父依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.4</version>
</parent>
<dependencies>
    <!-- springboot web 模块 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- langchain4j 集成 springboot相关的依赖 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
    </dependency>
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j</artifactId>
    </dependency>
</dependencies>

3.3 配置文件

application.yml 配置文件内容如下:

langchain4j:
  open-ai:
    chat-model:
      log-requests: true
      log-responses: true
      temperature: 0.5
      max-tokens: 4096
      base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
      model-name: qwen-plus
      api-key: ${API_KEY} # 需要替换成自己申请的apikey
      # base-url: https://api.deepseek.com/v1
      # model-name: deepseek-reasoner
      # api-key: ${API_KEY}
logging.level.dev.langchain4j: DEBUG

4. 代码编写

4.1 启动类

先准备springboot启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4.2 controller

编写一个接口,注入ChatLanguageModel,写一个最简单的接口测试。

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.service.AiServices;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ChatController {
    @Resource
    ChatLanguageModel chatLanguageModel;
    @GetMapping("/chat")
    public String model(@RequestParam(value = "message") String message) {
        return chatLanguageModel.chat(message);
    }
}

4.3 测试

启动项目,用postman调用接口进行简单测试:

参考

完整的pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.chenf24k.tools</groupId>
    <artifactId>cf-langchain</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.4</version>
    </parent>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <langchain4j.version>1.0.0-beta2</langchain4j.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-bom</artifactId>
                <version>${langchain4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-open-ai</artifactId>
        </dependency>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mapdb</groupId>
            <artifactId>mapdb</artifactId>
            <version>3.0.9</version>
            <exclusions>
                <exclusion>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <artifactId>kotlin-stdlib</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

到此这篇关于springboot 整合 langchain4j 实现简单的问答功能的文章就介绍到这了,更多相关springboot langchain4j 问答内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaMail实现邮件发送机制

    JavaMail实现邮件发送机制

    这篇文章主要为大家详细介绍了JavaMail实现邮件发送机制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • SpringCloud大文件分片断点上传实现原理

    SpringCloud大文件分片断点上传实现原理

    这篇文章主要介绍了SpringCloud大文件分片断点上传实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java Stream的基本概念以及创建方法

    Java Stream的基本概念以及创建方法

    这篇文章主要介绍了Java Stream的基本概念以及创建方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • SpringCloud的Eureka模块详解

    SpringCloud的Eureka模块详解

    这篇文章主要介绍了SpringCloud的Eureka模块详解,Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理,就是提供了微服务架构中各微服务实例的快速上线或下线且保持各服务能正常通信的能力的方案总称,需要的朋友可以参考下
    2023-07-07
  • spring boot集成WebSocket日志实时输出到web页面

    spring boot集成WebSocket日志实时输出到web页面

    这篇文章主要为大家介绍了spring boot集成WebSocket日志实时输出到web页面展示的详细操作,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java中Reactor的反应器模式详解

    Java中Reactor的反应器模式详解

    这篇文章主要介绍了Java中Reactor的反应器模式详解,Reactor反应器模式有点儿类似事件驱动模式,当有事件触发时,事件源会将事件dispatch分发到handler处理器进行事件处理,反应器模式中的反应器角色类似于事件驱动模式中的dispatcher事件分发器角色,需要的朋友可以参考下
    2023-12-12
  • Java中的线程生命周期核心概念

    Java中的线程生命周期核心概念

    这篇文章主要介绍了Java中的线程生命周期核心概念,通过使用一个快速的图解展开文章内容,需要的小伙伴可以参考一下
    2022-06-06
  • Java选择排序思路详解

    Java选择排序思路详解

    这篇文章给大家介绍Java选择排序思路详解,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-12-12
  • 剖析Java中线程编程的概念

    剖析Java中线程编程的概念

    这篇文章主要介绍了Java中线程编程的概念,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • Springboot详解RocketMQ实现消息发送与接收流程

    Springboot详解RocketMQ实现消息发送与接收流程

    这篇文章主要介绍了SpringBoot整合RocketMQ实现消息发送和接收功能,我们使用主流的SpringBoot框架整合RocketMQ来讲解,使用方便快捷,本文分步骤给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论