【langchain4j篇01】:5分钟上手langchain4j 1.1.0(SpringBoot整合使用)

目录

一、环境准备

二、创建项目、导入依赖

三、配置 application.yml

四、注入Bean,开箱即用

五、日志观察


一、环境准备

首先和快速上手 Spring AI 框架一样的前置条件:先申请一个 apikey ,此部分步骤参考:【SpringAI篇01】:5分钟教会你使用SpringAI (1.0.0稳定版)_spring-ai 1.0.0使用教程-CSDN博客文章浏览阅读1.4k次,点赞42次,收藏32次。后端开发之:从创建 SpringAI 项目开始,到快速入门实现调用大模型 API 实现对话功能。_spring-ai 1.0.0使用教程 https://blog.csdn.net/lyh2004_08/article/details/148925217前半部分即可


二、创建项目、导入依赖

1. 同样,langchain4j 对于 jdk 的要求最低也是 jdk17,按照下图操作即可

2. 导入一个 spring 的 web 依赖:

3. 项目创建完毕,按照官网教程导入 langchain4j 的 低级API(后续还有高级API 起步依赖(当前最新版本):

<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai-spring-boot-starter</artifactId><version>1.1.0-beta7</version>
</dependency>

参考资料:Spring Boot 集成 | LangChain4j --- Spring Boot Integration | LangChain4j


三、配置 application.yml

随后,在 application.yml 或 application.properties 中配置如下配置:

langchain4j:open-ai:chat-model:base-url: https://dashscope.aliyuncs.com/compatible-mode/v1 # 百炼平台的baseUrlapi-key: ${langchain4j.api-key} # 你刚刚申请的apiKeymodel-name: qwen-plus # 你想使用的对话模型模型名log-requests: true # 是否打印请求日志log-responses: true # 是否打印响应日志

其中各项配置作用已在代码中表明。不过显然,langchain4j 与 SpringAI 一样,也都可以在创建 model 时自定义配置


四、注入Bean,开箱即用

由于前进做了相关模型的配置,langchain4j 的自动装配会为我们提供一个基于配置的默认 OpenAiChatModel,我们直接创建一个Controller,注入使用即可

package xyz.qiquqiu.lc4blogdemo.controller;import dev.langchain4j.model.openai.OpenAiChatModel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@Slf4j
@RestController
@RequiredArgsConstructor
public class ChatController {private final OpenAiChatModel chatModel;/*** 调用百炼的大模型进行聊天(阻塞式)* @param message 用户发送的消息,相当于提示词prompt* @return*/@RequestMapping("/chat")public String chat(String message) {log.debug("用户说:{}", message);return chatModel.chat(message);}
}

随后,打开浏览器,访问 chat 接口,测试效果:


五、日志观察

由于我们配置了请求与响应时打印日志的配置:

所以我们可以结合控制台输出,清晰地看到请求响应的过程:

请求日志:

响应日志:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88925.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js运算符

运算符 jarringslee*赋值运算符 - / 对变量进行赋值的运算符&#xff0c;用于简化代码。左边是容器&#xff0c;右边是值一元运算符正号 符号- 赋予数据正值、负值自增 自减– 前置和后置&#xff1a;i和i&#xff1a;一般情况下习惯使用后置i&#xff0c;两者在单独…

next.js 登录认证:使用 github 账号授权登录。

1. 起因&#xff0c; 目的: 一直是这个报错。2. 最终效果&#xff0c; 解决问题&#xff0c;能成功登录、体验地址&#xff1a;https://next-js-gist-app.vercel.app/代码地址&#xff1a; https://github.com/buxuele/next-js-gist-app3. 过程: 根本原因: github 的设置&…

深入理解设计模式:原型模式(Prototype Pattern)

在软件开发中&#xff0c;对象的创建是一个永恒的话题。当我们需要创建大量相似对象&#xff0c;或者对象创建成本较高时&#xff0c;传统的new操作符可能不是最佳选择。原型模式&#xff08;Prototype Pattern&#xff09;为我们提供了一种优雅的解决方案——通过克隆现有对象…

Rocky Linux 9 源码包安装php8

Rocky Linux 9 源码包安装php8大家好&#xff0c;我是星哥&#xff01;今天咱们不聊yum一键安装的“快餐式”部署&#xff0c;来点儿硬核的——源码编译安装PHP 8.3。为什么要折腾源码&#xff1f;因为它能让你深度定制PHP功能、启用最新特性&#xff0c;还能避开系统默认源的版…

Django母婴商城项目实践(四)

4、路由规划与设计 1、概述 介绍 路由称为 URL(Uniform Resource Locator,统一资源定位符),也称为 URLconf,对互联网上得到的资源位置和访问方式的一种简洁表示,是互联网上标准梓源的地址。互联网上的每个文件都有一个唯一的路由,用于指出网站文件的路由位置,也可以理…

论文阅读:arxiv 2025 A Survey of Large Language Model Agents for Question Answering

https://arxiv.org/pdf/2503.19213 https://www.doubao.com/chat/12038636966213122 A Survey of Large Language Model Agents for Question Answering 文章目录速览论文翻译面向问答的大型语言模型代理综述摘要一、引言速览 这篇文档主要是对基于大型语言模型&#xff08;…

ONNX 是什么

ONNX 是什么&#xff1f; ONNX&#xff0c;全称 Open Neural Network Exchange&#xff0c;是微软和 Facebook&#xff08;现在的 Meta&#xff09;联合发起的一个开放的神经网络模型交换格式。简单理解&#xff1a;ONNX 是一个通用的「AI 模型存档格式」。用 PyTorch、TensorF…

【Python3】掌握DRF核心装饰器:提升API开发效率

在 Django REST Framework (DRF) 中&#xff0c;装饰器&#xff08;Decorators&#xff09;通常用于视图函数或类视图&#xff0c;以控制访问权限、请求方法、认证等行为。以下是 DRF 中常用的装饰器及其功能说明&#xff1a; 1. api_view 用途: 用于基于函数的视图&#xff0c…

Datawhale AI 夏令营第一期(机器学习方向)Task2 笔记:用户新增预测挑战赛 —— 从业务理解到技术实现

Datawhale AI夏令营第一期&#xff08;机器学习方向&#xff09;Task2笔记&#xff1a;用户新增预测挑战赛——从业务理解到技术实现 一、任务核心&#xff1a;业务与技术的“翻译” 本次Task聚焦“用户新增预测挑战赛”的核心逻辑&#xff0c;核心目标是锻炼“将业务问题转化为…

【人工智能】华为昇腾NPU-MindIE镜像制作

本文通过不使用官方镜像,自己在910b 进行华为mindie的镜像制作,可离线安装部署。 硬件:cann 8.0 1. 部署参考文档: 安装依赖-安装开发环境-MindIE安装指南-MindIE1.0.0开发文档-昇腾社区 2. 参数说明文档:https://www.hiascend.com/document/detail/zh/mindie/100/min…

关于我用AI编写了一个聊天机器人……(番外1)

极大地精简了1.3.6版本的逻辑。 不会作为正式版发布。 未填充数据。核心结构代码包含两个主要部分&#xff1a;数据结构&#xff1a;使用map<string, string>存储问答对&#xff0c;其中键是问题&#xff0c;值是答案主程序流程&#xff1a;初始化预定义的问答对进入无限…

全球钠离子电池市场研究,市场占有率及市场规模

钠离子电池是一种新兴的储能技术&#xff0c;利用钠离子&#xff08;Na⁺&#xff09;代替锂离子作为电荷载体&#xff0c;为锂离子电池提供了一种经济高效且可持续的替代品。它们的工作原理类似&#xff0c;在充电和放电循环过程中&#xff0c;钠离子在阳极和阴极之间移动。关…

SwiftUI 全面介绍与使用指南

目录一、SwiftUI 核心优势二、基础组件与布局2.1、基本视图组件2.2、布局系统2.3、列表与导航三、状态管理与数据流3.1、状态管理基础3.2、数据绑定与共享四、高级功能与技巧4.1、动画效果4.2、绘图与自定义形状4.3、网络请求与异步数据五、SwiftUI 最佳实践六、SwiftUI 开发环…

ADC采集、缓存

FPGA学习笔记_李敏儿oc的博客-CSDN博客 TLV5618.v&#xff1a;实现DAC数模转换&#xff0c;产生模拟信号&#xff0c;输出指定电压值 时序图 FPGA学习笔记&#xff1a;数据采集传输系统设计&#xff08;二&#xff09;&#xff1a;TLV5618型DAC驱动-CSDN博客 ADC128S052.v&…

(C++)STL:stack、queue简单使用解析

stack 栈 简介 stack 栈——容器适配器 container adapter 与前面学的容器vector、list的底层实现不同&#xff0c;stack功能的实现是要借助其他容器的功能的&#xff0c;所以看stack的第二个模板参数是容器。 最大特点&#xff1a;LIFO&#xff1a;Last In, First Out&#xf…

在Adobe Substance 3D Painter中,已经有基础图层,如何新建一个图层A,clone基础图层的纹理和内容到A图层

在Adobe Substance 3D Painter中&#xff0c;已经有基础图层&#xff0c;如何新建一个图层A&#xff0c;clone基础图层的纹理和内容到A图层 在 Substance 3D Painter 中克隆底层纹理到新图层的最快做法 操作步骤 添加空白 Paint Layer 在 Layer Stack 顶部点击 → Paint La…

视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)

视频编码中熵编码之基于上下文的变长编码&#xff08;Huffman霍夫曼编码和指数哥伦布&#xff09; 视频编码中熵编码之基于上下文的变长编码Huffman霍夫曼编码和指数哥伦布&#xff09;视频编码中熵编码之基于上下文的变长编码&#xff08;Huffman霍夫曼编码和指数哥伦布&#…

游戏玩法的专利博弈

首席数据官高鹏律师数字经济团队创作 AI辅助一、数字战场的护城河&#xff1a;游戏玩法的专利价值觉醒在数字经济的浪潮中&#xff0c;游戏行业正以每年超15%的增速重塑全球娱乐版图。2024年中国游戏市场规模突破3257亿元&#xff0c;用户规模达6.74亿&#xff08;数据来源&…

小架构step系列11:单元测试引入

1 概述 在还没有写什么代码之前&#xff0c;就引入单元测试&#xff0c;是要强调单元测试的重要性。当一套代码的生命周期比较长的时候&#xff0c;单元测试更加重要。生命周期长的代码&#xff0c;不管是产品人员还是开发人员&#xff0c;可能都会换了一批又一批&#xff0c;…

Linux 文件共享之 HGFS 共享配置全解析

一、前言在使用 VMware 虚拟机搭建 Linux&#xff08;以 Ubuntu 为例&#xff09;环境时&#xff0c;常常需要实现主机与虚拟机之间的文件共享&#xff0c;HGFS&#xff08;VMware Host-Guest File System&#xff09;就是一种常用的文件共享方式。通过它&#xff0c;我们可以方…