- 博客(88)
- 收藏
- 关注
原创 Doris 数据录入方案实战
本文详解数据交互服务中台中 Doris 数据录入的双通道设计:异步(Kafka削峰)与同步直写(限流+即时反馈)。核心落地为统一使用 Stream Load 写入内核,通过动态列合并、64MB分批、幂等 label 及严格模式保障高效与可靠。重点揭示 partial_columns 实现 UPSERT、strip_outer_array 展平数组、strict_mode 零容忍校验等实战细节,避免静默丢弃与数据污染,可复用于高并发数据接入场景。
2026-10-24 17:28:32
463
原创 第 19 篇 综合项目:AI 能力网关与向量库选型复盘
本文复盘了AI能力网关与向量库选型,聚焦六种能力整合后的共性问题:跨供应商、多协议、路径复杂。提出四层网关架构——接入、路由、治理、观测,实现统一入口与可观测性。每层独立开关,支持运行期动态控制,通过关闭某层验证其作用。结合配置开关与对照实验,确保行为可解释、故障可追溯。最终以2086行代码构建无模型调用的“能力中枢”,实现安全、可控、可度量的AI服务集成。
2026-09-26 17:54:53
326
原创 第 18 篇 多模态二:图像生成
本文探讨图像生成链路的实践难题:模型接口定位、字段失效与生成不确定性。通过实验发现,虽模型在清单中存在,但因端点不匹配导致404错误,需以空请求体验证路径可用性;Spring AI框架中responseFormat字段被忽略,需依赖网关校验;生成结果受提示词影响显著,同一提示生成八图差异大,凸显提示词为建议而非指令。全链路涵盖同步等待、三种回传方式及双闭环验证,强调“出图非确定性”本质,提出以最小请求探路、网关判错、实测延迟等实战策略。
2026-09-26 17:54:38
279
原创 第 17 篇 多模态一:视觉理解
本文探讨多模态视觉理解的核心问题:图像输入如何有效传递、成本如何构成、模型输出可信度及潜在风险。通过实验验证,仅部分型号支持图像输入,且“清单存在”不等于“可用”。图像处理成本主要来自像素级解析与思维链计算,导致token消耗激增。测试表明,低分辨率图可能被模型“编造”文字,而图像描述本身会作为不可信输入影响后续检索与生成。文章强调需以可控图像测试模型表现,并警惕视觉输入带来的隐性风险。
2026-09-26 17:54:18
344
原创 第 16 篇 实践四:代码与文档搜索
本文探讨代码检索与文档检索的本质差异,强调代码切分需以声明行为边界,确保结果可定位修改。提出基于正则的切块策略,兼顾效率与准确性,并设计包含路径、行号、符号等字段的代码块结构。通过八种接口实现多路检索与融合,实测134个文件生成1069个代码块,验证了向量、全文及混合检索的有效性,揭示了切块错误导致漏检的严重后果。
2026-09-26 17:53:58
373
原创 第 15 篇 实践三:合同审查
合同审查不同于问答,核心在于输出必须结构化、可验证。模型需返回字段及其原文依据,确保可被程序核对。关键挑战包括:全文读取(因字段位置未知)、偏移定位自检、四层校验(JSON解析、Schema、引文溯源、数值自洽)。整条链路以程序为主导,模型仅负责理解,确保结论可追溯、可验证,杜绝“看不见的错误”。
2026-09-26 17:53:25
337
原创 第 14 篇 实践二:客服助手与 Tool Calling
本文通过实践客服助手的Tool Calling能力,解决知识库问答无法动态响应实时问题的局限。模型仅负责“请求调用”工具,执行权由框架掌控,确保安全可控。文章详解工具调用时序、五项关键机制(工具定义、选型、参数校验、异常处理、调用上限),并构建可观察的系统:提供多个调试接口,区分模型误判、参数错误、数据缺失与工具失败四类问题。通过真实调用验证,实现精准、可追溯的智能客服。
2026-09-24 09:11:10
356
原创 第 13 篇 实践一:企业知识库问答
本文构建企业级多轮知识库问答服务,通过引入会话管理、历史上下文与查询改写三要素,解决多轮对话中指代不清、历史误用与检索失效问题。设计分层架构,新增编排层实现会话状态维护、追问重写与上下文裁剪,并提供7个接口支持会话控制与诊断。采用租户隔离与动态阈值策略,实测表明0.3召回下限更适配多轮场景。会话存储基于进程内Map,结合过期清理与容量限制,保障性能与稳定性。
2026-09-24 09:10:39
573
原创 第 12 篇:引用溯源与数据脱敏
本文聚焦RAG系统中引用溯源与数据脱敏的矛盾,提出“可信边界”与“泄漏边界”的权衡。通过实测对比“写入前脱敏”与“返回前脱敏”两条路径:前者牺牲召回率保安全,后者保留原文供检索但存在泄露风险。核心在于掩码规则的合并策略——统一收集命中区间、按起点升序、长优先裁决冲突,避免规则互抢;同时强调正则需加边界断言(如(?<!\d)),否则易误伤合同号等非敏感字段。最终揭示:脱敏无完美解,唯有在召回率、安全性与准确率间明确选边。
2026-09-24 09:10:12
218
原创 第 11 篇:多租户隔离与权限过滤
本文聚焦多租户系统中的数据隔离与权限控制,强调租户(横向)与组权限(纵向)必须分离管理。通过请求头解析身份,强制由框架注入租户条件,防止调用方伪造或遗漏。写入侧以目录路径确定租户归属,以独立映射文件定义可见范围,避免权限泄露。关键细节包括:使用完整相对路径匹配权限规则、块ID基于租户+路径生成以防碰撞、并确保计数与ID生成口径一致。错误不表现为接口异常,而是“看似正确却含敏感数据”,需通过开/关隔离对比验证效果。
2026-09-24 09:09:39
337
原创 第 10 篇:拼上下文与生成——预算、边界与防幻觉
本文通过实测厘清大模型上下文管理三大核心问题:token换算比例为1:1.73,固定开销约164 token;预算应按实际需求设定,而非模型上限;超限时优先丢弃尾部块,仅最后一块可截断并加标记。关键发现:当资料缺失时,直接提问模型会“头头是道”,而RAG系统反而诚实回应“无相关内容”,这是防止幻觉的唯一可靠机制。
2026-09-24 09:09:08
248
原创 第 09 篇:重排——Rerank 与 RRF
本文探讨检索流程中“重排”(Rerank)的关键作用:在粗筛后的候选结果中,通过融合query与候选文本的模型打分,实现更精准排序。实测发现,即使向量库从Elasticsearch换为Qdrant,重排结果不变,揭示了重排环节对后端切换的鲁棒性。相比仅融合名次的RRF,重排能引入新信息、推翻原有排名,显著提升相关性判断精度。同时指出,阿里云百炼的重排接口需使用原生协议,与兼容模式不兼容,带来额外开发成本。最终强调,重排是连接检索与生成的核心桥梁,其输出直接影响上下文质量。
2026-09-23 19:01:27
265
原创 第 08 篇:检索——相似度阈值、元数据过滤与混合检索
本文深入解析检索三要素:相似度阈值、元数据过滤与混合检索。通过实测揭示阈值在检索后生效,仅筛选topK结果;元数据过滤在查询前裁剪候选集,两库行为一致但分数存在微小噪声。实验表明,合理设置阈值可避免“查不到”误判,而过滤条件需通过轻量DSL灵活配置。最终强调:检索效果90%取决于参数调优,需结合阈值扫描与多维度验证。
2026-09-23 19:01:15
186
原创 第 07 篇:VectorStore 抽象与 Elasticsearch 落地
本文深入解析Spring AI中VectorStore抽象与Elasticsearch的落地实现。通过接口抽象,应用仅依赖VectorStore,实现可无缝切换。核心在于:换库本质是配置变更,但实测发现需排除的是VectorStoreAutoConfiguration而非客户端,否则会因残留ElasticsearchClient导致逻辑错误。配置差异仅体现在index-name/collection-name、连接参数及排除项,代码零修改。关键启示:抽象层虽简化了切换,但对底层细节(如刷新机制)仍需深度理解
2026-09-23 19:00:57
356
原创 第 06 篇:Embedding 与相似度:分数到底是什么
本文深入解析Embedding向量化过程与相似度分数的本质:1024维向量经单位化处理,使余弦相似度退化为点积,实现高效检索;分数反映向量方向一致性,而非绝对值大小;同一文本多次调用结果完全一致,具备可复现性,为调试提供可靠基础。
2026-09-23 19:00:43
342
原创 第 05 篇:分块策略:按什么切、块多大、重叠多少
本文系统探讨分块策略的三大核心问题:切点选择、块大小设定与重叠设计。通过对比token、fixed、paragraph三类策略,揭示其在块长分布、语义完整性与可预测性上的差异。实测表明,token策略虽灵活但块长不均,fixed虽均匀却易腰斩句子,paragraph保语义完整但难控长度。文章提出将参数解耦为独立配置对象,支持快速实验,并通过 /chunks 接口实现零成本对照测试,强调“块切错则检索失效”的根本原则,最终以实测字符数而非配置值评估效果,确保策略选择有据可依。
2026-09-23 19:00:17
181
原创 第 04 篇:文档加载:PDF / Word / Markdown 到 Document
本文解决企业文档(PDF/Word/Excel)转为Document的难题。针对非文本格式需解析器,引入Tika统一处理二进制容器,实现按后缀分派读取器:.md用TextReader或MarkdownDocumentReader,其他用TikaDocumentReader。新增/parse接口可视化解析结果,排查“文件未入库”问题。实测显示,同一内容在不同格式中字符数差异源于标记、页眉页脚及表格处理方式,强调字符数非质量指标,需结合内容理解。
2026-09-22 18:47:44
219
原创 第 03 篇:RAG 全景:八个步骤与每一步的失败模式
本文系统解析RAG的八步流程,聚焦“模型不知之事如何答对”核心问题。通过真实语料测试,对比直接提问与RAG响应,凸显RAG的核心价值:答案可追溯、边界清晰。以最小闭环设计,拆解文档加载、分块、向量化、入库、检索等关键步骤,揭示各环节常见失败模式(如文本丢失、元数据缺失、召回错误)。强调第4、5步元数据管理的重要性,并通过独立检索接口实现故障定位。最终验证从加载到生成的完整链路,确保答案基于可信资料,杜绝模型幻觉。
2026-09-22 18:46:49
121
原创 第 02 篇:第一个 Spring AI 应用:ChatClient 与 Advisor
本文通过对比 ChatModel 与 ChatClient 的使用差异,揭示 Spring AI 框架的核心优势:通过链式调用与 Advisor 机制,实现提示词、日志、监控等横切关注点的统一管理。ChatClient 封装请求构建与默认配置,减少重复代码;Advisor 提供拦截点,实现耗时、Token 统计等非业务逻辑的自动注入,支持可复用、可组合的横切逻辑,显著提升开发效率与系统可观测性。
2026-09-22 18:46:14
113
原创 第 01 篇:框架选型:Spring AI / LangChain4j / Spring AI Alibaba
本系列选Spring AI 1.1.8为主框架,因其与Spring Boot生态深度契合、抽象设计稳定、扩展性强且版本可控。LangChain4j虽声明式简洁但迭代快、调试困难,适合作为非Spring项目的备选;Spring AI Alibaba虽功能丰富,但依赖阿里云栈且会掩盖底层配置逻辑,不适合作为主线学习。未来若需多智能体编排或企业级可观测性,可再考虑切换。
2026-09-22 18:45:25
112
原创 第 00 篇:从手写到框架,边界在哪
本阶段承接第一阶段手写实践,揭示重复劳动与业务数据孤岛问题。Spring AI 框架接管请求封装、流处理、向量化等通用逻辑,但业务知识、权限控制、引用溯源、评测兜底等核心决策仍需自主构建。强调“框架解决怎么调,不解决调什么、给谁调、对不对”。全程使用真实云服务(商汤+阿里云),验证多厂商模型拼装可行性,真实暴露限流、模型缺陷等问题。动手前须完成环境配置,确保 JDK 21、Maven、Elasticsearch、API Key 等全就绪,仅本地 Mock 可作临时兜底。
2026-09-22 18:44:36
581
原创 第 13 篇:综合项目 —— 无框架版 AI 能力网关 + 复盘
本文构建了无框架版AI能力网关,实现配置驱动、统一响应、全链路可观测与降级兜底。通过四层架构(业务、编排、容错、接入)解耦,仅需修改配置即可切换大模型供应商,业务代码零改动。统一返回结构确保降级时仍为200状态码,避免前端误判。复盘指出:无框架设计更灵活可控,适合定制化需求;而框架如Spring AI可简化通用逻辑,但需权衡灵活性与抽象成本。
2026-09-17 09:50:51
420
原创 第 12 篇:实践四 —— 工单回复建议
本实践构建工单回复建议系统,融合RAG检索、结构化输出与多重安全机制。通过语义召回知识片段确保回复有据可依,用真实检索结果覆盖模型自报引用,杜绝编造来源;设置敏感词检测与强制人工规则,涉及赔偿、投诉等内容一律转人工;全程落库可追溯。强调AI仅作助手,不自动发送,保障合规性与可审计性,实现安全可控的智能客服闭环。
2026-09-17 09:50:39
244
原创 第 11 篇:实践三 —— 表单 / 合同字段抽取
本文聚焦合同字段抽取的工程可靠性,强调“模型输出不可信”的原则。通过三道关卡(结构校验、后处理、一致性校验)确保输出安全:使用包装类型区分“缺失”与“零”,金额需在原文中可定位,日期统一归一并校验合法性,高风险字段强制进入人工复核队列。核心思想是:抽不准是模型问题,兜不住是系统责任。
2026-09-17 09:22:29
263
原创 第 10 篇:实践二 —— 内容分类
本文详解内容分类在大模型应用中的实践,强调标签互斥、低温度设置、置信度控制与双层防御机制。通过固定标签体系、提示词约束、服务端校验及降级兜底策略,有效解决模型不稳定、自创标签、高置信误判等问题,确保分类结果可靠可追溯,适用于生产环境。
2026-09-17 09:22:10
245
原创 第 09 篇:实践一 —— 文本摘要(Map-Reduce 分块)
文本摘要看起来是最简单的 AI 场景:一段文本进去,一段摘要出来,一个提示词的事。但一放到真实业务里,第一个撞上的墙就是:文章比上下文窗口还长。一份 3 万字的行业研报、一篇 5 万字的会议纪要、一份 8 万字的合同 —— 直接塞进 `messages` 里,要么超过模型的上下文窗口被截断,要么超出 `max-tokens` 报错,要么即使塞进去了,你也在为几十万 Token 付钱。这篇解决的就是这件事:用 Map-Reduce 分块,把「无限长」的输入变成「有限长」的调用。
2026-09-15 14:54:10
91
原创 第 08 篇:工程化 —— 超时、重试、限流、降级与异常处理
本文聚焦大模型调用的工程化容错设计,通过 AiResilience 统一管理超时、重试、限流与熔断。采用装饰器模式实现限流→熔断→重试的合理顺序,确保资源高效利用。基于错误码分段(4xxx/5xxx)精准判断是否重试,结合指数退避与预算控制,避免重试风暴。支持分级超时配置与 /ai/stats 可观测性,保障系统在上游不稳定时仍能稳定运行。
2026-09-15 14:53:57
278
原创 第 07 篇:Embedding 入门 —— 文本向量、余弦相似度、语义搜索
本文介绍Embedding在文本向量化、语义搜索中的核心作用,通过将文本映射为高维向量,利用余弦相似度实现语义相近内容的精准匹配。重点讲解了向量计算原理、余弦相似度优于欧氏距离的原因,并结合Java代码实现实现分批向量化、相似度计算与TopK检索。强调嵌入模型不可混用、换模型需重向量化、成本意识等三大红线,明确其作为RAG中“检索”环节的关键角色,提升大模型应用的知识召回能力与回答准确性。
2026-09-15 14:53:20
322
原创 第 06 篇:SSE 流式输出 —— Spring Boot 返回打字机效果
本文详解 Spring Boot 实现 SSE 流式输出的完整流程,通过 WebClient 接收上游流式数据,使用 SseEmitter 转发至前端,实现“打字机”效果。重点解决三大核心问题:Reactor 的 map 不能返回 null(改用 handle 过滤)、[DONE] 非 JSON 格式需提前截断、MDC 线程隔离导致 traceId 丢失。结合实际场景,优化首字节响应时间,提升用户感知体验,同时处理客户端断开、超时与错误等异常路径,确保流式通信稳定可靠。
2026-09-15 14:53:06
328
原创 第 05 篇:结构化输出 —— 让模型稳定返回 JSON
本文详解大模型结构化输出的四层防护机制:通过提示词约束、开启JSON Mode、解析清洗及失败重问,确保模型稳定返回符合预期的JSON数据。结合Jackson反序列化与防御性处理,解决字段名不符、Markdown包裹、前后废话等问题,实现从“散文输出”到“业务对象”的跃迁,提升应用可靠性。
2026-09-15 14:52:47
257
原创 第 04 篇:Spring Boot 3 + WebClient 封装 OpenAI 客户端
本文基于Spring Boot 3,使用WebClient封装OpenAI客户端,解决旧版客户端的四大痛点:消息格式受限、请求体拼接易错、异常处理混乱、功能扩展困难。通过配置外置、DTO显式映射、错误归一化及流式支持,实现协议解耦、可维护性强的生产级客户端。重点利用WebClient的异步非阻塞模型与细粒度超时控制,结合缓冲区调优与Jackson策略,确保长文本与高并发场景稳定运行。最终提供统一接口,日志可观测,为后续向量化、容错等能力预留扩展空间。
2026-09-14 20:15:50
558
原创 第 03 篇:Java HttpClient 手写第一个 Chat 请求
- 用 JDK 21 自带的 `HttpClient` 从零写出了能跑通的大模型客户端;- 搞清了 `HttpClient` / `HttpRequest` / `HttpResponse` 三件套的分工;- 分清了连接超时和请求超时,并明确两个都要设;- 建立了「错误响应体必须读」这条纪律;- 通过 `/ai/debug/simple-chat` 拿到了真实可验证的结果。
2026-09-14 20:14:40
169
原创 第 02 篇:大模型核心概念 —— Token、上下文窗口、Temperature、消息角色
本文详解大模型核心概念:Token(文本切分单位,影响计价与容量)、上下文窗口(输入+输出上限,超限将截断或报错)、Temperature(控制输出随机性,低值保稳定)、消息角色(system定义规则,user传数据,assistant维持对话记忆)。通过代码实操,实现Token估算、成本计算与安全提示词封装,强调“规则与数据分离”和“精确成本核算”,避免因参数误设导致功能异常或费用失控。
2026-09-14 20:13:40
157
原创 第 01 篇:OpenAI 兼容 API 初探 —— 用 curl 跑通第一次对话
- 讲清了 OpenAI 兼容协议的三类端点;- 用 curl 跑通第一次对话,看清了请求与响应的每一个字段;- 认识了三条取数路径:`choices[0].message.content`、`usage`、`finish_reason`;- 亲手制造并记住了 401 / 404 / 429 / 超时;- 发现了流式响应的四个坑:`delta` 与 `message` 之差、首尾空片、`[DONE]`。
2026-09-14 20:12:29
226
原创 第 00 篇:系列导读 —— 为什么不先上框架
本系列不依赖框架,从JDK原生HttpClient起步,手写完整请求-响应链路,掌握大模型调用的每一环节。通过构建可独立运行的Spring Boot工程,实现配置分离、链路可控、可观测性设计,最终掌握框架背后的原理与陷阱,为工程化实战打下坚实基础。
2026-09-14 20:09:37
203
原创 数据采集/交换系统设计经验
介绍了数据采集/交换系统十项经验,包括异步化、Append-Only、报文持久化、重发派生、切片、DDL缓存、失败留痕、游标清理、动态批次、树形删除。评分卡显示架构与性能优秀,但可测试性、可维护性不足,缺少消费幂等。
2026-09-02 20:54:37
199
原创 一体化数据归集接口详细设计说明
本文阐述一体化数据归集至Doris的统一接口设计,通过分层异步架构、Kafka削峰、Stream Load批量写入、无状态扩展、多副本部署实现高并发高可用高性能;将数据质量校验前置,全链路留痕,确保数据干净规范可信
2026-09-02 20:46:45
432
原创 DevOps Toolkit:用 PySide6 打造一站式 Windows 运维桌面工具集
文章摘要 本文介绍了使用 PySide6 开发的 Windows 桌面运维工具集 DevOps Toolkit,旨在解决开发者日常重复性运维工作痛点。工具整合了 SSH 部署、Git 管理、Maven 构建、打包发布等功能,采用本地化设计保障数据安全。文章重点阐述了三种异步模型并发的架构设计(线程、QProcess、信号路由)、响应式配置管理、流水线状态机可视化等关键技术实现,以及机器特征绑定的密码加密方案。该工具通过原子化操作和错误处理机制提升了运维可靠性,并以 PyInstaller 打包实现开箱即用,
2026-07-23 19:37:55
415
原创 策略模式、回调编排与注册机
本文以企业级安全架构中的DAPS数据校验模块为例,剖析了可扩展的安全架构设计思路。该方案采用三层架构设计:编排层负责流程控制,核心层固化加密流程,策略层实现业务差异化。通过策略模式+注册机机制,实现零配置扩展和运行时多态,业务扩展只需新增实现类而无需修改核心代码。同时利用函数式接口实现核心流程与业务变点的解耦,采用模板方法模式固定加密流程骨架。这种设计实现了安全组件的"开箱可扩展、关闭可降级、逻辑可编排"目标,为企业级系统安全架构提供了可复用的设计范式。(149字)
2026-07-06 13:44:47
239
opencode-jdtls
2026-05-12
通用Excel导入导出下载木板:你只需要继承就直接拥有能力
2026-04-09
数据库统一操作API提供了一个跨数据库的统一操作接口,支持多种数据库类型的查询、插入、更新和删除操作 该系统通过方言(Dialect)机制自动适配不同数据库的语法差异,使得开发者可以使用统一的API操
2026-01-19
SpringAI + MCPServer + MCPClient 快速入门示例
2025-05-28
Springboot3.4+JDK21+Javafx+mybatis-plus+Mysql 集成demo 这是一个整合了 Spring Boot 和 JavaFX 的桌面应用程序,支持数据库连接与操
2025-07-17
Springboot3.4+Sa-Token+JWT 集成系统登录才能访问
2025-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅