当前位置: 首页 > news >正文

langchain4j整合springboot

环境介绍

  • JDK17
  • Spring Boot: 3.0.2

创建springboot工程

IDEA新建一个springboot项目,使用Spring lnitializr快速构建。
在这里插入图片描述
选择Spring Boot: 3.0.2以及Spring Web依赖
在这里插入图片描述

添加maven依赖

创建完springboot项目之后,在pom中添加关键依赖

    <properties><java.version>17</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>3.0.2</spring-boot.version><langchain4j.version>1.0.0-beta3</langchain4j.version></properties><dependencies><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>dev.langchain4j</groupId><artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-community-bom</artifactId><version>${langchain4j.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

创建一个Controller

简单的创建一个controller用于Web访问

package com.kizzo.langchain4j_spingboot_demo.controller;import dev.langchain4j.community.model.dashscope.QwenChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/ai")
public class ChatController {@AutowiredQwenChatModel qwenChatModel;@RequestMapping("/chat")public String test(@RequestParam(defaultValue="你是谁") String message){String chat = qwenChatModel.chat(message);return chat;}
}

这里可以直接用@Autowired注解引入QwenChatModel,在pom中已经做了自动装配。查看AutoConfig源码发现@ConditionalOnProperty({“langchain4j.community.dashscope.chat-model.api-key”})。这个注解的意思就是 Spring 将检查是否存在名为 langchain4j.community.dashscope.chat-model.api-key 的属性,并且其值非空。
在这里插入图片描述
除了api-key还必须要加上langchain4j.community.dashscope.chat-model.model-name。否则在 QwenHelper 类的 isMultimodalModel 方法会报空指针异常
在这里插入图片描述
以上源码说明配置类必须要有api-keys和model-name,这里在原来的配置文件上进行新增属性

langchain4j.community.dashscope.chat-model.api-key=${QWEN_API_KEY}
langchain4j.community.dashscope.chat-model.model-name=qwen-plus

验证接口

在这里插入图片描述

http://www.dtcms.com/a/175214.html

相关文章:

  • 【AI】基于生活案例的LLM强化学习(入门帖)
  • 第四章-初始化Direct3D
  • Blink和V8的关系
  • 雅思阅读--重点短语/句式39个
  • Day 12 训练
  • PostgreSQL存储过程“多态“实现:同一方法名支持不同参数
  • C语言进阶—函数(static,递归,回调,指针,内联,变参,结构体尺寸)
  • DID在元宇宙的应用爆发:数字身份资产化与跨平台迁移——解析Decentraland等项目的虚拟身份全链路实现
  • 25G 80km双纤BIDI光模块:远距传输的创新标杆
  • 蓝桥杯-通电(最小生成树java)
  • 盛最多水的容器
  • UE5 MetaHuman眼睛变黑
  • 软件设计师-软考知识复习(3)
  • 【强化学习】什么是强化学习?2025
  • 解决 Exception in thread “main“ java.lang.NoClassDefFoundError
  • 【java】程序设计基础 八股文版
  • 深入理解 Web 架构:从基础到实践
  • 0506--01-DA
  • tinyrenderer笔记(Phong光照模型)
  • QML ProgressBar控件详解
  • C++高性能内存池
  • 逻辑越权--登录和支付数据篡改
  • DeepSeek智能时空数据分析(七):4326和3857两种坐标系有什么区别?各自用途是什么?
  • 【Python面向对象编程】类与对象的深度探索指南
  • USB学习【2】通讯的基础-反向不归零编码
  • Linux 更改内存交换 swap 为 zram 压缩,减小磁盘写入
  • OrcaFex11.5
  • 多语言笔记系列:Polyglot Notebooks 中使用扩展库
  • Unity 游戏数量单位换算(K/M/B/T)
  • 雅思阅读--易错词汇60个