自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (6)
  • 收藏
  • 关注

原创 SpringAI里使用openAi的一些经验

本文介绍了OpenAI API的Java客户端配置方法。通过OpenAiApi.builder()构建API客户端,可动态配置apiKey、baseUrl、completionsPath等参数,并支持自定义HTTP客户端设置超时时间。OpenAiChatModel的配置包括:1)defaultOptions设置模型参数如temperature、maxTokens等;2)retryTemplate实现请求重试;3)observationRegistry集成监控功能;4)toolCallingManager管理

2026-05-13 10:54:42 161

原创 12-production-best-practices 生产实践:观测、安全、成本、评测和持续演进

生产实践:观测、安全、成本、评测和持续演进

2026-05-12 09:39:00 223

原创 11-smart-wardrobe-rag-case 智能衣橱实战:RAG + Agent + Workflow 完成穿搭推荐

本文介绍了如何利用LangChain4j构建智能衣橱穿搭推荐系统。文章从业务需求出发,详细拆解了7个核心问题,包括意图识别、会话记忆、工具调用、向量检索等。重点阐述了业务数据建模方法,将服装实体转换为适合向量检索的语义文本,并强调了元数据管理的重要性。同时提出了事件驱动的数据同步机制,确保向量库与业务数据实时一致。最后展示了如何通过场景分析Agent将用户非结构化需求转换为结构化对象。该案例展示了AI工程化与普通聊天的本质区别,为构建生产级AI应用提供了完整参考。

2026-05-12 09:38:08 257

原创 10-workflow-multi-agent 多 Agent 工作流:复杂任务如何拆解和编排

本文介绍了如何利用LangChain4j实现多Agent工作流来处理复杂任务。文章首先指出单个Agent在处理多步骤任务时的局限性,如提示过长、步骤遗漏等问题,进而提出使用工作流将任务分解为多个步骤,由不同Agent协作完成。 作者详细阐述了AI工作流的概念,将其与传统工作流区分,强调AI工作流需要关注上下文传递、结构化输出等特性。文章提供了判断何时需要工作流的实用标准:当任务包含5个以上明确步骤时建议使用工作流。

2026-05-12 09:37:17 132

原创 09-dynamic-agent-production-design 动态 Agent 设计:提示词、模型参数和工具后台可配置

摘要:动态Agent平台的设计与实现 本文探讨了如何将LangChain4j从静态Agent实现升级为动态可配置的Agent平台。核心思路是将Agent视为运行时配置而非固定代码,通过数据库存储和管理Agent的各项参数。文章提出了两表结构设计(Agent主表和工具配置表),并详细说明了Java模型定义和LangChain4j动态装配的实现方法。这种方案解决了静态Agent在业务迭代中需要频繁发版的问题,使提示词、模型参数、工具权限等都能通过后台配置灵活调整,显著提升了AI应用的迭代效率。

2026-05-11 10:54:05 190

原创 08-mcp-tool-calling MCP 工具调用:让大模型连接外部工具服务

本文介绍了LangChain4j中的MCP工具调用机制,重点讲解了如何通过Model Context Protocol实现模型与外部工具服务的连接。文章对比了本地工具和MCP的优缺点,详细说明了MCP客户端和服务端的实现方式,包括天气工具示例。同时提出了生产环境中的动态MCP工具配置方案,阐述了MCP调用原理和设计原则,并列举了常见问题和解决方案。最后总结了MCP的核心价值在于将工具能力服务化,使其可复用、可治理、可跨应用接入,并给出了不同场景下的技术选型建议。

2026-05-11 10:53:12 194

原创 07-advanced-rag-patterns 高级 RAG:查询改写、路由、过滤、重排和来源返回

本文介绍了高级RAG(检索增强生成)模式的核心技术与应用场景。作者指出基础RAG存在指代不清、多知识库选择、权限控制等问题,提出通过查询压缩解决多轮对话指代问题,利用查询路由实现多知识库精准选择,采用元数据过滤进行权限隔离,并介绍了结果重排和来源追溯等关键技术。文章强调高级RAG的本质是将粗暴检索转变为可控流程,建议根据业务场景灵活组合这些技术,如在多轮对话中启用查询压缩,对敏感数据实施严格的权限过滤,在准确性要求高的场景使用重排等。这些方法能显著提升RAG系统的性能和可靠性。

2026-05-11 10:52:12 241

原创 06-milvus-vector-rag RAG 基础:文档加载、切分、向量化与检索增强

本文介绍了如何从内存向量库升级到Milvus向量数据库的实战经验。主要内容包括:1) 生产环境需要Milvus解决内存向量库的数据丢失、共享和运维问题;2) 详细配置Milvus连接参数和关键维度设置;3) 文档上传处理流程,使用Tika解析多种格式文件;4) 文档切分、向量化及元数据管理的重要性;5) 动态维度检查等防御性编程实践;6) 构建MilvusEmbeddingStore的核心方法;7) 查询问答系统的实现方式;8) 两个典型应用场景:企业文档问答系统和智能衣橱检索系统。文章提供了从配置到实现的

2026-05-11 10:50:53 247

原创 05-rag-basic-ingestion RAG 基础:文档加载、切分、向量化与检索增强

本文介绍了RAG(检索增强生成)技术的基本原理和实现流程。RAG通过检索外部知识库相关内容,再结合大模型生成答案,解决了大模型私有数据缺失和知识过期的问题。文章详细拆解了RAG的6个关键步骤:文档加载、文档切分、向量化、写入向量库、查询检索和带上下文生成回答,并提供了各环节的代码示例和参数调优建议。作者强调文档切分是知识建模过程,而非单纯技术细节,并对比了不同场景下的最佳实践。最后指出学习阶段可使用简化API,但生产环境需要精细配置各环节参数。

2026-05-11 10:49:58 232

原创 04-chat-memory-redis 会话记忆:MessageWindowChatMemory 与 Redis 持久化

本文介绍了LangChain4j中会话记忆的实现与应用。主要内容包括:会话记忆的必要性,LangChain4j的MessageWindowChatMemory模型及其滑动窗口机制,使用@MemoryId实现会话隔离,Redis持久化存储的设计与实现,以及生产环境中的优化建议。文章还对比了会话记忆与RAG的区别,并以智能衣橱为例展示了实际应用场景。最后提出了进阶设计方案,将会话元数据与消息内容分开存储,并强调会话记忆是完整的上下文治理问题而非简单的历史消息拼接。

2026-05-09 17:20:37 168

原创 03-structured-output-schema 结构化输出:让大模型稳定返回 Java 对象

本文介绍了LangChain4j中结构化输出的关键作用和应用场景。结构化输出让大模型返回Java对象而非自然语言,便于业务系统直接处理。文章通过多个实战案例(商品评论分析、简历生成、穿搭推荐)展示了如何定义Schema类和使用Service接口约束模型输出。重点讲解了字段设计规范、业务校验必要性以及常见问题规避方法,并提供了推荐的服务模板写法。结构化输出能显著提升系统稳定性,是AI应用集成到业务系统的关键技术。

2026-05-09 17:19:26 206

原创 02-langchain4j-chat-and-aiservices ChatModel、AiServices、流式响应和工具调用

本文介绍了LangChain4j的进阶使用技巧,主要包括三个方面:1) 直接调用ChatModel进行基础交互;2) 使用AiServices封装模型为Java接口实现业务抽象;3) 通过工具调用让模型具备执行能力。文章提供了详细的实现步骤,包括依赖配置、模型接入、流式响应处理等实战建议,特别强调了工具调用的设计规范和注意事项,如命名规范、结构化返回值和权限校验等。这些方法可以帮助开发者更优雅地将大模型能力集成到Java应用中,提升开发效率和系统可维护性。

2026-05-09 17:18:33 238

原创 01-ai-architecture-overview 从普通聊天到业务 Agent 的架构路线

本文探讨了从基础聊天机器人到业务Agent的进阶路线。作者指出普通聊天机器人仅能完成简单对话,而业务Agent需要具备上下文记忆、知识检索、工具调用等6类能力。LangChain4j作为开发框架,帮助将大模型能力封装为Java业务组件。文章提出AI应用分层架构,并展示了一个智能衣橱Agent的完整调用流程。强调生产环境需补充权限控制、日志审计等治理功能,以及Agent配置化的重要性。后续系列文章将逐步讲解记忆管理、RAG、工具调用等技术点,目标是实现可观测、可治理的业务Agent平台。

2026-05-09 17:17:44 186

原创 LangChain4j 进阶实战系列

《LangChain4j进阶实战系列》是一套面向Java开发者的AI工程化实践指南,重点讲解如何将大模型能力落地到实际业务中。系列包含12篇文章,涵盖从基础架构到生产实践的完整路径,包括RAG、Agent设计、工具调用等核心功能。每篇文章采用"业务问题->原理->实战->案例->总结"的结构,强调可复用的工程经验而非单纯代码展示。适合已掌握大模型API调用但需要工程化落地的开发者,帮助构建生产级的AI应用系统。

2026-05-09 17:16:28 187

原创 LangChain4j:从 Java 到 Spring Boot 的实战教程

文章摘要: 本文全面介绍了LangChain4j框架在Java和SpringBoot环境中的应用实践。作为专为Java开发者设计的大模型集成工具,LangChain4j提供了统一API支持多种AI模型(如OpenAI、DeepSeek、通义千问等),具备无框架依赖、开箱即用等特点。文章从基础配置讲起,涵盖纯Java快速入门、SpringBoot3整合、流式输出、多轮对话、FunctionCall工具调用等核心功能,并重点讲解了企业级RAG检索增强生成和Chain多模型协作方案。通过对比LangChain4j

2026-05-07 15:11:59 417

原创 LangChain4j 高级RAG实战:元数据注入 + 三种元数据过滤 企业级开发手册

LangChain4j 高级RAG实战:元数据注入+三种元数据过滤 企业级开发手册

2026-05-07 14:51:58 386

原创 LangChain4j 常用注解速查表

摘要:本文提供LangChain4j常用注解速查表,按开发场景分类整理核心注解及其用途。主要包括AI服务核心注解(如@AiService、@SystemMessage)、提示词模板(@V)、对话记忆(@MemoryId)、AI工具(@Tool、@P)、RAG检索增强(@Retrieval)、文档嵌入(@FromDocument)、高级控制(@Timeout、@Temperature)以及Spring整合专用注解。重点标注8个必背注解,并区分@V(框架变量填充)和@P(AI参数描述)的使用场景,便于开发者快速

2026-04-09 13:46:00 330

原创 List和Map互转

本文总结了Java8中List与Map之间的转换操作。主要内容包括:1) List转Map的几种方式,包括处理重复key时保留新值或旧值;2) List嵌套对象转List的flatMap用法;3) List分组为Map的多种场景,包括简单分组、多级分组以及处理重复value的情况;4) Map转List的示例;5) 提供了完整的测试demo,展示了User对象的List与Map相互转换的实际应用。这些操作充分利用了Java8的Stream API和Collectors工具类,实现了集合数据的高效转换和处理。

2026-03-25 14:48:04 85

原创 Stream-流式操作

Java8 Stream流式操作提供了强大的集合处理功能,包括字段提取、分组、去重、过滤、求和、最值计算等。通过示例代码展示了如何获取字段列表、按字段分组、去重、条件过滤、数值求和、日期比较、差集计算、分类统计以及查找重复元素等常见操作。Stream API简化了集合操作,提高了代码的简洁性和可读性,适用于各种数据处理场景。

2026-03-25 14:44:27 125

原创 社区版Neo4j入门

本文介绍了Neo4j图数据库在物流路线规划中的应用。首先分析了传统表格数据查找路线时存在的效率问题,提出采用图数据库Neo4j进行优化。文章详细讲解了Neo4j的安装部署、基本概念(节点、关系、属性、标签)以及Cypher查询语言的基本操作。通过实际案例演示了如何创建节点、建立关系并进行查询,为后续物流系统中的路线规划微服务开发奠定技术基础。学习目标包括理解Neo4j的优势、掌握Cypher基本语法和Spring Data Neo4j的使用。

2026-01-20 17:47:42 608

原创 阿里短信使用案例

本文介绍了阿里云短信服务的开通和使用流程。首先需注册阿里云账号并充值短信服务,然后创建子账户并分配短信权限。接着申请短信签名和模板,等待人工审核。最后通过阿里云提供的SDK和Demo测试发送短信功能,包含请求参数和返回结果的详细说明。整个流程涵盖了账号安全、权限管理、签名模板审核等关键步骤,帮助开发者快速接入阿里云短信服务。

2026-01-20 15:30:21 807

原创 redis安装配置

Redis安装配置指南:下载安装包并解压后编译安装,修改redis.conf配置文件(注释bind、关闭保护模式、启用后台运行)。提供redis-server和redis-cli命令管理服务端和客户端。设置开机启动需创建/etc/init.d/redis服务脚本,调整执行路径和配置文件路径后设置权限,最后通过chkconfig命令添加开机自启。测试启动成功后会显示"Redis is running..."提示信息。

2026-01-20 15:09:35 344

原创 RocketMQ

本文介绍了RocketMQ消息中间件的核心概念与应用。主要内容包括:RocketMQ的基本架构(NameServer、Broker、Producer、Consumer集群)、关键概念模型(Topic、Tag、Queue、GroupName)以及消息投递方式(集群/广播模式)。文章还对比了主流消息中间件特性,详细解析了RocketMQ的高可用设计(主从架构)和消息顺序/重复处理机制。最后提及了RocketMQ与SpringBoot的整合应用,为开发者提供了分布式消息系统的实践指导。

2026-01-19 17:05:00 653

原创 MongoDB基本操作

MongoDB是一种面向文档的NoSQL数据库,具有高性能、高扩展性等特点。它采用类似JSON的BSON格式存储数据,支持复杂数据类型和强大的查询功能。MongoDB的体系结构包含文档、集合和数据库三个层次,适合存储社交类应用等读多写少、数据量大的场景。安装MongoDB后可通过命令行或客户端工具操作,数据库和集合会在首次插入数据时自动创建。相比传统关系型数据库,MongoDB在非结构化数据存储方面具有明显优势。

2026-01-19 16:20:57 658

原创 Tesseract-OCR模型包

本文介绍了使用Tesseract OCR进行PDF文本识别的方法。首先通过Maven引入tess4j依赖(版本5.17.0),然后配置语言库路径、识别语言(默认中文简体)、页面分割模式等参数。核心代码展示了如何初始化Tesseract实例,并实现PDF页面渲染和OCR处理功能。识别结果经过清洗处理,去除空白字符和重复字符。该方法支持自定义DPI和字符白名单,适用于特定场景的文字识别需求,如单位签名等关键信息的提取。

2026-01-07 11:48:49 232

原创 日志文件为什么要写在本地

日志文件本地存储利弊

2025-09-04 16:22:24 987

原创 内网的应用系统间通信需要HTTPS吗

文章摘要: 内网是否需要HTTPS需根据安全需求决定,原因包括内部威胁风险、合规要求、零信任架构趋势及网络复杂性。许多公司在Nginx进行SSL卸载以优化性能、简化证书管理并统一安全策略。内网加密可通过自签名证书(适用于小型环境)或搭建内部CA服务器(适合中大型企业)实现,后者能集中管理证书并提升安全性。(150字)

2025-09-04 16:10:12 1167

原创 25年Docker镜像无法下载的四种对策

摘要: 本文介绍了三种优化Docker镜像下载的方法:1) 配置国内镜像仓库加速下载;2) 为镜像添加特定前缀提升下载成功率;3) 通过虚拟机NAT模式共享宿主机网络实现稳定连接。同时提供了完整的Docker镜像离线迁移方案,包括使用docker save导出所有镜像和docker load导入的详细步骤,并强调了文件大小和版本兼容性等注意事项。这些方法可有效解决Docker镜像下载慢或不稳定的问题。

2025-09-04 16:03:01 912

原创 文件服务端加密—minio配置https

本文详细介绍了如何为MinIO配置HTTPS访问,包括生成自签名CA证书及私钥的步骤。首先安装OpenSSL并配置环境变量,然后通过OpenSSL生成私钥和自签名证书,关键是要在配置文件中正确设置服务器IP和DNS地址。接着在Linux和Windows平台分别配置防火墙开放端口,将证书文件放入MinIO的certs目录并重启服务。配置完成后即可通过HTTPS访问MinIO控制台,默认会从9000端口跳转到9001端口。整个流程涵盖了从证书生成到服务部署的全过程,并提示恢复HTTP访问的方法。

2025-05-28 11:16:19 2432

原创 利用Lua脚本限制用户的访问频率

本文介绍了一种基于Redis实现用户访问频率控制的Lua脚本方案。该方案通过原子递增计数和时间窗口机制,可有效防止接口滥用和爬虫攻击。脚本核心功能包括:1)使用INCR命令原子性计数;2)首次访问时自动设置过期时间;3)返回当前访问次数供业务层判断是否超限。文中还提供了Java集成示例,展示了如何在过滤器中使用该脚本进行流量控制,当访问次数超过阈值时返回限流错误。该方案适用于短链服务、登录注册等需要防刷场景。

2025-05-26 09:42:07 564

原创 使用jacob进行word操作

由于项目需要,需要在后台对word文档中的书签进行重新填值,并进行打印。一开始已经使用Spire.Doc for Java实现了这个效果,但是这个插件是收费的,公司不想买,于是就在网上找了一段时间开源的插件,最终用了JACOB这个插件。下面记录一下实现的方法。添加到项目:将jacob-1.18.jar复制到你的项目的类路径下,或是通过构建工具如Maven或Gradle的依赖管理添加。示例代码:在你的Java程序中,你可以开始使用Jacob提供的API来创建和操作COM对象,例如自动化Word文档处理等。

2025-03-05 09:47:36 677

原创 Mybatis-plus动态数据权限解决方案

Mybatis-plus动态数据权限解决方案。

2024-12-26 16:28:16 467

原创 Spring Retry + Redis Watch实现高并发乐观锁

Spring Retry + Redis Watch实现高并发乐观锁

2024-12-26 16:16:55 1060

原创 基于MinIO打造高可靠分布式“本地”文件系统

基于MinIO打造高可靠分布式“本地”文件系统

2024-12-06 17:45:23 1138

原创 分布式事务解决XA规范单机版方案

分布式事务解决XA规范单机版方案。

2024-09-20 09:49:54 307 1

原创 Drools规则引擎实现停车计费

Drools规则引擎高级实战(实现停车计费案列)

2024-08-01 16:08:43 953

原创 Explain Extra常见输出解析

mysql调优 explain查看执行计划 extra

2024-07-23 16:33:48 447

原创 20分钟上手新版Skywalking 9.x APM监控系统

20分钟上手新版Skywalking 9.x APM监控系统

2024-07-23 14:29:36 1372

原创 构建Nacos高可用集群

构建Nacos高可用集群

2024-07-23 14:15:52 1126

原创 1小时上手Alibaba Sentinel流控安全组件

1小时上手Alibaba Sentinel流控安全组件

2024-07-22 10:42:26 1485

阿里短信的sdk集成demo

阿里短信的sdk集成demo

2026-01-20

Tesseract-OCR模型包

Tesseract-OCR模型包

2026-01-07

初始化维护地区的一个csv文件,然后利用ip2region.xdb 查找ip,获取所属位置

初始化维护地区的一个csv文件,然后利用ip2region.xdb 查找ip,获取所属位置

2024-10-09

seata1.7 版本安装包相关,和整个方案实例

seata1.7 版本安装包相关,和整个方案实例

2024-09-27

RabbitMQ在Centos7.5上安装和集群部署

RabbitMQ在Centos7.5上安装和集群部署

2024-09-25

利用RocketMQ进行分布式事务解决案列

利用RocketMQ进行分布式事务解决案列

2024-09-20

利用Aspose对模板进行Word和PDF生成

生成模板的案列包括,aspose 的jar包

2023-06-09

压缩js和css,优化前端资源占用案例

1.利用后台进行css和js压缩。减少前端资源访问的占用。

2022-03-02

web项目页面缓存清除,不用每次刷新浏览器

1.清除页面缓存,提供操作手册以及资源文件

2022-03-02

web应用软件授权案例

1.提供服务端,客户端授权demo。 2.提供集成项目的使用手册。 3.支持ip,机器码等多种形式的授权验证

2022-03-02

jsp项目放置表单重复提交

1.提供表单放置重复提交demo。 2.从后台到前台使用都有详细资料。

2022-03-02

web应用数据库密码加密

1.针对springboot和spring项目的数据库密码加密。 2.提供集成手册

2022-03-02

linux下远程定时备份oracle数据库

1.在没有安装oracle数据库的linux环境下,远程定时备份oracle数据库。 2.并且提供安装包,以及操做文档。

2022-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除