- 博客(1298)
- 资源 (78)
- 收藏
- 关注
原创 Spring AI 之工具调用
摘要 工具调用是AI应用中增强模型能力的重要方式,分为信息检索和执行操作两大类。信息检索工具扩展模型知识库(如获取实时天气),执行工具自动化任务(如发送邮件)。Spring AI提供了便捷的API实现工具调用,安全机制确保模型只能请求调用而不能直接访问API。示例展示了通过@Tool注解定义日期查询和闹钟设置工具,模型可组合调用这些工具完成复杂任务(如10分钟后设置闹钟需先获取当前时间)。该机制有效弥补了AI模型无法获取实时信息和执行物理操作的局限。
2025-06-04 23:25:16
766
1
原创 Spring 开发疑难之methods with same signature getSchemaManager() but incompatible return types问题分析和解决
在基于Spring Boot 3.5的项目中,分离公共功能库时因引入jakarta.persistence-api 3.2.0导致与Hibernate的SchemaManager接口冲突,出现方法签名相同但返回类型不兼容的错误(IllegalArgumentException)。根本原因是Hibernate 6.x与Jakarta Persistence 3.x的API版本不匹配。
2025-06-04 22:27:35
31
原创 Spring AI 之检索增强生成(Retrieval Augmented Generation)
摘要: Spring AI通过增强器(Advisors)提供检索增强生成(RAG)支持,帮助语言模型结合外部数据提升回答准确性。QuestionAnswerAdvisor核心功能包括:从向量数据库检索相关文档,动态过滤(支持SQL表达式),以及自定义提示模板整合上下文。开发者可通过配置相似度阈值、结果数量及运行时过滤条件优化搜索,并灵活定制提示模板的占位符(query和question_answer_context)以适应不同场景。依赖spring-ai-advisors-vector-store即可快速集
2025-06-02 22:02:35
865
原创 Spring AI 之对话记忆(Chat Memory)
摘要:Spring AI为解决大型语言模型(LLMs)无状态限制,提供对话记忆功能(ChatMemory),支持在多次交互中存储上下文信息。该系统区分对话记忆(用于维持上下文)和对话历史记录(完整对话存档),并提供多种记忆类型(如基于消息窗口的MessageWindowChatMemory)和存储方案(包括内存存储InMemoryChatMemoryRepository和JDBC持久化存储JdbcChatMemoryRepository)。JDBC实现支持PostgreSQL等主流数据库,可通过方言扩展适配
2025-05-29 23:46:43
1048
原创 2.2 C++之循环结构
学习目标:示例1:输出1到10的数字运行结果:示例2:计算1到100的累加和运行结果:嵌套循环:输出乘法表运行结果:3 while 循环基本语法示例1:猜数字游戏示例2:计算水仙花数运行结果:4 do-while 循环基本语法特点:至少执行一次循环体(先执行,再判断条件)。示例:输入密码验证5 break 和 continue作用:break:立即跳出当前循环。continue:跳过本次循环剩余代码,进入下一次循环。示例:找质数(优化版
2025-05-28 22:53:47
462
原创 Spring AI 整合聊天模型之智谱AI
本文介绍了如何在Spring AI项目中集成智谱AI(ZhiPu AI)的语言模型服务,实现多语言会话助手功能。主要内容包括: 注册智谱AI平台并获取API Key; 配置Spring AI项目,通过application.properties或环境变量安全设置API Key; 添加Maven依赖启用自动配置; 详细说明了聊天属性配置,包括重试机制、连接参数和模型选项; 介绍了可配置的模型参数,如温度、top_p、最大token数等。 文章提供了完整的配置指南,帮助开发者快速集成智谱AI的GLM系列模型(如
2025-05-28 22:19:44
787
2
原创 Spring AI之快速免费使用智谱AI全过程
本文介绍了如何通过Spring AI快速集成智谱AI(ZhiPuAI)的聊天模型。首先需注册智谱AI账号获取API Token,然后创建Spring Boot项目并配置相关依赖,包括spring-ai-starter-model-zhipuai等。示例代码展示了如何通过控制器实现AI生成笑话的功能,支持普通和流式两种返回方式。最后,运行项目并测试接口效果,验证了智谱AI的集成可行性。文章还提醒注意依赖配置,避免启动错误。
2025-05-27 23:22:36
684
原创 Spring AI 之多模态
多模态大语言模型正成为AI领域新趋势。与传统单模态模型不同,新一代模型如GPT-4o、Claude3等能并行处理文本、图像、音频和视频输入。Spring AI通过消息API实现多模态支持,允许在用户消息中嵌入多种媒体资源,并提供对主流多模态模型的支持。开发者可通过简洁API实现跨模态交互,如让模型分析图片内容并生成文本描述。这种融合处理能力使AI更接近人类的多感官认知方式,为应用开发开辟了新可能。
2025-05-26 22:10:45
667
原创 Spring AI 之结构化输出转换器
Spring AI 更新了结构化输出转换器,弃用旧版Parser类,改用Converter实现类以提升功能一致性。新类如StructuredOutputConverter、BeanOutputConverter等可直接替代旧版,并支持JSON/XML等格式转换,帮助开发者将LLM文本输出快速转换为Java对象。转换过程包含提示词格式化指令和输出解析两步,但需注意模型可能无法完全遵循结构化要求。当前提供多种转换器实现,包括处理Bean、Map和List等场景的专用转换器,适用于不同下游应用的数据处理需求。
2025-05-24 22:16:13
207
原创 Spring AI 之提示词
提示词(Prompts)是引导AI模型生成特定输出的关键输入,其设计和措辞直接影响模型响应。在Spring AI中,提示词的处理方式类似于Spring MVC中的视图管理,涉及动态内容占位符的替换。Spring AI通过ChatModel和ChatClient等类与AI模型交互,类似于JDBC中的核心库和客户端。提示词的结构从简单字符串发展为包含特定输入占位符和角色分类的复杂形式。Prompt类用于存储有序的Message对象和请求选项,每个Message在提示词中扮演独特角色,如用户查询、AI响应或背景信
2025-05-22 22:29:57
174
原创 Spring AI之Advisors (增强器)
增强器应用程序编程接口(Advisors API)Spring AI Advisors API 提供了一种灵活且强大的方式,用于在 Spring 应用程序中拦截、修改和增强由人工智能驱动的交互。通过利用增强器 API,开发人员能够创建更复杂、可重用且易于维护的人工智能组件。其主要优势包括:封装重复出现的生成式人工智能模式,对发送至大型语言模型(LLMs)以及从大型语言模型接收的数据进行转换,并在不同模型和用例之间提供可移植性。建议使用构建器的方法在构建时注册增强器。
2025-05-22 22:22:35
112
原创 Spring Boot AI 之 Chat Client API 使用大全
ChatClient 提供了一套流畅的 API,支持与 AI 模型进行同步和流式交互。通过构建 Prompt,用户消息和系统消息被传递给 AI 模型,其中用户消息是直接输入,系统消息用于引导对话。Prompt 可包含占位符,运行时根据用户输入进行替换,定制 AI 响应。ChatClient 通过 ChatClient.Builder 创建,支持自动配置或编程方式构建。在需要与多个聊天模型协作的场景中,可以手动创建多个 ChatClient 实例,或为不同模型类型定义单独的 ChatClient bean,并
2025-05-21 22:33:22
1282
原创 1.4 C++之运算符与表达式
本教程旨在帮助读者掌握基本的算术运算符(+, -, *, /)和逻辑运算符(&&, ||, !),并理解表达式的优先级规则。通过实际代码示例,教程详细解释了整数与小数除法的区别,以及逻辑运算符在条件判断中的应用。此外,教程还提供了一个简单计算器程序的实现,展示了如何根据用户输入进行基本运算。最后,教程通过常见问题解答和互动挑战,鼓励读者进一步实践和扩展所学知识,如增加计算平方功能或解决逻辑谜题。通过这些内容,读者可以逐步掌握编程中的基本运算与逻辑操作。
2025-05-21 21:06:42
459
原创 Spring AI 介绍
Python因其简洁语法、丰富的AI库和框架、跨平台兼容性及活跃社区,成为AI开发的主要语言。Spring AI框架的推出为Java开发者提供了快速进入AI开发的机会。Spring AI旨在将Spring生态系统的设计原则应用于AI领域,支持主流AI模型和向量数据库,提供可移植API、结构化输出、工具调用、可观测性等功能。通过Spring Boot自动配置,开发者可以轻松集成AI模型和向量存储。快速开始指南展示了如何使用Spring AI与Azure OpenAI进行简单对话,并提供了完整项目示例代码。Sp
2025-05-20 23:25:33
586
原创 1.2 C++第一个程序
这篇文章是一个针对初学者的C++编程教程,重点介绍了如何编写并理解第一个程序“Hello World”。教程通过比喻(如将程序比作“魔法食谱”)和逐行解析代码的方式,帮助读者掌握基本概念,如cout输出、main函数的作用以及代码结构。文章还提供了动手实验和创意挑战,鼓励读者修改代码并输出自定义内容。此外,教程还解答了常见问题,并引入了变量与输出结合的扩展知识。最后,通过互动游戏“程序员的第一封信”,进一步巩固所学内容。整体内容简洁易懂,适合编程初学者入门。
2025-05-17 21:34:37
317
原创 1.1 认识编程与C++
本文介绍了编程与C++语言的基础知识,旨在帮助初学者理解编程的基本概念、C++的应用场景以及如何搭建开发环境。文章首先通过生活化的比喻解释程序、指令和数据的概念,并结合互动实验加深理解。接着,介绍了C++语言的特点及其在游戏开发、机器人控制、航天科技和动画电影等领域的广泛应用。随后,详细讲解了如何安装和配置常见的C++开发工具,如Visual Studio和Code::Blocks,并提供了简单的代码示例进行验证。最后,通过问答形式和拓展任务,鼓励读者动手实践并激发对编程的兴趣。文章通过生动的语言和清晰的步
2025-05-15 22:32:33
1151
原创 Windows Java gRPC 示例
gRPC是一个由Google开发的高性能远程过程调用(RPC)框架,广泛用于微服务通信。本文介绍了如何在Windows环境下使用Java实现gRPC的服务端和客户端调用。首先,确保环境准备完成,包括JDK 21、Maven 3.6+和VS Code。接着,创建一个Maven项目,并在pom.xml中配置gRPC相关依赖和插件。然后,定义proto文件来描述服务接口,并通过Maven命令生成Java代码。最后,分别实现服务端和客户端代码,服务端监听端口并处理请求,客户端则通过gRPC调用服务端方法。通过本文的
2025-05-13 23:29:12
95
原创 Spring Boot之MCP Client开发全介绍
标准启动器(spring-ai-starter-mcp-client)允许客户端同时通过 STDIO(进程内)和/或 SSE(远程)传输方式连接到单个或多个 MCP 服务器。WebFlux 启动器提供了与标准启动器类似的功能,但它使用的是基于 WebFlux 的 SSE(服务器发送事件,Server-Sent Events)传输实现。通过引入此依赖,可以利用 WebFlux 的响应式编程模型来处理与 MCP 服务器的 SSE 连接,从而在需要高并发和低延迟的场景下提供更好的性能。
2025-05-06 22:20:25
1260
原创 Spring Boot 之MCP Server开发全介绍
完整支持 MCP 服务器的所有功能,基于 Spring WebFlux 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。完整支持 MCP 服务器的所有功能,基于 Spring MVC 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。根据服务器类型(同步或异步),自动将提示信息规范转换为相应的同步或异步形式,简化了开发过程中的规范转换工作。
2025-05-05 08:05:13
1158
原创 SSE(Server-Sent Events)完整使用示例
本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。
2025-05-04 09:55:18
133
原创 一篇撸清 Http,SSE 与 WebSocket
特性HTTPWebSocket通信模式请求-响应(客户端主动发起)单向推送(仅服务器到客户端)全双工(客户端与服务器双向通信)协议基础基于 HTTP基于 HTTP 长连接独立协议(握手阶段依赖 HTTP)连接类型短连接(默认)或长连接(HTTP/1.1)长连接(持久性)长连接(持久性)数据格式任意格式(文本、二进制等)仅文本(UTF-8)文本和二进制延迟高(依赖轮询或长轮询)低(服务器主动推送)极低(双向即时通信)自动重连不支持支持(内置重连机制)
2025-05-04 09:54:25
497
原创 纯Java实现STDIO通信的MCP Server与客户端验证
在 MCP 协议中通过 STDIO(标准输入/输出)通信 是一种进程间通信(IPC)方式,服务器与客户端通过标准输入(stdin)和标准输出(stdout)交换数据。Spring Boot 实现MCP Server相对来说更为简单,本篇介绍在不使用Spring Boot的状况下,如何实现实现 STDIO 的MCP服务器以及调用验证。实例说明本篇和Spring Boot篇类似,实现一个简单加法的 Tool。简单起见,仅演示MCP的Tool的功能,为了更简单,该工具实现的功能只是一个简单的加法运算。
2025-05-03 19:49:14
1021
原创 基于Spring Boot实现STDIO通信的MCP Server与验证
创建一个Spring Boot项目。可以通过Spring initializer 创建,也可以在目录中直接添加一个 pom.xml 文件。这里的项目名称是mcp-spring添加依赖项</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</添加一个计算器的工具类 MyCalculateService,这个类有一个方法 add()使用@Tool 注解为一个工具。/***/@Service完成主入口类文件。
2025-05-03 18:08:05
1395
原创 MCP Java SDK 介绍与使用指南
io.modelcontextprotocol.sdk:mcp-spring-webmvc - 用于基于 servlet 的应用的基于 WebMVC 的服务器发送事件 (SSE) 传输实现。io.modelcontextprotocol.sdk:mcp-spring-webflux - 用于响应式应用的基于 WebFlux 的服务器发送事件 (SSE) 传输实现。io.modelcontextprotocol.sdk:mcp-test - MCP 应用的测试工具和支持。
2025-04-29 22:59:24
1256
原创 Ext JS模拟后端数据之SimManager
是 Ext JS 框架中用于拦截 Ajax 请求并返回模拟数据的核心工具,适用于前后端分离开发、原型验证或独立测试场景。它通过配置灵活的规则和模拟处理器(simlets 是simulated servers的简写,即模拟服务器。),帮助开发者在不依赖真实后端的情况下完成前端功能开发。的子类,定义数据生成逻辑。
2025-04-26 21:59:16
189
原创 Ext Direct 功能与使用详解
Ext Direct 是 Ext JS 框架中的一个功能模块,旨在简化前端 JavaScript 应用与后端服务器之间的通信。其核心思想是通过远程过程调用(RPC)协议,将服务器端的方法透明地映射为前端可直接调用的 JavaScript 函数,从而减少手动编写 Ajax 请求和处理响应的代码量。
2025-04-24 22:36:14
181
原创 Cline 之Plan和Act模式
Plan/Act 框架通过强制分离规划与实施阶段,有效避免了传统开发中常见的"边想边做"问题,特别适用于中大型项目的系统性开发。建议开发团队根据项目复杂度动态调整模式切换频率,在敏捷性和严谨性之间取得最佳平衡。
2025-04-22 23:14:11
623
原创 AI编程助手Cline之快速介绍
中的开源 AI 编程助手插件,旨在通过结合大语言模型(如 Claude 3.5 Sonnet、DeepSeek V3、Google Gemini 等)和工具链,为开发者提供自动化任务执行、智能代码生成、错误修复等功能,显著提升开发效率。安装之后需要提供API的提供商和Token.Cline 是一款深度集成在。
2025-04-22 22:58:57
877
原创 JavaScript与TypeScript
TypeScript 通过静态类型和现代语法增强了 JavaScript,尤其适合复杂项目,但其编译步骤和学习成本可能对简单场景不必要。JavaScript 仍是 Web 开发的基石,而 TypeScript 是它的强化版工具,两者可根据需求灵活选择或结合使用。
2025-04-21 23:24:22
1274
原创 Node.js代码执行方式(交互模式与脚本模式)
(Read-Eval-Print-Loop)允许用户在命令行中逐行输入代码并立即执行,适合快速测试代码片段。文件运行完整的 Node.js 程序,适合开发正式项目或自动化任务。是两种不同的代码执行方式,适用于不同的场景。进入调试模式,结合断点检查和交互式命令。在脚本中调试时,可通过。
2025-04-20 22:02:56
386
原创 npm 常用操作和配置
选择 npm install在开发过程中添加或更新依赖。允许依赖版本有一定的灵活性。选择 npm ci在 CI/CD 环境中确保依赖安装的一致性和可靠性。快速安装依赖,避免不必要的检查和更新。
2025-04-19 14:43:23
956
原创 Java的类加载机制和类对象
在使用Java 语言开发时,Class Loader可能是一个不用关注的概念,但是在某些疑难问题的解决的时候,可能需要掌握相关的知识,比如笔者在这一篇遇到的问题:。接下来就来全面的看一看Java的类加载机制。
2025-04-16 23:28:09
714
原创 Spring Boot JPA 开发之Not an entity血案
Spring Boot JPA 开发之Not an entity问题探求与解决
2025-04-16 23:12:35
175
原创 Python 的安装与快速入门
exe若显示版本号(如),则安装成功。pythonpython3退出交互编程模式: ctrl + z后按回车。hello.py。
2025-04-13 20:45:03
340
原创 Python语言介绍
Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。:Python 2 已于 2020 年停止维护,推荐使用 Python 3.8+(截至 2025/04 年最新为 Python 3.13.3)。Python 2.0 于 2000 年 10 月 16 日发布,增加了实现完整的垃圾回收,并且支持 Unicode。Python通过简洁的语法和强大的生态系统,成为当今最受欢迎的编程语言之一。Python 是一种解释型、面向对象、动态数据类型的高级程序语言。
2025-04-12 22:08:19
914
Windows 最新版本的allure命令行工具
2023-11-21
Jenkins 2.414.1长期支持版本安装环境
2023-09-18
批量导入maven本地库目录到Nexus私有服务器的脚本
2023-06-28
基于JSP的Java Web项目的CSRF防御示例
2023-01-07
Webpack 快速介绍及入门示例的配套示例
2022-06-24
jenkins2.277.4 及解决插件安装相关工具包.rar
2021-05-19
OpenSSL.rar
2022-01-05
spket集合.rar
2021-06-04
Spring Cloud Config的Server 和Client示例项目
2025-03-17
Anaconda Windows安装版
2025-02-01
API 测试工具 - Karate
2025-01-02
Jenkins的HTTP Request插件1.14 版本
2024-12-03
JMeter Linux + Window
2024-10-21
Postman windows 64 安装版
2024-08-13
Spring Boot 3 极速搭建OAuth2认证框架示例项目
2024-08-13
JDepend4Eclipse 解压安装版
2024-08-10
Eclipse附带如下插件: 1. Jdepend 2. Java Dependency Viewer 直接解压就可以使用
2024-08-08
Java Dependency Viewer 的Eclipse 插件离线安装包
2024-08-07
支持 ATDD (Acceptance Test Driven Development) 的工具
2024-01-15
截取动态屏幕截图的工具
2023-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人