<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shanglin1122的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shanglin1122</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shanglin1122]]></copyright><item><title><![CDATA[【LangChain 1.2 实战（八）】Agent Middleware 实战 —— 动态路由、监控、安全与容错]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160834081</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160834081</guid><author>shanglin1122</author><pubDate>Wed, 06 May 2026 22:10:51 +0800</pubDate><description><![CDATA[✅ 自适应模型选择（成本优化）✅ 全链路调用日志（可观测性）✅ 敏感词过滤与合规声明（安全性）✅ 工具/模型调用自动重试（鲁棒性）✅ 知晓 LangChain 开箱即用的中间件库，随时可扩展的生产级雏形。这一切只新增了两个中间件文件，并在agent.py中添加了几行配置。Agent 的核心逻辑、工具实现、入口脚本均保持原样。这就是 LangChain 1.2 中间件的设计哲学：把非功能需求从业务代码中剥离，以可组合、可排序、可拔插的方式“挂载”到 Agent 上。]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（七）】 多工具调用]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160799429</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160799429</guid><author>shanglin1122</author><pubDate>Tue, 05 May 2026 20:04:55 +0800</pubDate><description><![CDATA[用户说的话AIMessage：模型的回复：工具执行后的结果，必须通过它送回模型然后用@tool装饰器定义两个工具。每个工具的函数文档字符串至关重要，模型会根据它来判断何时、如何调用该工具。@tool"""获取指定公司的股票价格信息Args:company: 公司名称（如：苹果公司, 微软公司, 谷歌公司）timeframe: 时间范围（today-今日, week-本周, month-本月）"""]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（六）】 工具调用 (Function Calling)]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160798412</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160798412</guid><author>shanglin1122</author><pubDate>Tue, 05 May 2026 19:00:44 +0800</pubDate><description><![CDATA[工具就是一个普通的 Python 函数，但我们用@tool装饰器标记它。函数的文档字符串至关重要，模型会根据它来理解工具的功能和使用方法。@tool"""查询指定城市的实时天气情况。参数 location：城市名称，例如 '北京'。""""北京": "晴，温度 22°C，湿度 40%","上海": "多云，温度 25°C，湿度 70%","深圳": "阵雨，温度 28°C，湿度 85%",return weather_data.get(location, f"未找到。]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（五）】模型初始化与调用]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160770996</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160770996</guid><author>shanglin1122</author><pubDate>Mon, 04 May 2026 19:06:45 +0800</pubDate><description><![CDATA[LangChain 提供了两种方式来初始化聊天模型：传统的和官方推荐的**函数方式**。根据官方文档，是LangChain 1.2+版本中"开始使用独立模型的最简单方法"。]]></description><category></category></item><item><title><![CDATA[【 LangChain 1.2 实战（四）】构建一个模块化的天气查询 Agent]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160767306</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160767306</guid><author>shanglin1122</author><pubDate>Mon, 04 May 2026 16:01:01 +0800</pubDate><description><![CDATA[通过一个天气查询 Demo，实现如何使用 LangChain 1.2 的 create_agent新接口快速构建一个能够调用工具的智能助手。项目采用模块化设计，将配置、模型、工具、Agent 分层解耦，不仅易于理解，更便于未来扩展和维护。如何搭建一个结构优雅的 Python AI 项目如何使用 LangChain 1.2 的一键创建能使用工具的 Agent如何设计可扩展的工具目录，并让 Agent 自动调用为什么分层目录结构对长期项目至关重要。]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（三）】从环境搭建到第一个 Agent]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160758141</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160758141</guid><author>shanglin1122</author><pubDate>Mon, 04 May 2026 13:42:08 +0800</pubDate><description><![CDATA[我们之前已经通过直接在 Windows 系统环境变量中配置 API Key，用最简单的方式运行了第一个 LangChain Demo，对它的基本调用流程有了初步感受。为了考虑不同项目间的依赖隔离、环境可复现以及密钥的安全性，我们现在使用 Anaconda 创建独立的 Python 虚拟环境，并改用 .env 文件来统一管理 API 密钥。这样做既避免了系统变量污染，也让项目分享和部署更加可靠。下面就从零开始，一步步完成基于 Windows + PyCharm 的 LangChain 快速上手。]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（二）】快速 入门 Demo]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/160747135</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/160747135</guid><author>shanglin1122</author><pubDate>Mon, 04 May 2026 09:32:06 +0800</pubDate><description><![CDATA[这段 Demo 代码虽然短，但已经包含了 LangChain 1.2 最核心的三大功能模块：提示模板、模型交互和链式组合（LCEL）]]></description><category></category></item><item><title><![CDATA[【LangChain 1.2 实战（一）】 概述]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/134870369</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/134870369</guid><author>shanglin1122</author><pubDate>Sun, 03 May 2026 22:06:18 +0800</pubDate><description><![CDATA[LangChain是一个开源的开发框架，旨在帮助开发者高效构建和部署基于大型语言模型（LLM）的应用程序。它通过提供模块化组件和工具链，简化了LLM的集成、上下文管理、任务编排和外部工具调用。LangChain支持多种编程语言（如Python），广泛应用于聊天机器人、知识库系统、自动化代理等场景。其设计哲学是“可组合性”，开发者可灵活组合组件，快速构建可靠应用。]]></description><category></category></item><item><title><![CDATA[【经验分享（一）】Centos 7.9 安装 MySQL 8.0.32]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/158287782</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/158287782</guid><author>shanglin1122</author><pubDate>Sun, 22 Feb 2026 16:01:01 +0800</pubDate><description><![CDATA[这里需要修改以下安装目录的权限，由于我们使用 mysql 用户运行数据库，所以，要把安装目录的拥有者改为 mysql，如果系统没有，需要添加 mysql 用户及分组，我们只使用 mysql 运行程序，所以指定了 mysql 禁止登录，增加安全性。复制解压后的文件到到要安装的目录，我要把 MySQL 安装到 /usr/local/mysql，所以，运行以下命令，把解压后的文件复制过去。pid 文件 pid-file=/usr/local/mysql/mysqld.pid。配置目录 /etc/my.cnf。]]></description><category></category></item><item><title><![CDATA[统一用户测试环境虚拟机换环境IP之后改配置]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/147361113</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/147361113</guid><author>shanglin1122</author><pubDate>Sun, 20 Apr 2025 10:12:03 +0800</pubDate><description><![CDATA[一、/app/iam-apps/common.properties。二、将IP变更到iam数据库sys_company中。]]></description><category></category></item><item><title><![CDATA[idea中导入从GitHub上克隆下来的springboot项目解决找不到主类的问题]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/147359862</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/147359862</guid><author>shanglin1122</author><pubDate>Sun, 20 Apr 2025 08:19:20 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/m0_74036731/article/details/146779040解决方法（idea中解决）：①：打开idea ->Settings -> Build,Execution, Deployment -> java Compiler 选择对应的jdk版本②：Settings -> Project Strcture -> Project 选择对应的jdk。]]></description><category></category></item><item><title><![CDATA[【北京大学】徐高《金融经济学二十五讲》]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136641348</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136641348</guid><author>shanglin1122</author><pubDate>Thu, 14 Mar 2024 17:06:44 +0800</pubDate><description><![CDATA[一项资产是由过去的事件所形成的为某实体所掌握的资源，这一资源预计未来会给这一实体带来经济利益。]]></description><category></category></item><item><title><![CDATA[Vue 中组件通讯的方式]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136474092</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136474092</guid><author>shanglin1122</author><pubDate>Tue, 05 Mar 2024 11:33:34 +0800</pubDate><description><![CDATA[Vue 中组件通讯的方式有多种，可以根据不同的场景选择合适的方式进行通讯。在实际应用中，根据具体的业务需求和组件关系，可以结合以上方式进行灵活的组件通讯，以实现数据传递和事件触发等功能。]]></description><category></category></item><item><title><![CDATA[【前后端分离的博客项目（一）】项目的概况]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136224801</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136224801</guid><author>shanglin1122</author><pubDate>Thu, 22 Feb 2024 09:27:17 +0800</pubDate><description><![CDATA[一、
]]></description><category></category></item><item><title><![CDATA[【springboot+vue项目（十六）】基于Oauth2的SSO单点登录（三）Springboot+SpringSecurity+Jwt 整合Aouth2.0]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136124979</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136124979</guid><author>shanglin1122</author><pubDate>Fri, 16 Feb 2024 00:31:12 +0800</pubDate><description><![CDATA[处理回调请求：当第三方认证系统完成认证并将用户重定向回你的应用程序时，你需要处理回调请求。添加依赖项：在项目的构建文件（如Maven的pom.xml）中添加适当的依赖项，例如Spring Security OAuth2依赖。：如果你希望将第三方认证系统返回的用户信息映射到Spring Security的用户模型中，你可以实现。处理登录请求：在你的控制器中，处理用户登录请求，并使用Spring Security的。接口的类，用于加载用户信息。，并在其中配置授权服务器的细节，如客户端信息、令牌存储等。]]></description><category></category></item><item><title><![CDATA[【springboot+vue项目（十五）】基于Oauth2的SSO单点登录（二）vue-element-admin框架改造整合Oauth2.0]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136124963</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136124963</guid><author>shanglin1122</author><pubDate>Fri, 16 Feb 2024 00:26:01 +0800</pubDate><description><![CDATA[第三步拿token放到请求头（在请求拦截器中），头信息根据约定好的具体修改，根据提供的接口发请求， 就会返回用户信息对象{}，拿到用户放cookie。第一步前端拿到后端传来的token ，我们放到cookie里（用中间页存token，处理一些逻辑）第二步取cookie中的token 实现登录（permission.js中修改逻辑）还有一个前端实现登出，点击退出，删除用户信息以及token。第四步就是从cookie中拿到用户信息，渲染到页面上。]]></description><category></category></item><item><title><![CDATA[【springboot+vue项目（十四）】基于Oauth2的SSO单点登录（一）整体流程介绍]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/136124871</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/136124871</guid><author>shanglin1122</author><pubDate>Fri, 16 Feb 2024 00:23:38 +0800</pubDate><description><![CDATA[温馨提示：此过程为大概流程，后面将分前端和后端部分详细介绍如何 改造原项目。温馨提示：如果是接入到。基于oauth2.0的。]]></description><category></category></item><item><title><![CDATA[HDFS 常用shell命令]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/135390455</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/135390455</guid><author>shanglin1122</author><pubDate>Thu, 04 Jan 2024 16:34:36 +0800</pubDate><description><![CDATA[-h以人类友好的方式显示大小（过大时带单位）#注意./hosts是下载后保存到本地的位置。#注意：如果其中还有文件则不能删除。#修改文件名字或移动位置。#注意：只能查看文件文件。]]></description><category></category></item><item><title><![CDATA[【大数据（一）】hadoop2.4.1集群搭建(重点)]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/135389724</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/135389724</guid><author>shanglin1122</author><pubDate>Thu, 04 Jan 2024 16:33:06 +0800</pubDate><description><![CDATA[解压到 Hadoop/apps : tar -zxvf hadoop-2.6.4.tar.gz -C /home/hadoop/apps。进入目录：cd  /home/hadoop/apps/hadoop-2.6.4/etc/hadoop。alt+p 后出现sftp窗口先上传hadoop的安装包到服务器上去/home/hadoop/直接修改  /etc/sysconfig/network-script/ifcfg-eth0。注意：hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop。]]></description><category></category></item><item><title><![CDATA[【springboot+vue项目（零）】开发项目经验积累（处理问题）]]></title><link>https://blog.youkuaiyun.com/shanglin1122/article/details/135336339</link><guid>https://blog.youkuaiyun.com/shanglin1122/article/details/135336339</guid><author>shanglin1122</author><pubDate>Tue, 02 Jan 2024 11:17:28 +0800</pubDate><description><![CDATA[【代码】【springboot+vue项目（零）】开发项目经验积累（处理问题）]]></description><category></category></item></channel></rss>