当前位置: 首页 > 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.xdnf.cn/news/309439.html

相关文章:

  • OpenCV的floodFill(漫水填充)分割
  • 静态NAT
  • C++23 新利器:深入解析栈踪迹库 (P0881R7)
  • HTTP协议网络读卡器通讯报文
  • 无法解析导入“pybulletgym”
  • C# System.Text.Json实现高效JSON序列化与反序列化
  • 基于Java多线程实现简单图片下载
  • SLAM算法工程师面经大全:2025年面试真题解析与实战指南
  • 美信监控易:全栈式自主可控的底层架构优势
  • 使用 Poco C++ 库构建轻量级 HTTP 服务器
  • LeetCode 1128. 等价多米诺骨牌对的数量 题解
  • 【了解】通感算一体化网络
  • 深入理解 Web 架构:从基础到实践
  • 【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?
  • 数据库复习
  • 面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d
  • 最新版Google浏览器加载ActiveX控件之VLC五一节特别版
  • Marin说PCB之1000-BASE-T1的PCB设计总结--04
  • DeepSeek:突破AI搜索的无限可能
  • ProteinTools辅助探索蛋白稳定性、动态调控以及结构关系
  • 优化04-选择率和直方图
  • 意识场方程与道函数赋能的三智双融体系建构
  • Xcode16提交App Store审核时提示bitcode报错
  • vue3 computed方法传参数
  • Java泛型深度解析与电商场景应用
  • 手写Promise.all
  • USB接口的PCB设计
  • vue3在使用@import “./index.scss“报错
  • 互联网法院在NFT、元宇宙等新兴领域的规则创新
  • 江苏正力新能Verify认知能力测评笔试已通知 | SHL测评题库预测题 | 华东同舟求职讲求职