- 博客(160)
- 收藏
- 关注
原创 【计算基础|网络04】—— HTTP接口实战(下):接口测试、鉴权与跨域排错
本文详解HTTP接口实战中的三大核心问题:接口测试(用Apifox/Postman自动化+断言)、鉴权机制(对比Cookie+Session与JWT优劣及实现)、跨域问题(CORS预检与配置)。通过FastAPI搭建实验服务,演示登录、鉴权、限流、Webhook等真实场景,附状态码排错表,支持Python requests与curl双端验证,助开发者高效定位问题。
2026-09-21 23:09:31
368
原创 【计算基础|网络03】—— HTTP接口实战(上):方法、参数位置、请求头与请求体.md
本文详解HTTP请求的组成结构——请求行、请求头、空行与请求体,并通过Python(requests/httpx)和curl实操演示参数在查询参数、路径、请求体、请求头中的位置。重点解析GET/POST/PUT/PATCH等方法语义差异,强调“安全”与“幂等”原则,澄清常见误区:参数不应仅按长短或保密性选择位置,而应依据语义。结合FastAPI搭建回显服务,直观展示四种参数传递方式,帮助开发者掌握接口调用本质,避免前后端对接时因参数位置错误导致的问题。
2026-09-21 23:04:39
396
原创 【后端开发|网络编程】—— 五种实时通信方案全解析:短轮询、长轮询、SSE、MQTT、WebSocket
HTTP 只能拉,推送必须靠"一直开着的连接"。理解这一条,五种方案就都不是黑盒了。它们的差异只有两个变量:客户端多久问一次、连接能活多久。选型的速记:短轮询 = 简单、长轮询 = 兼容、SSE = 单向省心、WebSocket = 双向、MQTT = 设备规模。连接一长,运维成本就从 QPS 转移到连接数与保活:心跳、超时配置、集群广播、容量压测,一样都不能少。任何长连接方案都必须配齐三件套:心跳、重连、消息补发(SSE 的/ MQTT 的持久会话 / 业务层的自增 seq)。
2026-09-19 11:54:38
708
原创 【AI应用开发|Agent记忆】—— Codex 与 Claude Code 持久化记忆对比:两条不用向量库的路线
Codex与Claude Code均实现跨会话持久化记忆,却摒弃向量库与Embedding。Codex采用离线两阶段管线:先用小模型从rollout中提取结构化记忆,存入SQLite(事实源),再由受限子代理通过git diff判断变更后合并为四层Markdown;Claude Code则在回合内直接写文件,按分层目录管理。二者均以轻量级文件系统替代复杂检索,牺牲语义泛化换取可解释性与一致性,凸显“记忆即状态”理念。
2026-09-19 11:51:45
309
原创 【Python基础02】—— 迭代器与生成器:从迭代协议到惰性求值实战
本文深入解析迭代协议与生成器机制,揭示for循环底层调用__iter__()和__next__()的原理。厘清可迭代对象与迭代器的本质区别,阐明生成器作为语法糖如何自动实现迭代器协议,通过yield实现函数挂起与恢复,支持惰性求值。实测对比显示生成器显著降低内存占用(从34.8MiB降至0.5KiB),虽耗时略增但适合大文件处理。掌握协议后,可推导出生成器“仅能遍历一次”“send()首次需传None”等特性,为协程与异步编程奠定基础。
2026-09-18 22:55:06
232
原创 【Python基础01】—— 装饰器:从闭包原理到工程实战
本文从函数一等公民与闭包原理出发,深入解析装饰器的本质,揭示@语法糖背后的高阶函数与闭包机制。通过手写装饰器、参数化设计、叠加顺序分析,系统梳理6个可复用工程模板与10大常见陷阱,强调functools.wraps在保持元数据完整性中的关键作用,并结合标准库实践,实现日志、缓存、异步等场景的可靠应用,彻底告别“只会背模板”的困境。
2026-09-18 22:52:46
135
原创 【大模型基础|推理篇04】—— Prefix Caching 与 KV Cache:搞懂什么被存下来、谁在复用、什么时候能命中
本文厘清KV Cache(存什么)与Prefix Caching(怎么复用)的本质区别:前者是注意力机制中缓存的历史键值对,后者是跨请求复用这些缓存的调度策略。KV Cache解决重复计算问题,将复杂度从O(t²)降至线性;而Prefix Caching通过共享相同前缀的KV Cache,显著降低Prefill成本——这是推理优化的核心突破口。文章还对比了vLLM与SGLang实现差异、命中规则及适用场景,强调调优应聚焦于提升前缀命中率而非盲目堆显存。
2026-09-17 11:21:41
294
原创 【大模型基础|大模型API上】—— 大模型对话三套主流接口协议拆解:Anthropic Messages vs OpenAI Chat Completions vs Responses
本文深度拆解Anthropic Messages、OpenAI Chat Completions与Responses三套主流LLM接口协议,从端点、鉴权、系统指令、输入输出容器、状态归属及Content Block六层对比,揭示协议本质差异。重点剖析“无状态”与“有状态”对话模型的根本分岔,详解各协议在内容块类型(如文本、图像、工具调用)上的设计逻辑与字段差异,并提供同一任务的三份可运行请求示例及十大易错点警示,助开发者精准对接不同平台。
2026-09-17 09:00:00
259
原创 【大模型基础|大模型API下】—— Responses API 与 Chat Completions:搞懂 Agent 时代的接口分岔
2026年起,OpenAI Codex移除Chat Completions支持,标志着API生态进入“单向兼容”时代。旧接口仅支持简单对话,无法承载Agent所需的多轮推理与工具调用轨迹;而新推出的Responses API以input/output序列化结构,原生支持状态延续、工具链追踪与推理过程留存,满足Agent闭环需求。深度求索等厂商相继适配,凸显协议层对齐的必要性。本质差异在于:前者是客户端管理上下文,后者由服务端维护状态。未来模型接入需跨越协议与语义双重门槛,否则将被排除在Agent生态之外。
2026-09-16 12:25:25
301
原创 【大模型基础|推理篇03】—— KV Cache 与缓存命中:搞懂大模型推理为什么快、缓存为什么便宜
KV Cache 是大模型推理中复用历史计算结果的核心机制,通过缓存已生成 token 的 Key(K)和 Value(V),避免重复计算,将注意力机制的 O(t²) 复杂度降至线性。其本质是“算过的不重算”——仅缓存被多次复用的 K/V,而 Query(Q)因仅用于当前生成步骤、复用次数为1,故不缓存。推理分为 Prefill(处理输入,耗算力)与 Decode(逐字生成,耗显存带宽),其中 Prefill 成本最高且可被缓存跳过。当新请求前缀与历史请求完全一致时,系统可直接复用已有 KV Cache,实
2026-09-16 12:10:55
598
原创 【LangChain进阶05:MCP】—— LangChain MCP 实战:用 Model Context Protocol 把外部工具接进 Agent
本文介绍LangChain通过MCP统一接入外部工具,使用@langchain/mcp-adapters实现stdio和HTTP两种传输方式,并展示如何构建自定义MCP服务器,使Agent直接调用工具。
2026-09-08 09:00:00
157
原创 【LangChain进阶06:Context engineering】—— LangChain 上下文工程实战:让 Agent 变得可靠的真正关键
上下文工程是让 Agent 可靠的关键:多数失败源于“该给的上下文没给对”。需控制三类上下文:模型上下文(临时指令与工具)、工具上下文(持久读写)、生命周期上下文(调用间钩子)。通过 Middleware 钩住循环,动态注入提示、过滤工具、选择模型,方能将正确信息以正确格式交给 LLM。
2026-09-08 09:00:00
169
原创 【LangChain进阶04:RAG】—— LangChain RAG 入门:从文档加载、切分到向量检索
这篇教程讲解LangChain中RAG的离线建库流程:通过Document Loader加载文档,用Text Splitter切分(含重叠设置),经Embedding模型向量化后存入向量库,实现语义检索。强调chunk_size和overlap对效果的影响,并以OpenAI Embedding为例,指导搭建RAG基础索引。
2026-09-07 09:00:00
283
原创 【LangChain进阶04:RAG】—— LangChain RAG Agent 实战:把检索器变成工具,构建能查私有库的智能助手
本文介绍如何将检索器包装成LangChain工具,构建RAG Agent,使其能基于私有知识库自动检索、引用并回答。通过@tool装饰器和明确的description,让模型按需调用检索;结合system_prompt强制规则,避免编造。最后展示测试结果、执行链路及添加引用来源与持久化的优化方法。
2026-09-07 09:00:00
525
原创 【LangChain进阶02:Human-in-the-loop】—— LangChain 人工介入实战:让 Agent 在关键节点停下来等人审批
LangChain 通过人工介入(HITL)机制,让 Agent 在执行删除、支付、发邮件等不可逆操作前暂停,等待审批后继续。技术核心是 LangGraph 的 interrupt() 配合 Checkpointer 保存状态,支持在工具内部中断或通过 interrupt_before/after 设置全局断点。审批可提供 approve、edit、reject、respond 四种决策,实现安全可控的自动化操作。
2026-09-06 09:00:00
202
原创 【LangChain进阶03:Long-term memory】—— LangChain 跨会话存储(Store)实战:让 Agent 记住你,而不是只记住对话
本文介绍 LangChain 跨会话存储(Store),用于持久化用户偏好等数据,区别于 Checkpointer 仅限单线程对话。Store 用命名空间、键值对组织数据,支持增删查搜。在 Agent 中通过 InjectedStore 注入,工具可访问共享存储,实现跨对话长期记忆。简洁实用。
2026-09-06 09:00:00
442
原创 【LangChain组件06:Memory】—— LangChain 对话记忆 Checkpointer 实战详解——让 Agent 真正记住多轮对话
Agent 多轮对话默认失忆,因每次 invoke 独立运行。本文通过 Checkpointer 保存状态、thread_id 区分线程,实现跨轮记忆与多用户隔离;详解 InMemorySaver 用法、状态管理原理及长对话上下文兜底方案。
2026-09-05 09:00:00
319
原创 【LangChain进阶01:Multi-agent】—— LangChain 多 Agent 实战:从子 Agent 到架构选型,让 Agent 团队协作
单Agent因上下文过长、工具过多易“分心”,多Agent通过“专而精”分工解决。实现方式包括把子Agent包装成工具、用name区分Agent及Middleware路由。架构模式有协调者、接力、辩论及官方Subagents、Handoffs、Skills、Router四模式,需按场景权衡复杂度与效率。多Agent增加Token消耗,应优先尝试单Agent方案。
2026-09-05 09:00:00
182
原创 【LangChain中间件01】—— LangChain 中间件入门:六个钩子让 Agent 可插拔
LangChain 中间件通过六个钩子(before_agent、before_model、after_model、after_agent、wrap_model_call、wrap_tool_call)在 Agent 执行流程中插入自定义逻辑,无需修改源码。分为观察型与控制型两类,支持装饰器或类继承,实现日志、权限校验等内容处理。
2026-09-04 09:00:00
341
原创 【LangChain中间件02】—— LangChain 中间件进阶:用 wrap_ 接管模型与工具调用
本摘要介绍 LangChain 中间件的进阶用法,重点讲解 wrap_model_call 和 wrap_tool_call 钩子如何“接管”模型与工具调用。通过 handler 回调控制执行,实现失败重试、主备降级、结果缓存、请求改写等能力,使 Agent 从“能跑”变为“扛得住”,是生产环境可靠运行的关键。
2026-09-04 09:00:00
225
原创 【LangChain组件00:Models】—— LangChain Chat Model 详解:从常用参数到 bind_tools 与结构化输出
本文详解 LangChain Chat Model 的基础角色、常用参数(temperature、max_tokens、timeout、max_retries、base_url、top_p、stop、seed)及高级用法。bind_tools() 使模型能返回工具调用请求,with_structured_output() 可按 Schema 直接输出结构化数据,二者是构建 Agent 与结构化提取的基石,帮助开发者写出可控可靠的智能体。
2026-09-03 09:00:00
301
原创 【LangChain组件01:Messages】—— LangChain Messages 消息类型:从四种核心消息到多模态与消息裁剪
LangChain中对话均通过消息对象传递,四种核心类型为HumanMessage、AIMessage、SystemMessage、ToolMessage,对应不同角色。理解其关系是构建Agent的基础。文章还介绍了AIMessageChunk流式片段、ContentBlock、多模态消息、ToolCall绑定及消息裁剪与删除,帮助开发者正确构造和操作对话历史。
2026-09-03 09:00:00
279
原创 【LangChain组件05:Streaming】—— LangChain 流式输出 Streaming:从逐 Token 打字到异步 SSE 实战
文章介绍了LangChain流式输出机制,解决invoke()需等待全部完成的问题。通过stream()可按模式实时输出:messages逐token打字,updates展示tool调用与回复步骤,custom自定义状态事件。还涵盖metadata、异步astream与FastAPI SSE集成。旨在降低首token延迟,提升交互体验。
2026-09-02 18:25:30
234
原创 【LangChain组件04:Structured output】—— LangChain 结构化输出:从 Pydantic 模型到三种输出策略实战
本文介绍LangChain结构化输出实战:通过将Pydantic模型传给response_format,让模型直接返回结构化对象,省去文本解析。支持与工具共存,实现先查询再输出;支持嵌套与枚举等复杂Schema。详细演示了从定义模型、创建Agent到获取structured_response的全流程,并对比了ToolStrategy、ProviderStrategy、AutoStrategy三种输出策略的原理与选型。
2026-09-02 18:24:49
168
原创 【LangChain组件03:Agents】—— LangChain Agents 执行与状态:工作流程与状态管理实战
本文剖析LangChain Agent内核:Agent由模型、工具和循环调度器组成,执行循环为调用模型→检查工具请求→执行工具→回传结果,直至模型不再请求工具。通过stream_mode='updates'可追踪节点,'values'查看完整状态累积。状态管理依赖消息历史逐步追加,调用方式有invoke/stream等。
2026-09-01 22:15:20
249
原创 【LangChain组件03:Agents】—— LangChain Agents 创建与配置:create_agent 函数与动态提示词详解
本文详解LangChain的create_agent()函数:它通过一个函数构建完整的Agent图,封装模型调用、工具循环和状态管理。文章先阐明Agent是模型在循环中调用工具直至任务完成(Model+Harness),再拆解create_agent()的参数(model、tools、system_prompt等)、返回值CompiledStateGraph及核心参数用法,并给出示例和进阶玩法。
2026-09-01 21:35:57
425
原创 【LangChain入门】—— LangChain Agent 基础三部曲:消息类型 → Chat Model 高级用法 → LangGraph 编排
消息类型是 Agent 的语言,Chat Model 高级用法是手脚,LangGraph 是骨架。全文以此递进:先厘清 LangChain/LangGraph 等产品定位,再详解 HumanMessage、AIMessage、SystemMessage、ToolMessage 及 tool_call_id 匹配等避坑要点,随后引出 bind_tools 与 with_structured_output 两种关键能力,最后落到 LangGraph 编排,实现可持久化、可中断、可部署的 Agent。
2026-08-31 23:03:49
184
原创 【LangChain组件02:Tools】—— LangChain Tools 完全指南:从 @tool 装饰器到运行时上下文与错误处理
本文系统讲解LangChain工具开发全链路:@tool装饰器定义工具、Pydantic/JSON Schema定义参数,重点阐述ToolRuntime运行时上下文——包含State(短时记忆)、Context(不可变配置)、Store(长时记忆)、Stream Writer、Execution Info等八大组件,并涵盖返回值设计与Headless/Server-side等进阶模式,最后给出从旧InjectedState迁移到ToolRuntime的对照表与验证清单,助力生产级工具开发。
2026-08-31 22:57:17
1532
原创 【大模型基础|推理篇02】—— vLLM 部署与推理优化实战:从启动参数到显存优化,KV 调优
本文详解 vLLM 在 4×A100 80G 环境下的部署与推理优化,聚焦显存管理核心痛点。通过 PagedAttention 实现 KV Cache 分页管理,将显存浪费从 60%–80% 降至 4% 以下,吞吐提升至 HuggingFace Transformers 的 24 倍。重点解析启动参数调优:合理设置 gpu-memory-utilization、max-model-len、max-num-batched-tokens 及 kv-cache-dtype,结合张量并行(TP=4)与量化技术,实现
2026-08-20 17:05:56
482
原创 【全栈开发00】从源码到上线!Java项目底层运行原理 + 企业级Docker部署全流程(实战案例)
本文以企业级SpringBoot项目为例,完整解析Java代码从源码到线上服务的全流程运行原理。核心分为:源码编译(.java→.class)、打包(Jar包)、JVM执行三个阶段。详细拆解了Docker部署方案,包括Dockerfile构建镜像(基于JDK环境运行java -jar命令)和docker-compose编排服务(管理MySQL/Redis/Nginx等依赖)。特别强调JVM是唯一运行载体,Maven和Docker只是辅助工具,本地与线上运行原理完全一致。文章还澄清了常见误区,并给出JVM参数
2026-08-13 16:36:12
170
原创 【Python基础01】——彻底搞懂C、Java、Python的本质区别:编译型与解释型(零基础通俗易懂)
文章摘要: 本文深入解析了C、Java、Python三种主流语言的本质区别,聚焦于编译型、解释型和混合型语言的执行机制。C语言是纯编译型,直接生成机器码,执行快但不跨平台;Java是混合型,先编译为字节码再由JVM解释执行,兼顾性能和跨平台;Python是解释型,逐行翻译执行,开发效率高但运行慢。文章对比了三者在执行流程、运行速度、类型系统和适用场景的差异,并澄清了常见误区(如Python也有隐式编译)。最后指出语言选择建议:C用于底层开发,Java适合企业级应用,Python侧重快速开发和AI领域。理解这
2026-08-13 16:17:45
390
原创 【Git实战技巧01】—— 团队协作必看!Git提交历史规范用法,告别杂乱日志
本文分享了团队协作中Git提交历史的规范用法(Conventional Commits),帮助开发者告别杂乱日志。规范的提交信息包含标题(类型+作用域+描述)、正文和页脚三部分,需遵循严格的格式规则。常见提交类型如feat(新功能)、fix(修复Bug)、refactor(代码重构)等,作用域用于定位改动模块。通过正反案例对比,强调规范提交的重要性。团队可结合Git Hooks或Commitlint工具自动校验,并遵守"禁止无效提交、禁止修改公共历史"等禁忌规则。规范的Git提交能提升团队协作效率,降低维护
2026-07-15 21:26:58
251
原创 【Linux实战技巧01】Docker 高效排查技巧:用好管道 _ + grep,告别密密麻麻的日志和命令输出
本文介绍了利用Linux管道符|和grep命令高效排查Docker问题的技巧。核心原理是通过管道将命令输出传递给grep进行关键词过滤,快速定位容器、镜像、日志等关键信息。文章提供了7个Docker高频场景的实操命令,包括容器查找、日志分析、配置查询等,并扩展了这套方法在开发运维全链路中的应用,涵盖进程管理、端口排查、日志分析、代码检索等场景。该方法能显著提升故障排查效率,是后端开发和运维人员的必备技能。
2026-07-15 21:20:54
410
原创 【大模型基础01】—— 一文吃透大模型部署与微调显存原理:多少B模型吃多少显存,彻底搞懂不踩坑
摘要: 大模型部署与微调的显存占用有固定规律,核心公式为“显存(GB)=参数量(B)×单参数字节数”,不同精度(FP16/INT8/INT4)对应不同字节数。推理显存包括权重、KV缓存和激活值,而微调显存更高,需额外考虑梯度和优化器状态。LoRA微调通过冻结主干模型、仅训练两个低秩矩阵大幅降低显存,使32B模型在24G显卡上可运行QLoRA微调。关键误区包括忽略量化精度、混淆推理与微调显存、忽视KV缓存增长。优化方案包括量化、控制上下文长度、使用LoRA/QLoRA和梯度检查点。32B模型是消费卡与专业卡的
2026-07-06 16:06:19
303
原创 【Mac开发环境配置02】—— Homebrew + jenv 多 JDK 版本统一管理指南
本文介绍了在Mac上使用Homebrew和jenv管理多版本JDK的完整方案。主要内容包括:1) 通过Homebrew安装多个OpenJDK版本;2) 安装配置jenv实现版本隔离;3) 三种切换模式(全局/临时/项目级);4) 与Maven的集成;5) 常见问题解决方案。该方案解决了Java开发中多版本共存和切换的痛点,支持Apple Silicon芯片,适用于需要同时维护新旧Java项目的开发者,提供了高效、灵活的版本管理方式。
2026-07-06 16:01:09
560
原创 【终端效率工具01】—— Starship:Rust 打造的极速终端提示符,配置从入门到实战
Starship 是一款基于 Rust 开发的跨平台终端提示符工具,以极速启动、简单配置和美观主题著称。文章详细介绍了 Starship 的安装方法(支持 macOS/Linux/Windows)、核心配置文件位置(~/.config/starship.toml)以及核心概念 format 字段的用法。重点讲解了常用模块(目录、Git、语言环境等)的个性化配置技巧,包括样式定制、图标修改和触发条件设置,并分享了自定义配色方案和实用功能(如耗时统计)。相比 oh-my-zsh 等传统方案,Starship 具
2026-07-03 10:10:13
655
原创 【LeetCode02】—— 两数之和:哈希表入门经典详解
文章摘要 LeetCode经典题目"两数之和"是哈希表应用的入门典范。文章详细解析了两种解法:暴力枚举(O(n²))和哈希表(O(n)),重点推荐后者。通过图解和代码演示(Python/Java/Go/C++),解释哈希表"先查后存"的关键逻辑以避免重复使用元素。对比两种解法的优劣,指出哈希表是面试标准答案。文章还解答了常见误区,如处理重复元素、返回下标等问题,并延伸讨论有序数组的双指针解法(两数之和II)及三数、四数之和变体。最后总结核心要点和验证清单,帮助读者彻底掌握这一基础算法模式。
2026-06-11 16:36:05
327
原创 【LeetCode01】—— 无重复字符的最长子串:滑动窗口经典题详解
文章摘要: LeetCode第3题"无重复字符的最长子串"是考察滑动窗口算法的经典题目。文章详解了三种解法:1)暴力枚举法(O(n³))仅用于理解问题本质;2)标准滑动窗口+哈希集合法(O(n)),通过双指针维护无重复字符窗口;3)优化版滑动窗口+哈希表法(O(n)),通过记录字符最后出现位置直接跳转左指针。重点分析了滑动窗口的核心思想:用左右指针界定子串,右指针扩展窗口,左指针在遇到重复时收缩窗口,过程中记录最大长度。文章提供了Python/Java/Go的多语言实现,对比了各解法优劣,并指出面试中掌握标
2026-06-11 16:26:16
237
原创 【AI工作流搭建n8n】—— Docker + PostgreSQL 生产环境部署全攻略:MCP 集成与 Skills 技能实战
摘要:n8n生产环境部署指南 本文详细介绍了开源自动化工具n8n的生产环境部署方案,重点包括: 架构选择:推荐使用Docker+PostgreSQL组合,避免SQLite的并发限制 部署步骤:提供完整的docker-compose.yml配置文件和关键环境变量设置 MCP集成:实现AI助手(如Claude)直接调用n8n工作流的配置方法 技能扩展:支持通过社区节点扩展n8n功能 安全建议:强调HTTPS、访问令牌等生产环境必备安全措施 部署方案兼顾性能与扩展性,特别适合需要内网部署和数据合规的企业场景。文中
2026-06-10 18:05:00
859
原创 【端侧AI模型】—— Google Gemma 4 全面解析:端侧大模型的新标杆
Google Gemma 4 是 DeepMind 推出的新一代开源轻量级 AI 模型家族,包含 2B-31B 四种规模的 Dense 和 MoE 架构模型,支持文本、图像、视频和音频多模态处理。相比前代,Gemma 4 的创新包括:256K 上下文窗口、MoE 架构降低计算成本、新增可控的 Thinking Mode 推理功能、优化端侧部署能力(支持手机本地运行)。其核心价值在于提供接近闭源模型的性能,同时满足隐私敏感场景的端侧部署需求,通过 LiteRT 和 MediaPipe 等工具链实现移动端高效推
2026-06-10 16:35:28
501
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅