LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI
今天这篇文章我来分享LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI。
在贝恩聊架构AI专栏中通过学习如何使用Java相关AI应用开源框架,到后续开发企业级Java AI应用,将大型语言模型和AI工具集成到现有系统中。我们将重点介绍如何使用Spring AI和LangChain4J等开源框架,在Java企业级应用程序中构建高度定制化的AI应用。
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始将目光投向AI应用的开发。然而,目前市场上大多数AI框架如LangChain、PyTorch等主要支持Python,而AI不仅仅是Python开发者所独有的,在Java企业级应用市场一定会涌现出很多基于企业级应用的AI产品,所以对Java AI应用开发框架的掌握是Java开发者将大模型(LLM)和业务系统集成关键的知识点。
AI专栏软件环境
- IntelliJ IDEA 2024.3.5
- LangChain4j 0.36.2
- Spring Boot 3.4.4
- Spring 6.2.5
- OpenAI
- JDK 17.0.13
我们先看本篇文章对应的项目结构,请看下图
接下来我来介绍Java AI技术栈主流的两款开源框架LangChain4j和Spring AI
LangChain4j:https://docs.langchain4j.dev/
Spring AI:https://spring.io/projects/spring-ai
完整代码在文章最后,如果觉得本篇文章对你有用,记得点赞、关注、收藏哦。你的支持是我持续更新的动力!
1 Java AI应用开发框架
1.1 LangChain4j
LangChain4j 是一个专为 Java 开发者设计的开源库,旨在简化将大型语言模型(LLM)集成到 Java 应用程序中的过程。下图为LangChain4j核心组件:
1.1.1 核心组件
-
基础组件
- Language Models:模型组件,包含各种类型的模型和模型集成。
- Prompt Templates:提示模板,负责提示管理、优化和序列化。
- Output Parsers:输出解析器,将 LLM 的输出解析为更结构化的格式。
- Memory:记忆组件,用于保存和模型交互时的上下文状态。
-
高级组件
- Chains:链,是一系列对各种组件的调用。
- AI Services:AI 服务,将与 LLMs 和其他组件交互的复杂性隐藏在简单的 API 后面。
- RAG(检索增强生成) :包含文档加载器、文本切割器、向量模型、向量数据库等组件。
1.1.2 核心功能
- 统一 API:能方便地接入 15 + 个主流的 LLM 提供商和 20 + 个向量嵌入存储。
- 综合工具箱:从低级的提示模板、聊天记忆管理到高级的 AI 服务和 RAG 等一应俱全。
- 多模态支持:支持文本和图像作为输入,能够处理更复杂的应用场景。
- 模块化设计:不同功能可以独立使用,便于扩展和维护。
- 高层次抽象:提供低级和高级 api,开发者可按需选择。
- 良好的集成支持:与 springboot 等流行框架集成良好。
- 支持流式响应:支持从 LLMs 流式获取响应,允许实时获取模型的输出。
1.1.3 应用场景
- 企业级应用:在数字化和AI的发展进程中千行百业的应用需要与大模型进行集成。
- 聊天机器人:可用于构建聊天机器人,实现接受、更改、取消订单等功能
- 信息提取:能处理大量非结构化数据,如文件、网页等,并从中提取结构化信息,比如从客户评论和支持聊天记录中提取见解。
- 内容生成与转换:可用于生成应用或网站的内容,还能对信息进行转换。
- 文本分类与标注:使用内置的模型或者自有模型进行文本分类和标签分配。
- 机器翻译:整合现有神经网络模型,实现文本间的自动转换。
1.2 Spring AI
Spring AI 是 Spring 生态系统中用于人工智能和机器学习集成的应用程序框架。以下是关于Spring AI详细介绍:
1.2.1 核心功能
- 简化集成:提供统一且简化的 API,让开发者能轻松将 AI 和机器学习模型集成到 Spring 应用中,无需处理复杂的底层细节。
- 丰富的生态支持:依托 Spring 强大的生态,可与 Spring Boot、Spring Cloud 等无缝集成,便于构建现代化的 AI 驱动的微服务和分布式系统。
- 模型管理便捷:支持 OpenAI、Azure OpenAI、Hugging Face、DeepSeek 等多种主流 AI 模型,方便开发者管理和部署。
- 数据处理优势:借助 Spring Data 等模块,能高效进行数据访问、预处理和后处理,为 AI 模型训练和推理提供优质数据支持1。
- 集成多种大模型功能:涵盖自然语言处理、机器学习集成、图像处理与计算机视觉、检索增强生成、函数调用、向量数据库集成等。
- 支持多种接入方式:支持同步 API 和流 API,开发者可以根据自己的需求选择适合的接入方式,以实现更高效的 AI 交互。
1.2.2 核心组件
- Spring AI Core:核心模块,提供基本的抽象和工具,如模型加载、预测执行等功能,是与各种 AI 框架交互的基础。
- Spring AI Integrations:集成模块,包含与具体 AI 框架的集成实现,使 Spring 应用能与不同框架的模型进行交互。
- Spring AI CLI:命令行界面工具,方便开发者通过命令行快速进行模型管理、训练和推理等操作,提高开发效率。
1.2.3 应用场景
- 企业级应用:在数字化和AI的发展进程中千行百业的应用需要与大模型进行集成。
- 自然语言处理领域:可构建智能客服系统,集成自然语言处理模型,理解和处理用户输入的文本,实现自动回复。还能进行文本生成、情感分析等任务。
- 图像识别领域:在图像管理系统中,使用 Spring AI 集成图像识别模型,对上传的图片进行自动分类和标注,也可用于目标检测、图像分割等。
- 预测分析领域:在金融风险预测等应用里,借助 Spring AI 集成机器学习模型,对金融数据进行分析和预测,帮助企业做出决策。在电商领域,可根据用户行为数据进行购买预测,优化推荐系统。
- 语音处理领域:支持语音识别和合成技术,使得智能音箱、语音助手等设备能够更好地理解和回应用户的指令。
- 智能办公领域:可以实现文档内容的自动提取、分类和总结,提高办公效率。
2 LangChain4j和Spring AI
2.1 技术架构
- LangChain4j:提供从底层的提示模板、聊天记忆管理、输出解析到高级模式(如 AI 服务和检索增强生成 RAG)的工具。有底层和高级两个抽象层次,底层可直接访问核心组件,高级提供更高层次 API 隐藏复杂性。
- Spring AI:基于 Spring 框架的核心设计理念,提供强大且灵活平台。采用模块化架构,比如支持 RAG 通过提供模块库来构建 RAG 流。
2.2 集成能力
- LangChain4j:可以与 Spring Boot 等主流 Java 框架无缝集成,还与 Quarkus 集成,支持 20 多个向量嵌入存储。
- Spring AI:与 Spring Boot、Spring Data、Spring Security 等 Spring 项目无缝集成,利用 Spring 生态优势。
2.3 兼容性
- LangChain4j:从 0.36 版本开始需要 Java 17 及以上版本,之前兼容 Java 8+。
- Spring AI:要求 Java 17 + 和 Spring Boot 3。
2.4 社区支持
- LangChain4j:社区活跃,反馈迅速,能快速整合最新 AI 技术。
- Spring AI:项目处于成长期,API 变动相对较大
3 LangChain4j实战
3.1 LangChain4j支持的LLMs
供应商 | 流式调用 | 函数 | JSON | 多模态 | 观测 |
---|---|---|---|---|---|
Amazon Bedrock | ✅ | ✅ | text | ||
Anthropic | ✅ | ✅ | text, image | ||
Azure OpenAI | ✅ | ✅ | ✅ | text, image | ✅ |
ChatGLM | text | ||||
DashScope | ✅ | ✅ | text, image, audio | ✅ | |
GitHub Models | ✅ | ✅ | ✅ | text | ✅ |
Google AI Gemini | ✅ | ✅ | text, image, audio, video, PDF | ✅ | |
Google Vertex AI Gemini | ✅ | ✅ | ✅ | text, image, audio, video, PDF | ✅ |
Google Vertex AI PaLM 2 | text | ||||
Hugging Face | text | ||||
Jlama | ✅ | ✅ | text | ||
LocalAI | ✅ | ✅ | text | ||
Mistral AI | ✅ | ✅ | ✅ | text | |
Ollama | ✅ | ✅ | ✅ | text, image | ✅ |
OpenAI | ✅ | ✅ | ✅ | text, image | ✅ |
Qianfan | ✅ | ✅ | text | ||
Cloudflare Workers AI | text | ||||
Zhipu AI | ✅ | ✅ | text, image | ✅ |
3.2 模型(LLM)选择
模型供应商 | 主要特点 | 优势 | 备注 |
---|---|---|---|
OpenAI | GPT系列(如GPT-4),具备强大的文本生成与理解能力 | 灵活性高,适用于多种应用场景。大模型界的事实标准 | 暂停对国服的API服务,需要通过 Azure 接入 |
DeepSeek | 开源大模型,支持多语言 | 推理与编码任务表现优异,社区活跃,支持多样化应用 | 性价比高,输入价格(缓存命中): 缓存未命中):1元/百万 |
阿里百炼 | 提供多种大模型服务(如通义千问和各种开源、商用模型) | 性能接近GPT-4,API价格较低,支持企业迁移方案 | 主要面向企业用户 所有新用户可获得超过5000万Tokens的免费额度及4500张图片生成额度,以鼓励更多企业使用 |
智谱清言 | 基于GLM架构,支持多轮对话与复杂指令处理 | 指令理解能力强,支持多场景下的定制化解决方案 | 模型全面;不定期有大型优惠活动 |
讯飞星火 | 强大的生态支持,较全面的商业化场景 | 高效的推理速度和广泛的应用场景 | 讯飞星火大模型具有强大的自然语言处理能力、丰富的预训练数据、高效的推理速度 |
Ollama | 支持本地部署,集成多种开源模型,隐私保护优先 | 强调用户隐私和自主性 | 需要较高的硬件配置以支持本地部署 |
硅基流动 | 专注于AI基础设施,提供SiliconCloud平台 | 高效推理,多模态支持,降低使用门槛,提升开发效率 | 主要面向技术开发者。提供了一系列开源大模型的API服务,其中多个开源大模型如Qwen2、GLM4和Yi1.5均为永久免费,这使得开发者可以自由使用这些模型进行应用开发,而无需承担费用 |
零一万物 | 开源模型 | Yi Model 系列 API 具备较快的推理速度,这不仅缩短了回复延迟,同时也保持了出色的模型效果 | 零一万物 API 与 OpenAI API 完全兼容,你只需修改少量代码,即可平滑迁移 |
3.3 项目搭建
3.3.1 pom依赖
<?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><parent><groupId>cn.itbeien.ai</groupId><artifactId>langchain4j-labs</artifactId><version>1.0-SNAPSHOT</version></parent>
<artifactId>lab01</artifactId>
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><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></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-spring-boot-starter</artifactId></dependency>
<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai-spring-boot-starter</artifactId></dependency></dependencies>
</project>
3.3.2 代码实现
3.3.2.1 实现简单对话
package cn.itbeien.langchain4j.ai.controller;import dev.langchain4j.model.chat.ChatLanguageModel;import jakarta.annotation.Resource;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** @author itbeien* 项目网站:https://www.itbeien.cn* 公众号:贝恩聊架构* 全网同名,欢迎小伙伴们关注* Java/AI学习社群* Copyright© 2025 itbeien*/@RestController@RequestMapping("/openai")public class OpenAIController {@Resourceprivate ChatLanguageModel chatLanguageModel;/*@Value("${langchain4j.open-ai.chat-model.api-key}")private String apiKey;@Value("${langchain4j.open-ai.chat-model.model-name}")private String modelName;*//* @Beanpublic ChatLanguageModel chatLanguageModel() {return OpenAiChatModel.builder().apiKey(this.apiKey).modelName(this.modelName).build();}*/@GetMapping("/hello")public String helloAI() {return chatLanguageModel.generate("你是哪家公司开发的");}}
3.3.3 代码测试
运行 cn.itbeien.langchain4j.ai.test.LangChain4jLab01Test进行单元测试
4 源码地址
贝恩聊架构-AI专栏,SpringBoot3专栏系列文章、资料和源代码会同步到以下地址,代码和资料每周都会同步更新
该仓库地址主要用于存放贝恩聊架构-贝恩聊架构-AI专栏、SpringBoot3专栏、基于企业级支付系统学习微服务整体技术栈所有资料和源码
Gitee https://gitee.com/itbeien/programmer-guide
Github https://github.com/itbeien/programmer-guide
相关文章:
LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI
今天这篇文章我来分享LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI。 在贝恩聊架构AI专栏中通过学习如何使用Java相关AI应用开源框架,到后续开发企业级Java AI应用,将大型语言模型和AI工具集成到现有系统中。我们将重点介绍如何使用Sp…...
机器学习十大算法全解析机器学习,作为人工智能的基石,涵盖了众多高效的算法。今天,我们就来深入探讨其中的十大核心算法!
1️⃣ 线性回归:通过最小化误差的平方和来寻找最佳函数匹配。 2️⃣ 逻辑回归:用于分类问题,通过逻辑函数来预测事件发生的概率。 3️⃣ 决策树:基于特征选择和阈值来构建树形结构,用于分类和回归。 4️⃣ 朴素贝叶…...
day26图像处理OpenCV
文章目录 一、OpenCV1.介绍2.下载3.图像的表示4.图像的基本操作4.1图片读取或创建4.1.1读取4.1.2创建 4.2创建窗口4.3显示图片4.3.1设置读取的图片4.3.2设置显示多久4.3.3释放 4.4.保存图片4.5图片切片(剪裁)4.6图片大小调节 5.在图像中绘值5.1绘制直线5…...
怎么查询SQL Server AlwaysOn
1. SQL Server AlwaysOn 是什么? SQL Server AlwaysOn 是 Microsoft 提供的高可用性(High Availability, HA)和灾难恢复(Disaster Recovery, DR)解决方案,包含以下两个核心技术: 组件描述故障…...
10分钟做了一个投资回报计算器,欢迎大家使用
一、背景 今天突然想算一下1万本金,2%利率存2年情况下的投资回报收益情况,但是发现手上没有计算器,想着自己做一个网页简单实现一下,于是有了这个小工具(FutureValueCalculator——未来价值计算器)。 二、…...
报错:mount: unknown filesystem type ‘vfat’
服务器重启之后 进入 Ctrl D 界面 界面报错是 FAILED to mount /boot/efi 输入密码进去之后 (py38) [rootlocalhost data]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 1.5T 0 disk ├─sda1 8:1 0 50M 0 part /bo…...
Java学习手册:面向对象编程核心概念
面向对象编程(OOP)是Java语言的核心编程范式,它强调通过对象之间的交互来实现程序功能。OOP的核心思想是将现实世界中的事物抽象为对象,通过对象的属性和行为来描述和操作这些事物。本文将深入探讨Java中面向对象编程的三大核心概…...
工厂模式(简单工厂,工厂方法,抽象工厂)
工厂模式 工厂模式是java中最常用的设计模式,主要是用来完成对象的创建,使得对象创建过程和对象使用过程分离。 简单来说是取消对象创建者和使用者的耦合,简化new 对象的创建。 优势 :对象的属性创建完整。 缺点: 创建…...
【实际项目分享】多相机取图存图问题
1、项目介绍 针对 5路相机同步取图 场景,设计了一套高并发、低延迟的图像数据管理方案,重点解决多线程环境下的数据竞争与存储效率问题。 2、设计目标 高并发写入:支持5个相机线程同时写入数据,无锁冲突…...
LLMs基础学习(七)DeepSeek专题(1)
LLMs基础学习(七)DeepSeek专题(1) 文章目录 LLMs基础学习(七)DeepSeek专题(1)DeepSeek 相关资料官方资料与基础文档实践指南和技术解析 热启动与冷启动**热启动(主流&…...
安装vllm
ubuntu 22.04, RTX3080, cuda 12.1, cudnn 8.9.7,cuda和cudnn的安装参考:https://blog.csdn.net/m0_52111823/article/details/147154526?spm1001.2014.3001.5501。 查看版本对应关系,下载12.1对应的whl包,https://github.com/vl…...
SVMSPro分布式综合安防管理平台--地图赋能智慧指挥调度新高度
SVMSPro分布式综合安防管理平台–地图赋能智慧指挥调度新高度 在智慧城市建设和公共安全需求日益增长的背景下,SVMSPro分布式综合安防管理平台凭借其强大的地图功能与多协议兼容能力,正在成为公安、司法、消防、城管、交通等领域的指挥调度“智慧大脑”…...
科技快讯 | OpenAI:向Plus和Pro用户推出ChatGPT记忆提升功能;我国成功发射通信技术试验卫星十七号;芯片国产化率超九成
继 OpenAI 后,谷歌 Gemini 模型将支持 Anthropic 的 MCP 协议 4月10日,谷歌DeepMind宣布将支持Anthropic的模型上下文协议(MCP),以实现大语言模型与外部数据源的集成。MCP由Anthropic推出,旨在建立安全双向…...
【教学类-102-08】剪纸图案全套代码08——Python点状虚线优化版本02(有空隙)+制作1图2图6图24图
背景需求 代码实现了点状虚线的全套流程,但是图片中主体图案和虚线与左右两边粘连。 【教学类-102-07】剪纸图案全套代码07——Python点状虚线优化版本01(无空隙)+制作1图2图6图24图-CSDN博客文章浏览阅读665次,点赞11次,收藏11次。【教学类-102-07】剪纸图案全套代码07…...
深入解析 Microcom:嵌入式串口调试利器
在嵌入式系统开发中,串口通信是调试和与外部设备交互的核心手段之一。Linux 系统中,Minicom 是一个广为人知的串口调试工具,但其依赖较多库(如 libncurses),在资源受限的嵌入式环境中可能显得臃肿。 而 Mi…...
算法驱动的场景识别:规则引擎与机器学习的强大结合
引言 在智能驾驶系统、交通分析和安全监控等领域,场景识别是一项核心技术。传统的场景识别方法主要依赖人工标注,不仅耗时耗力,还容易受主观因素影响。随着技术的发展,算法驱动的场景识别方法逐渐兴起,通过结合规则引…...
typescript开发心得
语法知识点 回调地狱问题 用await,或者有些库提供了sync方法 yield 用法跟python的一样。 yield只能用于生成器里,生成器是function*,例如: export function* filter(rootNode: ts.Node, acceptedKind: ts.SyntaxKind) {for…...
淘宝开放平台 API 调用全解析:商品详情数据采集接口接入教程
一、引言 在电商领域蓬勃发展的当下,淘宝作为行业领军者,其平台上琳琅满目的商品蕴含着海量有价值的信息。无论是电商从业者想要精准把握竞品动态、优化自身商品策略,还是数据分析师试图挖掘消费趋势、洞察市场需求,亦或是科研人…...
SQL注入(SQL Injection)深度解析
SQL注入是一种利用Web应用程序与数据库交互机制缺陷的网络攻击技术,其核心在于通过恶意构造的输入参数篡改原始SQL查询逻辑,进而实现对数据库的非授权操作。以下从定义、攻击原理、技术分类、危害及防御体系多维度展开分析: 一、定义与本质 技…...
MCP基础学习四:MCP在AI应用中的集成(MCP在AI应用中的完整架构图)
MCP在AI应用中的集成 文章目录 MCP在AI应用中的集成一,学习目标二,学习内容1. 在AI应用中配置和使用MCP服务1.1 不同AI工具连接方式与部署模式1.1.1 了解不同的MCP传输模式1.1.2 掌握如何在AI客户端中配置MCP服务Cursor 客户端中配置MCP服务Cherry Studio AI客户端中…...
K8S-证书过期更新
K8S证书过期问题 K8S证书过期处理方法 Unable to connect to the server: x509: certificate has expired or is not yet valid 1、查看证书有效期: # kubeadm certs check-expiration2、备份证书 # cp -rp /etc/kubernetes /etc/kubernetes.bak3、直接重建证书 …...
蓝桥杯考前复盘
明天就是考试了,适当的停下刷题的步伐。 静静回望、思考、总结一下,我走过的步伐。 考试不是结束,他只是检测这一段时间学习成果的工具。 该继续走的路,还是要继续走的。 只是最近,我偶尔会感到迷惘,看…...
BERT - MLM 和 NSP
本节代码将实现BERT模型的两个主要预训练任务:掩码语言模型(Masked Language Model, MLM) 和 下一句预测(Next Sentence Prediction, NSP)。 1. create_nsp_dataset 函数 这个函数用于生成NSP任务的数据集。 def cr…...
mysql 与 sqlite 数学运算 精度 问题
mysql 与 sqlite 数学运算 精度 问题 在 Excel 中,浮点运算得到的结果可能不准确 https://learn.microsoft.com/zh-cn/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result 本文讨论 Microsoft Excel 如何存储和计算浮点数。 由于存在舍入或…...
MySQL的数据库性能分析利器Percona toolkit
目录 简介使用场景 使用示例Mysql 慢查询分析诊断临时开启慢SQL持久化开启慢SQL日志 使用包管理器安装包管理器安装 percona-release使用相应的包管理器安装 Percona Toolkit pt-query-digest 安装安装 pt-query-digest案例实战之慢查询分析诊断查看慢SQL日志使用pt-query-dige…...
力扣HOT100之链表: 148. 排序链表
这道题直接用蠢办法来做的,直接先遍历一遍链表,用一个哈希表统计每个值出现的次数,由于std::map<int, int>会根据键进行升序排序,因此我们将节点的值作为键,其在整个链表中的出现次数作为值,当所有元…...
Azure AI Foundry 正在构建一个技术无障碍的未来世界
我们习以为常的街道和数字世界,往往隐藏着被忽视的障碍——凹凸不平的路面、不兼容的网站、延迟的字幕或无法识别多样化声音的AI模型。这些细节对某些群体而言,却是日常的挑战。正如盲道不仅帮助视障者,也优化了整体城市体验,信息…...
AlmaLinux9.5 修改为静态IP地址
查看当前需要修改的网卡名称 ip a进入网卡目录 cd /etc/NetworkManager/system-connections找到对应网卡配置文件进行修改 修改配置 主要修改ipv4部分,改成自己的IP配置 [ipv4] methodmanual address1192.168.252.129/24,192.168.252.254 dns8.8.8.8重启网卡 …...
P8754 [蓝桥杯 2021 省 AB2] 完全平方数
题目描述 思路 一看就知道考数学,直接看题解试图理解(bushi) 完全平方数的质因子的指数一定为偶数。 所以 对 n 进行质因数分解,若质因子指数为偶数,对结果无影响。若质因子指数为奇数,则在 x 中乘以这个质因子,保证指…...
QT Sqlite数据库-教程001 创建数据库和表-上
【1】创建数据库 #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QtSql/QSqlRecord> QString path QDir::currentPath(); QApplication::addLibraryPath(pathQString("/release/plugins")); QPluginLoader loader(pathQSt…...
安卓手机怎样开启双WiFi加速
1. 小米/Redmi手机 路径: 设置 → WLAN → 高级设置 → 双WLAN加速 操作: 开启功能后,可同时连接一个2.4GHz WiFi和一个5GHz WiFi(或两个不同路由器)。 可选择“智能选择”或手动指定辅助网络。 2. 华为/荣耀手机…...
基于角色个人的数据权限控制
一、适用场景 如何有效控制用户对特定数据的访问和操作权限,以确保系统的安全性和数据的隐私性。 二、市场现状 权限管理是现代系统中非常重要的功能,尤其是对于复杂的B端系统或需要灵活权限控制的场景,可以运用一些成熟的工具和框架&…...
JAVA虚拟机(JVM)学习
入门 什么是JVM JVM:Java Virtual Machine,Java虚拟机。 JVM是JRE(Java Runtime Environment)的一部分,安装了JRE就相当于安装了JVM,就可以运行Java程序了。JVM的作用:加载并执行Java字节码(.class&#…...
【VSCode配置】运行springboot项目和vue项目
目录 安装VSCode安装软件安装插件VSCode配置user的全局设置setting.jsonworkshop的项目自定义设置setting.jsonworkshop的项目启动配置launch.json 安装VSCode 官网下载 安装软件 git安装1.1.12版本,1.2.X高版本无法安装node14以下版本 nvm安装(github…...
UE5,LogPackageName黄字警报处理方法
比如这个场景,淘宝搜索,ue5 T台,转为ue5.2后,选择物体,使劲冒错。 LogPackageName: Warning: DoesPackageExist called on PackageName that will always return false. Reason: 输入“”为空。 2. 风险很大的删除法&…...
ONVIF/RTSP/RTMP协议EasyCVR视频汇聚平台RTMP协议配置全攻略 | 直播推流实战教程
在现代化的视频管理和应急指挥系统中,RTMP协议作为一种高效的视频流传输方式,正变得越来越重要。无论是安防监控、应急指挥,还是物联网视频融合,掌握RTMP协议的接入和配置方法,都是提升系统性能和效率的关键一步。 今天…...
AI 驱动的全链路监控,从资源管理到故障自愈的实战指南--云监控篇
一、3 步完成多云接入,告别繁琐配置 1. 账号绑定 AWS:输入访问密钥,自动拉取 EC2、RDS、S3 等资源清单。 Azure:通过服务主体认证,一键发现 VM、SQL 数据库、存储账户。 GCP:上传服务账号密钥࿰…...
大模型在初治CLL成人患者诊疗全流程风险预测与方案制定中的应用研究
目录 一、绪论 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与慢性淋巴细胞白血病相关知识 2.1 大模型技术原理与特点 2.2 慢性淋巴细胞白血病的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模…...
Express中间件(Middleware)详解:从零开始掌握(2)
1. 请求耗时中间件的增强版 问题:原版只能记录到控制台,如何记录到文件? 改进点: 使用process.hrtime()是什么?获取更高精度的时间支持将日志写入文件记录更多信息(IP地址、状态码)工厂函数模式使中间件可配置 con…...
Crossmint 与 Walrus 合作,将协议集成至其跨链铸造 API 中
Crossmint 是一个一站式平台,可为 app、AI Agent 或企业集成区块链。如今,Crossmint 已集成 Walrus 协议,以实现更具可扩展性的通证化场景,特别面向 AI Agent 和企业级用户。这项合作为开发者和企业提供了一种全新的方式ÿ…...
24.OpenCV中的霍夫直线检测
OpenCV中的霍夫直线检测 霍夫直线检测是一种基于参数变换的全局特征提取方法,它能在边缘图像中有效检测出直线,具有鲁棒性强和对噪声干扰容忍度高的特点。本文将从原理、算法实现和 OpenCV 应用三个角度对霍夫直线检测进行详细的阐述,并给出…...
springboot 处理编码的格式为opus的音频数据解决方案【java8】
opus编码的格式概念: Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF(互联网工程任务组)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用…...
【AI提示词】创业导师提供个性化创业指导
提示说明 以丰富的行业经验和专业的知识为学员提供创业指导,帮助其解决实际问题并实现商业成功 提示词 # Role: 创业导师## Profile - language: 中英文 - description: 以丰富的行业经验和专业的知识为学员提供创业指导,帮助其解决实际问题并实现商业…...
STM32 模块化开发实战指南:系列介绍
本文是《STM32 模块化开发实战指南》系列的导读篇,旨在介绍整个系列的写作目的、适用读者、技术路径和每一篇的主题规划。适合从事 STM32、裸机或 RTOS 嵌入式开发的个人开发者、初创工程师或企业项目团队。 为什么要写这个系列? 在嵌入式开发中,很多人刚开始都是从点亮一个…...
在 Dev-C++中编译运行GUI 程序介绍(三)有趣示例一组
在 Dev-C中编译运行GUI程序介绍(三)有趣示例一组 前期见 在 Dev-C中编译运行GUI 程序介绍(一)基础 https://blog.csdn.net/cnds123/article/details/147019078 在 Dev-C中编译运行GUI 程序介绍(二)示例&a…...
功能安全时间参数FTTI
FTTI:fault tolerant time interval故障容错时间间隔; FHTI:Fault Handling Time Interval故障处理时间间隔; FRTI:Fault Reaction Time Interval故障反应时间间隔; FDTI:Fault Detectlon Ti…...
docker镜像制作
🧱 如何将任意 Linux 系统打包为 Docker 镜像 适用场景: 本地物理机 / 虚拟机上的 Linux(如 Ubuntu、Debian、CentOS、openEuler 等);想将当前系统环境完整打包成 Docker 镜像;系统内已安装了运行环境,如 Java、Python、Nginx 等,想保留它们。✅ 步骤概览: 准备文件…...
【Pandas】pandas DataFrame iat
Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法 pandas.DataFrame.iat pandas.DataFrame.iat 是一个快速访…...
【图像分类】【深度学习】系列学习文章目录
图像分类简介 图像分类是计算机视觉领域中的一个核心问题,它涉及到将图像数据分配到一个或多个预定义类别中的过程。这项技术的目标是让机器模拟人类能够自动识别并分类图像内容。近年来,随着深度学习的发展,尤其是卷积神经网络(CNNs)的应用…...
MyBatisPlus 学习笔记
文章目录 MyBatisPlus 快速入门第一步:引入 MyBaitsPlus 起步依赖第二步:自定义的 Mapper 继承 BaseMapper 接口新增相关修改相关删除相关查询相关 Mp 使用示例 MyBaitsPlus 常见注解MP 实体类与数据库信息约定Mp 实体类与数据库信息约定不符合解决方法…...