LangChain4j集成SpringBoot接入百炼大模型(Qwen)

LangChain4j是专为Java开发者设计的大语言模型(LLM)集成框架,支持多种AI模型和向量数据库,简化了Java应用程序与大模型的交互过程。

集成案例实现详细过程

1、开发准备工作

1.1 环境配置要求

  • JDK 17
  • SpringBoot 3.4.2
  • LongChain4j 1.1.0-beta7

1.2 登录阿里云百炼申请API-Key

2、配置SpringBoot项目的pom.xml

各种依赖对应的版本信息

复制代码
<properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.4.2</spring-boot.version>
        <langchain4j-bom.version>1.1.0</langchain4j-bom.version>
        <langchain4j.version>1.1.0-beta7</langchain4j.version>
</properties>

增加阿里云百炼平台接入依赖配置

复制代码
<!-- 接入阿里云百炼平台 -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

完整配置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>
    <artifactId>langchain4j</artifactId>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.4.2</spring-boot.version>
        <langchain4j.version>1.1.0-beta7</langchain4j.version>
        <langchain4j-bom.version>1.1.0</langchain4j-bom.version>
    </properties>

    <dependencies>
        <!-- web应用程序核心依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 编写和运行测试用例 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 日志依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <!-- 接入阿里云百炼平台 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
        </dependency>
        <!-- langchain4j依赖 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-spring-boot-starter</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--引入SpringBoot依赖管理清单-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--引入langchain4j依赖管理清单-->
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-bom</artifactId>
                <version>${langchain4j-bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 引入langchain4j集成依赖管理清单 -->
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-community-bom</artifactId>
                <version>${langchain4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

3、配置application.yml

准备SpringBoot工程的配置文件

复制代码
server:
  port: 8080
#集成langchain4j
langchain4j:
  # 阿里百炼平台
  community:
    dashscope:
      chat-model:
        api-key: {DASH_SCOPE_API_KEY} #填写开发准备工作阶段登录阿里云百炼申请的API-Key
        model-name: qwen3-max
#日志配置
logging:
  level:
    root: INFO
    org.springframework: WARN
  file:
    name: logs/ai-system.log
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"

4、执行验证(测试)

创建验证(测试)代码逻辑

复制代码
@SpringBootTest(classes = Main.class)
@Slf4j
public class TestDashScopeQwen {

    @Autowired
    private QwenChatModel qwenChatModel;

    @Test
    public void testDashScopeQwen(){
       String answer = qwenChatModel.chat("你是谁");
       log.info("Qwen回答: {}", answer);
    }

}

5、执行效果(截图)

执行单元测试,返回回答结果

相关推荐
Lethehong1 分钟前
探索高效工作流的秘密:GLM-4.7 与 Dify 平台深度集成实践
大数据·人工智能·算法
Yeats_Liao3 分钟前
微调决策树:何时使用Prompt Engineering,何时选择Fine-tuning?
前端·人工智能·深度学习·算法·决策树·机器学习·prompt
传说故事3 分钟前
【论文自动阅读】GREAT MARCH 100:100项细节导向任务用于评估具身AI agent
人工智能·具身智能
skywalker_113 分钟前
多线程&JUC
java·开发语言·jvm·线程池
黎雁·泠崖4 分钟前
Java基础核心能力总结:从语法到API的完整知识体系
java·开发语言
李昊哲小课6 分钟前
基于NLP的检索式聊天机器人
人工智能·自然语言处理·机器人
听麟9 分钟前
HarmonyOS 6.0+ PC端智能监控助手开发实战:摄像头联动与异常行为识别落地
人工智能·深度学习·华为·harmonyos
_周游11 分钟前
Java8 API 文档搜索引擎_2.索引模块(实现细节)
java·搜索引擎·intellij-idea
鱼跃鹰飞11 分钟前
大厂面试真题-说说Kafka消息的不重复和不丢失
java·分布式·kafka
wasp52012 分钟前
【开源】Banana Slide:一个基于nano banana pro[特殊字符]的原生AI PPT生成应用,迈向真正的"Vibe PPT"
人工智能·开源