<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jack_ck_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jack_ck_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jack_ck_]]></copyright><item><title><![CDATA[Python 的 zip：从拉链用法到“方法属性化“]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/164337178</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/164337178</guid><author>jack_ck_</author><pubDate>Thu, 03 Sep 2026 17:19:40 +0800</pubDate><description><![CDATA[Python 的 zip 可并行遍历、转置矩阵、分块、构造字典等，但需注意惰性、单次消费及截断问题，可用 strict 或 zip_longest 应对。文章后半引入“方法属性化”：函数即对象，可当作属性存取、传递与替换，这是理解类与装饰器的关键。实战重构展示了该思想的实际应用。]]></description><category></category></item><item><title><![CDATA[FastAPI 的 lifespan]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/164267389</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/164267389</guid><author>jack_ck_</author><pubDate>Tue, 01 Sep 2026 19:54:17 +0800</pubDate><description><![CDATA[FastAPI 的 lifespan 通过异步上下文管理器优雅管理应用启动与关闭时的全局资源，替代已废弃的 on_event，保证资源释放，支持模型加载、连接池等场景，并提供组合、异常处理与测试方案。]]></description><category></category></item><item><title><![CDATA[Qdrant 从安装到封装成工具]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/164267115</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/164267115</guid><author>jack_ck_</author><pubDate>Tue, 01 Sep 2026 19:52:46 +0800</pubDate><description><![CDATA[本文是Qdrant实战笔记，涵盖安装（Docker、compose、嵌入式）、核心概念、原生API操作、封装成类与工具，以及接入LangChain，附踩坑清单，助你快速上手向量检索。]]></description><category></category></item><item><title><![CDATA[LangGraph State 与 Command （第三章）]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/164124461</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/164124461</guid><author>jack_ck_</author><pubDate>Thu, 27 Aug 2026 19:56:31 +0800</pubDate><description><![CDATA[Node是执行动作Edge是流程控制State就是所有节点共享的「数据中心」State 决定了图里能流动什么数据，也决定了每个节点如何协作。而Command解决的是一个非常具体的问题：节点如何在返回状态更新的同时，动态决定下一步执行哪个节点。下面分两部分展开。多个工具结果可以写入同一个 dict 字段。State 是 LangGraph 的数据核心，不仅是字段集合，还包含 schema、reducer、checkpoint、streaming 等语义。]]></description><category></category></item><item><title><![CDATA[LangGraph 核心架构精读（第二章）]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/164124250</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/164124250</guid><author>jack_ck_</author><pubDate>Thu, 27 Aug 2026 19:37:25 +0800</pubDate><description><![CDATA[第一章讲了 LangGraph 为什么出现：它用有状态的图来编排复杂 Agent。本章进入核心架构。State：当前应用状态的共享快照Node：执行具体逻辑的函数Edge：决定下一个执行哪个节点Node 负责做事，Edge 负责决定下一步，State 负责保存整个过程中的数据。# 真实项目可用 LLM 判断意图，这里简化为固定值。]]></description><category></category></item><item><title><![CDATA[RAG 通关]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163925549</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163925549</guid><author>jack_ck_</author><pubDate>Thu, 20 Aug 2026 19:48:35 +0800</pubDate><description><![CDATA[本文系统介绍了RAG（检索增强生成）技术的核心架构与优化实践，主要内容包括： RAG五大核心模块：文档加载解析、文本分块、向量化入库、检索召回、Prompt组装生成 四种检索方式对比：向量检索/BM25关键词检索/混合检索/Rerank重排序 抑制LLM幻觉的四层机制：索引质量把控、检索环节优化、Prompt约束、生成后校验 多轮对话检索设计：通过Query重写还原完整语义，区分检索用改写query与生成用原始对话 噪声知识库治理：从入库预处理到检索过滤的全链路一致性与可信度机制 高质量索引构建：数据清洗、]]></description><category></category></item><item><title><![CDATA[LangGraph 入门]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163925399</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163925399</guid><author>jack_ck_</author><pubDate>Thu, 20 Aug 2026 19:33:35 +0800</pubDate><description><![CDATA[本文介绍了LangGraph的核心概念及其在构建生产级Agent系统中的作用。主要内容包括： 从简单LLM应用到Agent的演进：Agent通过"思考-行动-观察"循环（ReAct范式）实现复杂任务自主执行，相比单次LLM调用需要处理状态管理、流程控制等工程问题。 传统AgentExecutor的五大局限：控制流不清晰、状态管理混乱、难以持久化恢复、人工介入不自然、多Agent协作困难。 LangGraph的核心思想：将Agent建模为有状态图，通过节点(Node)和边(Edge)表达执行流程，支持分支、循]]></description><category></category></item><item><title><![CDATA[阿里云向量模型“每次只能 20 条“？]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163644412</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163644412</guid><author>jack_ck_</author><pubDate>Mon, 10 Aug 2026 19:57:15 +0800</pubDate><description><![CDATA["阿里云向量模型每次只能 20 条"本质是个单请求条数上限问题（不同模型是 10 / 20 / 25 条不等）。把文本按模型上限切成小批，逐批调用，用text_index保序拼回；在线实时走同步分批，离线海量走异步批量接口。把上面embed()封装好，以后无论模型怎么换、文本怎么涨，向量化这层都不用再改。代码基于 DashScope（百炼）Python SDK，模型上限以阿里云官方文档最新版为准。]]></description><category></category></item><item><title><![CDATA[字符串里扒数据：从“假 list“到“一堆 Document“的两种正确姿势]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163644183</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163644183</guid><author>jack_ck_</author><pubDate>Mon, 10 Aug 2026 19:32:05 +0800</pubDate><description><![CDATA[Python 数据处理实战笔记。明明看着像列表、像对象，用起来却只是个字符串？两道题教你安全、规范地把它变回真正的数据。我们常遇到这种场景：日志、接口返回、LangChain 的Document对象被print或str()变成了一长串的文本。直接当对象用会报错，硬着头皮正则又容易翻车。下面两题给一套可复用的解法。]]></description><category></category></item><item><title><![CDATA[RAG 文档切分必须要注意的是：父子块的关联到底怎么设计？]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163542162</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163542162</guid><author>jack_ck_</author><pubDate>Thu, 06 Aug 2026 19:37:43 +0800</pubDate><description><![CDATA[本文探讨了RAG系统中文档切分的父子块关联设计问题。文章指出，文档切分过小会导致上下文缺失，切分过大则影响检索精度，提出了"小块检索、大块喂模型"的解决方案。核心设计是将父块和子块存储在同一张表中，通过is_parent字段区分，用parent_id自引用关联。文章详细解释了表结构设计、父子块关联的实现方法，以及如何通过local_rows字典实现parent_index到parent_id的转换。最后还指出了在实际应用中需要注意的几个陷阱，如原生ENUM的数据截断问题和事务回滚问题。这种单表设计方案简化了]]></description><category></category></item><item><title><![CDATA[SQLAlchemy 学习与使用]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163450409</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163450409</guid><author>jack_ck_</author><pubDate>Mon, 03 Aug 2026 20:45:06 +0800</pubDate><description><![CDATA[SQLAlchemy 简介与快速入门 SQLAlchemy 是 Python 流行的 ORM 框架，将 Python 对象映射到数据库表，支持多种数据库。核心分为 Core（底层引擎）和 ORM（对象映射）两部分。 核心组件： Engine：管理数据库连接 Session：数据库交互入口 Base/Model：定义数据模型 Column：定义表字段 快速使用步骤： 安装 SQLAlchemy 及对应数据库驱动 创建 Engine 连接数据库 定义 Base 基类和 Model 模型类 创建数据表（Base.]]></description><category></category></item><item><title><![CDATA[LangChain 入门系列 · 第 5 章]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163343590</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163343590</guid><author>jack_ck_</author><pubDate>Thu, 30 Jul 2026 20:23:17 +0800</pubDate><description><![CDATA[文章摘要 本章介绍了LangChain中的Runnable组件和LCEL表达式语言。主要内容包括： Runnable概念：可执行的LangChain组件，如Prompt模板、Chat Model等，提供invoke、batch、stream等统一调用方法。 LCEL表达式语言：使用|运算符组合多个Runnable形成处理链，简化组件调用流程。 常用调用方式： invoke单条处理 batch批量处理 stream流式输出 特殊Runnable： RunnableLambda包装普通函数 RunnablePa]]></description><category></category></item><item><title><![CDATA[LangChain 入门系列 · 第 4 章]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163343312</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163343312</guid><author>jack_ck_</author><pubDate>Thu, 30 Jul 2026 20:02:25 +0800</pubDate><description><![CDATA[本章介绍了LangChain中的结构化输出与Output Parser技术，主要内容包括： 结构化输出的必要性：将模型返回的自然语言转换为程序可处理的结构化数据（如JSON），便于直接使用字段值。 三种主要输出方式： StrOutputParser：将模型回复转为字符串 PydanticOutputParser：基于Pydantic模型定义输出结构 with_structured_output：让模型直接返回指定结构 核心应用场景：信息抽取、文本分类、数据入库等需要结构化数据的业务场景。 关键实现方法： 使]]></description><category></category></item><item><title><![CDATA[LangChain 入门系列 · 第 3 章]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163250340</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163250340</guid><author>jack_ck_</author><pubDate>Mon, 27 Jul 2026 19:50:50 +0800</pubDate><description><![CDATA[文章摘要 本章介绍了Prompt模板与提示词工程在LangChain中的应用。主要内容包括： Prompt概念：作为给模型的指令，直接影响输出质量，实际项目中的Prompt通常包含角色、任务、约束等要素。 Prompt模板的作用：解决手写Prompt导致的代码维护困难、重复编写等问题，提供变量注入功能。 两种模板类型： PromptTemplate：适合普通文本提示词 ChatPromptTemplate（推荐）：生成结构化消息列表，支持System/Human/AI三种角色消息 Prompt编写建议：明确]]></description><category></category></item><item><title><![CDATA[LangChain 入门系列 · 第 2 章]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163110156</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163110156</guid><author>jack_ck_</author><pubDate>Wed, 22 Jul 2026 16:59:46 +0800</pubDate><description><![CDATA[文章摘要 本章讲解大模型调用中的消息结构，重点介绍三种消息角色：SystemMessage（设定AI角色规则）、HumanMessage（用户输入）和AIMessage（AI回复）。通过客服助手案例展示了如何用SystemMessage控制AI行为，并实现带历史上下文的命令行对话功能。内容涵盖模型参数temperature的作用（控制回答随机性）以及多轮对话的消息管理注意事项（需限制历史消息数量避免上下文过长）。读者将学会使用消息结构构建角色化AI助手，并掌握基础的多轮对话实现方法。 ]]></description><category></category></item><item><title><![CDATA[LangChain]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163084515</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163084515</guid><author>jack_ck_</author><pubDate>Tue, 21 Jul 2026 18:47:10 +0800</pubDate><description><![CDATA[本章概述了LangChain框架的定位、发展历程及智能体技术趋势。内容分为三部分：1）介绍智能体的核心概念与应用趋势，对比传统应用与智能体的区别；2）阐述LangChain作为大模型应用开发框架的定位，详述其从探索期到深层智能体阶段的演进历程；3）说明LangChain生态体系（核心框架、编排引擎LangGraph、执行框架Deep Agent及监控平台LangSmith）。最后指导完成环境搭建，包括安装依赖、配置DeepSeek API，并通过OpenAI兼容接口实现首个LangChain调用案例，帮助读]]></description><category></category></item><item><title><![CDATA[Git 零基础入门教程]]></title><link>https://blog.youkuaiyun.com/jack_ck_/article/details/163051284</link><guid>https://blog.youkuaiyun.com/jack_ck_/article/details/163051284</guid><author>jack_ck_</author><pubDate>Mon, 20 Jul 2026 18:33:18 +0800</pubDate><description><![CDATA[本文是一篇面向零基础用户的Git入门教程，全面介绍了Git的核心概念与操作流程。主要内容包括： Git基础概念：介绍Git的分布式特性、四个工作区域（工作区/暂存区/本地库/远程库）以及与GitHub/Gitee的区别 基础操作：从安装配置到创建仓库、提交版本、比较差异、忽略文件等完整工作流 分支管理：演示功能分支开发模式（创建/切换/合并分支） 团队协作：远程仓库关联、代码推送/拉取、冲突解决方法 工具集成：提供常用命令速查表，并介绍PyCharm/IDEA等IDE中的Git可视化操作 教程采用"todo]]></description><category></category></item></channel></rss>