- 博客(122)
- 收藏
- 关注
原创 OpenAI 文本嵌入模型(Embeddings)技术文档
文本嵌入(Text Embedding)是一种将文本数据(如单词、句子或文档)转换为固定长度的数值向量(即一系列浮点数)的技术。这个过程的核心目标是捕捉文本的深层语义信息,使得语义相近的文本在向量空间中的距离也更近。OpenAI 的文本嵌入模型基于先进的深度学习架构(如 Transformer),通过在海量多语言文本数据上进行预训练,学习到了丰富的语言表征能力。生成的嵌入向量是高维空间中的点,向量之间的距离(常用余弦相似度衡量)直接反映了文本之间的语义相关性:距离越小,相关性越高。
2026-03-25 14:16:58
513
原创 国内支持Embedding的OpenAI兼容网关服务详解
随着国内大模型生态的快速发展,出现了多种提供OpenAI兼容接口的API网关服务。这些服务不仅支持文本生成(Chat Completion),还普遍支持文本向量化(Embeddings)功能,为开发者提供了便捷的国内替代方案。本文将详细介绍国内主流的支持Embedding的兼容网关服务。概念:阿里云百炼是阿里云推出的大模型服务平台,其Embedding服务完全兼容OpenAI API规范。功能特点提供完整的Qwen3-Embedding系列模型,包括text-embedding-v1/v2/v3/v4。
2026-03-25 14:15:48
643
原创 Java 17+ 新特性详解:Record 与 Pattern Matching
Java 17作为长期支持版本,引入了Record和Pattern Matching两大革新特性。Record简化了不可变数据类的定义,自动生成构造器、访问器等标准方法,适用于DTO、值对象等场景。Pattern Matching通过instanceof和switch的模式匹配,消除了显式类型转换,使代码更简洁安全。这两项特性显著提升了Java的开发效率和代码可读性,标志着Java语言现代化的重要进展。后续版本如Java 21进一步完善了这些功能,使模式匹配更加成熟。
2026-03-19 16:11:13
431
原创 Spring AI Alibaba StateGraph 工作流引擎详解
Spring AI Alibaba Graph框架通过StateGraph工作流引擎实现复杂AI任务的可视化编排。核心设计采用"节点+边"结构,节点处理原子任务,边控制流程流转。框架提供三层架构(Agent Framework、Graph工作流、Augmented LLM)和三种状态管理策略(覆盖/追加/合并),支持条件分支、并行执行等高级特性。开发者通过定义状态工厂、实现节点逻辑、构建工作流图即可完成复杂AI应用的开发,适用于客户服务自动化、内容生成等工作场景。该框架为Java开发者提
2026-03-19 15:38:12
722
1
原创 java基于余弦算法地址匹配
本文介绍了一种名为checkDistrictV2的行政区划智能匹配方法。该方法通过多级评分算法将用户输入地址与行政区划数据库进行匹配,返回最可能的5个结果。核心流程包括:空值检查→数据库查询→精确匹配(优先)→模糊匹配(基于包含关系、后缀匹配、余弦相似度等评分策略)→结果排序去重。算法设计强调精度优先、位置加权、具体性优先等原则,通过分层匹配策略和结果净化机制确保匹配质量。文末附有Java实现代码片段,展示了方法的基本调用逻辑和参数处理。
2026-03-12 12:01:28
398
原创 Cursor中配置DeepSeek,Kimi,GLM对比
本文对比了DeepSeek、Kimi和GLM三大AI编程工具的配置方法、功能支持、性能特点和价格成本。DeepSeek V3.2性价比最高,适合算法开发和预算有限项目;Kimi K2.5支持多模态和长文档处理,适合视觉编程;GLM-4.7在企业级应用和中文项目上表现突出。三者均需Cursor Pro订阅,但高级功能受限。建议根据任务需求组合使用,优先试用免费额度再决定长期方案。
2026-03-12 10:07:18
2245
原创 SaaS点餐平台难点详细解决方案
本文介绍了SaaS点餐平台的两个核心难点解决方案。针对多租户架构,提出动态数据源三级缓存管理方案,通过热点租户连接池、共享连接池和按需创建机制优化资源利用;并设计异步聚合方案解决跨租户统计查询问题。针对高并发订单系统,提出三级库存保护方案,结合Redis原子操作、数据库乐观锁和消息队列实现高性能防超卖。这些方案通过分级缓存、并行处理和异步机制有效平衡了系统性能和资源消耗。
2026-02-23 18:18:52
183
原创 若依Vue 项目多子路径配置
Vue 项目多子路径配置摘要 核心修改点 静态资源路径:将 vue.config.js 中的 publicPath 改为 "./",使静态资源能适配任意子路径 动态路由基址:在 router/index.js 中添加 getRouterBase() 函数,根据当前URL自动判断使用 /linyi 或 /dongyin 作为路由基址 服务器配置要点 Nginx/Apache 需配置多个 location 指向同一应用目录 确保 history 模式的路由回退到对应子路径的 index.ht
2026-01-31 11:26:05
962
原创 cursor 打开wsl Ubuntu项目
在使用Windows Subsystem for Linux (WSL)时,如果你想通过Windows上的Visual Studio Code (VS Code)来打开一个Ubuntu项目,可以按照以下步骤操作。如果没有安装,你可以通过Microsoft Store安装WSL和Ubuntu。现在,你可以在VS Code中编辑WSL中的文件了。通过以上步骤,你应该能够顺利地在VS Code中打开和编辑存储在WSL Ubuntu中的项目了。在VS Code中,你需要安装一个扩展来支持WSL。
2026-01-09 14:41:08
691
2
原创 WSL安装到D盘
方法一:迁移现有WSL系统(适用于已安装在C盘的情况) 如果WSL已安装在C盘,可通过导出和导入方式迁移至D盘。方法二:使用wsl --manage命令(适用于WSL 2) 若系统支持,可直接移动存储路径。方法三:修改注册表设置默认路径(适用于新安装) 通过修改注册表可使新安装的发行版直接存储到D盘。将WSL安装到D盘有多种方法,可根据当前系统状态选择。以下是基于常见场景的步骤。方法四:直接导入离线包(适用于离线环境) 若有离线安装包(如。文件),可直接导入到D盘。
2026-01-06 15:06:40
1987
1
原创 Gin框架整合MinIO对象存储完整指南
本方案整合了MinIO的核心功能与Gin框架的高性能特性,通过分层设计实现了可扩展的文件存储服务。生产环境中建议结合对象生命周期管理、跨区域复制等高级特性,构建完整的云存储解决方案。
2025-11-14 17:41:40
350
原创 智能合约与智能合约开发交互详解
智能合约是区块链技术的核心应用之一,其通过“代码即法律”的理念,解决了传统合约的信任问题,实现了自动化、透明化、不可篡改的合约执行。开发智能合约需遵循“需求分析-技术选型-编码实现-测试-部署”的全流程,注重安全实践(如使用OpenZeppelin库、遵循Checks-Effects-Interactions模式),并通过前端(Web3.js)与后端(Web3.py)的交互实现与用户的连接。随着区块链技术的不断发展,智能合约的应用场景将不断扩大,成为数字经济的重要基础设施。未来,智能合约将向智能化。
2025-11-05 17:34:55
557
1
原创 Web3开发中的前端、后端与合约:角色定位与协作逻辑
智能合约:实现“代码即法律”,消除第三方中介,确保交易的自动化与可信度;前端:连接用户与区块链,让区块链的“复杂逻辑”变得“用户友好”;后端:弥补区块链的局限性,提升DApp的性能与用户体验。
2025-11-05 17:33:18
627
原创 区块链开发与核心技术详解:从基础概念到共识机制实践
Index:区块在链中的位置(高度);Timestamp:区块创建时间戳;:区块包含的交易列表;PrevHash:前一个区块的哈希值(链接);Hash:当前区块的哈希值(由内容计算得出)。Go代码示例import ("fmt""time"// 交易结构体(包含发送方、接收方、金额)// 区块结构体Index int `json:"index"` // 区块高度Timestamp int64 `json:"timestamp"` // 创建时间(Unix时间戳)
2025-11-05 17:28:21
1038
原创 spring ai 使用mysql管理会话实现会话记忆
Component@Override// 自定义存储逻辑(如消息加密)@Override// 自定义查询逻辑(如解密、格式转换)
2025-10-21 11:34:19
821
1
原创 Spring AI Alibaba 完全指南:从入门到MCP高级应用
当现有的 MCP 服务不能满足业务需求时,您可以基于 Spring AI Alibaba 创建自己的 MCP 服务。创建 MCP 服务端项目添加依赖:</</</</</</</定义业务工具@Service@Tool(description = "根据类型生成笑话")public String getJoker(@ToolParam(description = "笑话类型") String type) {if ("高雅".equals(type)) {
2025-10-18 14:15:00
1084
原创 Spring AI Alibaba 由浅入深全面解析:从基础入门到企业级实战
摘要: Spring AI Alibaba是阿里云推出的Spring Boot Starter模块,深度集成通义千问等大模型,显著降低Java开发者构建AI应用的门槛。它提供开箱即用的API封装,支持流式输出、函数调用、RAG等高级功能,并与Spring Cloud Alibaba生态无缝集成。开发者只需简单配置即可快速接入,适用于智能客服、内容生成、数据分析等企业级场景。通过环境变量管理API密钥确保安全性,其极简API设计(如10行代码实现聊天机器人)和流式响应支持,使AI能力更易融入Java应用生态。
2025-10-18 10:45:00
1160
原创 SpringAI与MCP深度集成:构建下一代智能应用
MCP(模型上下文协议)是Anthropic推出的AI标准化协议,旨在解决大模型与外部工具间的通信碎片化问题。它通过JSON-RPC 2.0标准化消息格式,支持跨模型工具复用和链式调用。SpringAI框架深度集成MCP,提供声明式开发(@Tool注解)和自动序列化能力,大幅降低开发门槛。本文详细介绍了MCP服务端开发流程,包括两种通信模式(Stdio/SSE)的配置实现,并以天气查询工具为例展示了工具开发方法,最后说明了客户端集成方式。该方案显著提升了AI应用开发效率,实现了工具能力的跨平台复用。
2025-10-15 10:13:32
1147
原创 SpringAI 完全指南:为Java应用注入生成式AI能力
SpringAI是Spring官方推出的AI开发框架,为Java开发者提供标准化的大模型接入能力。该框架支持多模型服务(如OpenAI、Ollama等),通过类似JdbcTemplate的模板方法简化调用,内置企业级特性如重试机制和限流策略。开发者只需在Spring Boot项目中添加相应依赖,配置API密钥或本地模型地址,即可快速构建AI应用。SpringAI支持基础文本生成、流式响应和提示模板化等核心功能,能与Spring生态无缝集成,显著降低Java开发者的AI应用开发门槛。
2025-10-15 10:07:23
1589
原创 RocketMQ 与 RabbitMQ 全面对比:架构、性能与适用场景解析
摘要: Apache RocketMQ与RabbitMQ在消息中间件领域各有优势。RocketMQ(Java生态)侧重高吞吐、分布式事务,适合电商、金融等大规模场景,支持顺序消息和延迟消息;RabbitMQ(Erlang编写)则擅长灵活路由,支持AMQP等多协议,适合复杂路由需求及异构系统集成。RocketMQ性能更高(单机百万级TPS),而RabbitMQ延迟更低(微秒级)。选型建议:高吞吐/顺序消息选RocketMQ,复杂路由/多语言支持选RabbitMQ,需结合业务需求、技术栈综合考量。
2025-10-14 17:42:55
885
原创 RabbitMQ全面详解:从核心概念到企业级应用
RabbitMQ是一个开源的消息代理中间件,基于AMQP协议实现,用于分布式系统间的异步通信。其核心架构包含生产者、交换机、队列、消费者等组件,支持灵活的消息路由和高可靠性传输。文章详细介绍了RabbitMQ的环境搭建方法(包括Docker和Linux系统安装)、基本配置管理以及工作模式。其中重点讲解了简单模式的Java实现,展示了如何创建生产者发送持久化消息,以及消费者接收并手动确认消息的完整流程。RabbitMQ以其高可用性、集群支持和多协议兼容性,成为现代分布式系统中重要的消息中间件解决方案。
2025-10-14 17:30:26
575
原创 RocketMQ全面详解:从核心概念到高性能实战
RocketMQ是阿里巴巴开源的高性能分布式消息中间件,支持亿级消息处理,广泛应用于大数据实时计算、日志收集等场景。其核心架构包括NameServer(路由中心)、Broker(消息存储)、Producer(生产者)和Consumer(消费者)四大组件,采用Topic和Queue实现消息分类与并行处理。本文详细介绍了RocketMQ的安装配置、核心概念以及基础使用,包括Java客户端的消息收发示例代码,帮助开发者快速掌握RocketMQ的基本原理与实战应用。
2025-10-14 17:19:41
463
原创 Go语言泛型全面解析:从基础到高级应用
Go 1.18引入泛型解决了代码复用和类型安全的核心问题。泛型允许编写类型参数化的代码,支持函数和结构体的通用实现。通过类型约束(如any、comparable)限定参数范围,使用~符号支持底层类型。泛型适合实现通用数据结构(栈、队列)和算法(map/filter/reduce),但不适用于简单函数或性能敏感场景。Go采用折中的实现方案平衡编译速度与运行时性能。使用时需注意类型参数限制和合理约束设计。
2025-10-11 09:35:40
653
原创 Go语言GC调优:常见问题与解决方案
Go语言GC性能优化指南摘要 本文总结了6种常见的Go语言GC性能问题及解决方案:1)GC频繁触发时,建议调整GOGC参数、使用对象池和预分配内存;2)STW暂停时间过长时,应减少全局变量、控制Goroutine数量并优化数据结构;3)内存泄漏问题可通过Context管理Goroutine、设置缓存过期机制和使用pprof定位;4)高并发下的内存压力可通过strings.Builder、优化结构体布局和减少内存逃逸缓解;5)容器环境中需设置GOMEMLIMIT和合理配置GOGC;6)推荐使用GODEBUG=
2025-10-11 09:21:41
460
原创 Go语言GC调优全面指南(一)
Go语言垃圾回收机制采用并发标记-清扫算法,从Go 1.5开始引入三色标记法,实现了亚毫秒级暂停时间。GC演进历经多个版本优化,包括Go 1.14降低CPU占用30%、Go 1.18支持分代回收等。触发机制包括内存分配、定时和手动触发三种方式,核心参数GOGC可调节GC频率。评估内存分配需关注GC行为、内存使用效率和分配热点,工具包括GC日志和pprof分析。调优策略包括调整GOGC、设置GOMEMLIMIT、对象复用、预分配内存等,其中sync.Pool可显著减少GC压力。合理优化可使吞吐量提升20%或延
2025-10-11 09:20:43
423
原创 Go 协程在实际项目中的应用详解
Go协程是Go语言中的轻量级并发执行单元,相比传统线程具有显著优势:初始栈空间仅2KB,支持高效调度降低上下文切换开销,语法简洁只需go关键字即可启动。协程特别适用于高并发网络服务(如Web服务器)、大规模并行计算(如图像处理)等场景,可轻松创建百万级并发。Go通过通道(Channel)和同步原语实现安全通信,遵循"通过通信共享内存"的设计理念。协程的资源占用少、调度效率高,能显著提升程序性能,是构建高并发应用的核心工具。
2025-10-11 09:05:36
437
原创 Go语言操作Redis
本文全面介绍了Go语言操作Redis的方法,包括客户端选择、环境配置和五大基础数据结构操作。重点讲解了go-redis库的使用,涵盖字符串、哈希、列表、集合和有序集合的CRUD操作,并演示了管道技术等高级特性。文章提供了实用的代码示例,帮助开发者快速掌握Go与Redis的交互技巧,实现高效数据存储与访问。
2025-10-09 17:22:01
626
原创 Go vs Java:云原生时代的技术博弈与开发者生存指南
在当今软件开发领域,Go与Java的对比不仅是两种编程语言的较量,更是的碰撞。Java作为企业级应用的"老牌贵族",自1995年诞生以来一直占据着后端开发的主导地位;而Go作为2009年问世的"后起之秀",凭借其在云原生时代的独特优势迅速崛起。据TIOBE排行榜数据显示,Go语言从2020年的第13位升至2025年的第7位,市场份额突破3%,而Java虽面临挑战但仍稳居前列。本文将从四个维度,深度解析这两种语言的优劣得失,为开发者在这个技术变革的时代提供决策参考。
2025-09-30 12:32:40
465
原创 Gin 框架令牌桶限流实战指南
本文介绍了在Gin框架中实现令牌桶限流的两种方法:手动实现和利用官方rate包。令牌桶算法通过控制请求速率保护系统,允许突发流量同时保持长期稳定速率。手动实现提供了高度灵活性,包含令牌桶结构、限流器逻辑和中间件封装;而官方rate包方案更简洁,内置了令牌桶实现和客户端清理机制。两种方法都能有效防止服务器过载,开发者可根据项目需求选择适合的方案。
2025-09-26 16:20:39
711
原创 Gin框架整合Swagger生成接口文档完整指南
摘要:本文介绍了在Gin框架中集成Swagger自动生成API文档的方法。Swagger通过代码注解实现"代码即文档",解决了传统手写文档更新不同步、调试不便等问题。内容包括:1) Swagger安装配置;2) 项目结构与基础注解配置;3) 数据模型和API接口的详细注解编写规范,涵盖GET、POST、PUT、DELETE等多种请求类型,提供参数校验、响应格式等标准定义。通过集成Swagger,开发者可以自动生成实时准确的API文档,提升开发效率和协作质量。
2025-09-26 16:18:19
1130
原创 Go语言net/http库使用详解
Go语言的net/http包提供了完整的HTTP服务器和客户端实现,支持快速构建高性能Web服务。服务器端支持路由管理、请求方法处理、参数解析(查询参数、表单和JSON)等功能,并可通过中间件扩展功能。客户端方面支持GET/POST请求发送、自定义请求头、超时设置等特性。该标准库设计简洁,无需依赖第三方框架即可实现完整的HTTP通信功能,适合构建各种规模的Web应用和服务。
2025-09-26 16:14:47
667
原创 Go test 命令完整指南:从基础到高级用法
Go语言测试工具go test是Go语言内置的测试框架,支持测试函数、基准测试和示例函数。测试文件需以_test.go结尾,包含三种函数类型:TestXXX(测试函数)、BenchmarkXXX(基准测试)和ExampleXXX(示例函数)。该工具提供多种运行模式,支持测试缓存管理、并行测试、初始化清理等特性。基准测试可通过-bench参数运行并分析性能,还支持生成CPU、内存等性能分析数据。go test的高级功能包括表驱动测试、子测试、JSON输出等,并可通过-cover参数进行代码覆盖率分析。最后可通
2025-09-26 16:12:38
1028
原创 Go tool pprof 与 Gin 框架性能分析完整指南
pprof是Go语言内置的性能分析工具,可诊断CPU、内存、Goroutine等性能问题。它通过采样机制实现低开销分析(<5%),支持多种分析类型:CPU分析定位热点代码,内存分析检测泄漏,Goroutine分析诊断阻塞等。在Gin框架中可通过标准库或gin-contrib/pprof集成,生产环境需添加访问控制。分析时使用go tool pprof采集数据,支持交互式命令(top/list/web)和可视化工具(火焰图/调用图)。实战案例展示了如何诊断CPU瓶颈、内存泄漏和Goroutine泄漏问题
2025-09-26 16:09:44
934
原创 Go语言在区块链开发中的应用场景详解
对于准备进入区块链领域的开发者来说,掌握Go语言无疑是一个明智的选择,将为参与前沿区块链项目奠定坚实基础。Go语言在区块链开发领域备受青睐,主要得益于其独特的语言特性和强大的并发支持。Go语言强大的标准库支持快速构建区块链节点的RPC接口和API服务,方便外部应用与区块链交互。未来,随着Go语言本身的演进和区块链技术的成熟,两者结合将催生更多创新应用,推动区块链技术在金融、供应链、政府服务等领域的广泛落地。Go语言通过其简洁的语法和强大的数据结构支持,非常适合实现分布式账本的核心逻辑。
2025-09-25 15:53:15
763
原创 Gin框架拦截器(中间件)使用指南
中间件是一个返回的函数,在函数体内可以编写需要在请求处理前后执行的逻辑。// 在请求处理之前执行的代码// 继续执行后续的请求处理逻辑c.Next()// 在请求处理之后执行的代码Gin框架的拦截器(中间件)是实现横切关注点的强大工具,通过合理的中间件设计,可以提高代码的复用性、可维护性和可扩展性。掌握中间件的定义、注册、执行顺序以及关键方法的正确使用,是构建高质量Gin应用的关键。
2025-09-25 15:43:40
954
原创 全掌握Go语言中的JSON操作
本文介绍了Go语言中处理JSON的常用方法:1)JSON与Go类型的对应关系;2)基本编码(json.Marshal)和解码(json.Unmarshal)操作;3)结构体标签的使用技巧;4)处理未知JSON结构的两种方式(map[string]interface{}和json.RawMessage);5)时间类型的处理;6)流式处理大JSON数据的方法。文章通过示例代码展示了如何自定义JSON字段名、忽略字段、处理动态结构等实用技巧,适合Go开发者快速掌握JSON处理的核心技术。
2025-09-24 17:21:05
794
原创 现代Go语言开发
现代 Go 语言开发不仅仅是掌握语法,更是一套包含工程实践并发模型依赖管理微服务架构和性能优化的综合体系。希望以上介绍能帮助你更好地理解现代 Go 开发。如果你在特定场景(例如高并发处理、微服务部署)
2025-09-24 17:15:44
365
原创 Go 语言函数式编程利器:samber/lo 库完全指南
samber/lo 是一个基于 Go 1.18+ 泛型实现的 Lodash 风格工具库,提供 100+ 实用函数简化集合操作。核心优势包括:类型安全、函数式编程支持(Map/Filter/Reduce等)、丰富功能和高效性能。安装简单(go get github.com/samber/lo@v1),支持切片转换(Map)、过滤(Filter)、分组(GroupBy)等常见操作,显著减少样板代码。该库特别适合数据处理场景,能提升代码简洁性和可读性,同时保持与手写循环相当的性能。
2025-09-23 16:22:50
1063
原创 Go 语言切片和 Map 操作常用库指南
在 Go 项目开发中,我们频繁地对切片(slice)和映射(map)进行各种操作,例如元素过滤、数据转换、集合运算(求交集、并集)、排序、去重等。Go 的标准库提供了一些基础功能,但更高级的操作往往需要开发者手动实现,这不仅增加了代码量,也提高了出错的风险。第三方库通过封装常用操作、提供泛型支持、实现函数式编程风格以及保证类型安全等方式,极大地简化了切片和 map 的处理。这些库通常还经过优化,旨在提供高性能,避免引入额外开销。提高开发效率:减少样板代码,让开发者更专注于业务逻辑。增强代码可读性。
2025-09-23 16:06:37
1065
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅