- 博客(301)
- 资源 (16)
- 收藏
- 关注
原创 Pydantic 数据校验 & 限流中间件(限制每个 IP 的请求频率,防止接口被刷爆)
摘要: Pydantic是一个Python数据验证库,主要用于API请求校验和LLM结构化输出处理。它通过BaseModel定义数据模型,提供字段类型检查、约束验证(如Field限定范围)、自定义清洗逻辑(如@field_validator)等功能。在FastAPI中可自动校验请求体,失败返回422错误;处理LLM输出时,能将JSON Schema传给模型并验证返回结果。典型工作流程包括:定义模型→导出Schema→LLM生成JSON→Pydantic验证→获取结构化数据。案例展示了产品信息校验场景,包含字
2026-05-12 16:07:54
388
原创 Agent 自我反思机制 、强化学习(Agent Lightning 强化学习框架)
ReAct 是一种「推理-行动-观察-再推理」的循环框架,它天然支持模型在任务执行过程中进行。Agent Lightning(AL) 是微软研究院2025年推出的一个。├── ✅ 问题可以建模为「状态 → 动作 → 奖励」循环。├── ✅ 可以与环境大量交互(模拟器或低成本试错)└── ✅ 最优策略难以用规则或监督学习显式写出。├── ✅ 决策是序列化的(当前决策影响未来)├── ✅ 有一个明确的奖励/惩罚信号。✅ 自我反思 / 自我进化的闭环。套上一层 “可训练外壳”,智能体会随着训练变强。
2026-05-09 17:24:06
764
原创 大模型轻量化部署:格式选型(ONNX/GGUF/TFLite) + 压缩三剑客(量化/剪枝/蒸馏)
本文介绍了大模型部署的三种主流格式(ONNX、GGUF、TFLite)及其适用场景,并重点探讨了模型优化技术。ONNX适合GPU服务器,GGUF适合CPU推理,TFLite专为移动端优化。模型压缩方法包括权重量化(降低精度)、权重剪枝(删除冗余连接)和知识蒸馏(大模型指导小模型),三者常组合使用。文章提供了Python代码示例,展示如何实现8位量化、权重剪枝和蒸馏训练,帮助开发者在不显著损失精度的情况下提升模型效率。
2026-05-09 15:10:45
574
原创 LangSmith 实操指南「Agent 可观测性系统」
LangSmith 是 LangChain 生态下的生产级 LLM 应用开发平台,核心作用是对LLM调用、Agent执行等全链路进行;简单来说:我们可以将LLM应用的执行数据(输入、输出、耗时、错误信息等)上报到LangSmith平台,直观展示执行过程、排查问题、优化性能,是LLM应用落地的关键工具。
2026-05-08 17:01:35
545
原创 NL2SQL(Text2SQL)实战:Vanna框架与安全防护
NL2SQL技术概述与应用实践 NL2SQL(自然语言转SQL)技术通过AI模型将用户自然语言问题转换为数据库查询语句。Vanna框架作为典型解决方案,采用RAG技术路线,通过训练DDL表结构、业务文档和SQL示例存入向量数据库,结合LLM生成SQL语句。该技术面临多表查询准确率低(仅70%)、自然语言歧义和数据库复杂度三大挑战,目前生成准确率约75%,适用于简单查询场景但生产环境需谨慎。Vanna提供脚本式和Web服务两种应用模式,支持多种向量数据库和LLM服务,并可通过用户反馈实现持续学习优化。
2026-05-07 10:18:55
493
原创 FastAPI 接入 MCP 完整指南:从 Server 到 Clien
本文介绍了MCP(模型控制协议)的完整实现案例,包含服务端和客户端的配置方法。主要内容包括: 服务端实现方式: 将现有FastAPI接口包装为MCP工具 直接创建原生MCP服务 客户端连接配置: 标准HTTP客户端配置 LangChain集成方案 工具描述定义方法: 通过operation_id定义工具名称 使用summary/description添加说明 文档提供了完整的代码示例,涵盖从服务部署到客户端调用的全流程,适用于需要将现有API服务接入MCP协议或开发原生MCP工具的场景。
2026-04-28 11:42:18
320
原创 FastAPI 使用案例 & 长链接(SSE & WebSocket)& 缓存框架
本文介绍了FastAPI的路由拆分、缓存和SSE流式响应实现方案。路由拆分采用模块化结构,通过APIRouter实现二级路由管理,支持异步/同步接口;缓存方案使用fastapi-cache2框架,支持Redis等多种后端;SSE流式响应适用于AI对话等场景。文章提供了完整的代码示例和最佳实践,包括目录结构、核心代码实现、启动配置和常见问题说明,帮助开发者快速构建高性能的FastAPI应用。
2026-04-22 16:41:07
108
原创 【ReACT 设计模式】(思考 - 行动 - 观察)
摘要(148字): ReAct是一种结合推理(Reasoning)与行动(Acting)的智能体模式,通过思考→行动→观察的循环处理复杂任务。典型流程:1)思考问题并规划行动;2)调用工具执行;3)获取结果并评估。若信息不足则循环,直至输出最终答案(如查询股价需先搜索再返回结果)。其优势在于提升准确性(整合外部数据)和可解释性(透明推理过程),适用于代码生成、数据分析等需多步交互的场景。例如代码重构时,需先读取、分析依赖,再生成新代码。
2026-04-21 15:32:05
354
原创 【LangChan 0.3 组件使用 - 超详细版】(持续更新)
本文摘要: LangChain框架核心组件与应用指南,主要包含四大功能模块:1)LLM大语言模型配置,支持OpenAI标准及厂商API接入;2)解析器系统,提供JSON/List/对象三种结构化输出转换;3)提示词模板体系,包含PromptTemplate和ChatPromptTemplate两种模板类型;4)LCEL链式编排,支持管道式组件连接与异步流式处理。模板变量注入、输出解析器定义、上下文记忆、内置工具
2026-04-17 16:55:46
544
原创 【大模型微调】Llama-Factory:一站式大模型微调实战指南、私有部署大模型(Ollama、vLLM)、模型本地量化框架
LLaMA-Factory是一个低门槛、低显存的大模型微调框架,支持全流程闭环操作。它提供可视化WebUI,支持主流微调方案如SFT+LoRA/QLoRA,适用于中小团队快速落地大模型。框架优势包括零代码门槛、高兼容性、轻量化友好和便捷部署。实战案例展示了从数据准备到模型训练、评估和导出的完整流程,包括在魔塔社区利用免费GPU资源进行微调的具体步骤。通过观察训练损失值变化趋势评估效果,最终可导出优化后的模型文件用于私有部署。
2026-04-13 09:30:12
567
原创 【模型微调入门 - 阿里云百炼】
摘要:阿里云百炼提供三种大模型训练方式:SFT微调训练(增强指令跟随能力)、DPO偏好训练(优化输出质量)和CPT继续预训练(扩展知识领域)。三者可组合使用形成完整训练流程(CPT→SFT→DPO)。以智能家居场景为例,演示了SFT微调的具体操作步骤:1)准备问答格式数据集;2)选择训练方式并配置参数;3)部署模型并测试效果。SFT-LoRA微调具有成本优势,支持按量付费部署,适合快速业务适配。(149字)
2026-04-10 16:20:02
592
原创 【LangChain 消息历史裁剪器 + 持久化短记忆、Mem0 长期记忆框架介绍】
文章摘要: 本文介绍了如何利用LangChain的RedisChatMessageHistory实现对话历史管理。主要内容包括:1) 基础用法展示直接操作Redis消息历史;2) 推荐的生产级集成方案,通过RunnableWithMessageHistory自动管理多用户隔离的对话记忆;3) 提供完整的代码示例,包含Redis连接配置、历史修剪策略和会话过期控制;4) 演示了如何将Redis记忆系统与Agent结合使用。方案支持自动持久化、多会话隔离和TTL过期控制,适用于需要长期保持对话上下文的AI应用场
2026-04-08 15:52:30
156
原创 【LangChain 0.3 - 1 - 常用组件】 + 可运行 Agent 实战
本文介绍了LangChain框架的核心组件和使用方法。主要内容包括:1) ChatModels模块用于初始化大语言模型;2) ChatPromptTemplate模块提供对话模板功能;3) Chains模块实现处理流水线;4) Tools模块定义可调用工具。文章重点演示了如何构建一个完整的Agent系统,包含工具定义、提示词模板设计、Agent创建和执行流程。通过数学计算和查询时间两个示例,展示了Agent自动选择工具并生成自然语言回复的能力。代码示例基于LangChain 0.3版本,采用标准导入路径和函
2026-04-08 12:06:23
89
原创 AutoGen 多智能体实战:订单 + 物流查询案例
本文介绍了一个基于AutoGen框架的多智能体协作系统,用于实现订单和物流查询业务场景。系统包含四个核心组件:UserProxyAgent作为用户代理执行工具调用,三个AssistantAgent分别负责订单查询、物流查询和结果汇总,GroupChatManager协调智能体间的协作流程。通过注册工具函数和配置群组聊天规则,系统实现了"用户发起→订单查询→物流查询→结果汇总"的自动化业务流程。该案例展示了AutoGen框架在多智能体协作任务中的应用,通过分工明确的角色设计和流程控制,有效
2026-04-08 11:08:25
303
原创 LangGraph 工作流构建(全)
摘要:LangGraph是一个基于状态图的工作流框架,核心组件包括State(共享状态)、Node(执行单元)和Edge(流程控制)。State作为全局共享数据存储,支持增量更新;Node负责单一功能执行;Edge分为普通边(顺序执行)和条件边(分支控制)。工作流通过StateGraph定义,支持自定义状态字段、节点函数和流程编排。典型应用包括LLM对话记录(messages字段)和执行日志跟踪,节点通过返回字典更新部分状态。框架提供两种边连接方式:固定顺序的普通边和基于条件判断的分支边,支持复杂流程控制。
2026-04-07 15:36:55
310
原创 微信服务号开发【2026最新】
微信服务号认证;微信消息推送统一入口 ;处理各类消息逻辑、获取微信服务号Token;发送消息模板案例、单个发送消息模板、批量发送消息模;生成临时带参数二维码、生成永久带参数二维码。
2025-08-28 16:03:07
829
原创 JPOM安装
提前创建好文件夹 并且切换到对应到文件夹执行命令。# 提前创建好文件夹 并且切换到对应到文件夹执行命令。安装完成后ctrl+c结束,不会关闭程序。安装完成后ctrl+c结束,不会关闭程序。输入jpom节点linux的账号密码。如果是本机发布则不用配置SSH。查看agent节点账号密码。
2024-07-08 12:01:29
468
原创 java补全数据库查询统计数据缺失的日期和补0
补全缺失数据。例如获取近七日柱状图统计数据。从数据库通过分组等方式查出每天的数据,但是如果某天没产生数据记录,那么柱状图就缺失了当天的数据显示;实际如果当天没数据柱状图应该显示0才对。
2024-02-06 18:10:43
1327
1
原创 java反射常用方法
Java反射指的是一个机制,这种机制可以在Java程序(动态)实例化对象、读写属性、调用方法。一般在我们开发程序时,都知道自己具体用的什么类,直接创建即可。但是当写一些通用的功能时,就不能在编译时把具体类的类型写死,因为程序运行起来后可能会有多种类型的可能,此时就需要在运行时动态的去调用某个类的属性和方法,这就必须通过反射来实现。第一种做法:是知道参数类型有哪几种情况,可以使用instanceof运算符进行判断,再利用强制类型转换将其转换成其运行时类型的变量即可。// 学生。
2023-06-07 10:18:41
547
原创 【explain执行计划】MySQL性能调优
这个相同的join语句出现了三次:(1)扫描类型为eq_ref,此时id为主键(查询条件是主键ID);(2)扫描类型为ref,此时id为非唯一普通索引(查询条件是非主键ID);(3)扫描类型为ALL,全表扫描,此时id上无索引(查询条件不带索引);(1)explain结果中的type字段,表示(广义)连接类型,它描述了找到所需数据使用的扫描方式;(2)常见的扫描类型(由快到慢)有: system>const>eq_ref>ref>range>index>ALL。
2022-12-08 14:21:08
1453
原创 Spring观察者模式 - 事件监听机制(发布订阅模式)
一个事件多个处理方式的场景。ApplicationContext中事件处理是由ApplicationEvent类和ApplicationListener接口来提供的。如果一个Bean实现了ApplicationListener接口,并且已经发布到容器中去,每次ApplicationContext发布一个ApplicationEvent事件,这个Bean就会接到通知。Spring事件机制是观察者模式的实现。spring中的事件机制涉
2022-11-03 11:40:36
1640
原创 【SkyWalking】分布式服务追踪与调用链系统
SkyWalking是一个开源的观测平台,提供监控:分布式追踪调用链 、jvm内存变化、监控报警、查看服务器基本配置信息。在整个skywalking的系统中,有三个角色:1.skywalking agent负责收集各种监控数据;2.skywalking oapservice负责处理监控数据,比如接受skywalking agent的监控数据...
2022-11-01 17:21:44
2329
原创 【自定义注解防止重复提交】
使用: @LimitSubmit(key = “testLimit:%s:#orderId”,limit = 10,needAllWait = true)3.限制某个人对某个接口的业务参数的访问,则 %S:#参数1:#参数2。%S 代表当前登录人 #参数 代表从参数中获取,支持多个参数。1.限制对某个接口的访问,针对所有人 ,则去除%S。注解参数说明:%s表示用户唯一表示用户ID,2.限制某个人对某个接口的访问,则 %S。
2022-10-31 11:06:51
37
原创 【JUC并发编程】Synchronized深度分析
在Java5.0提供了java.util.concurrent包,简称JUC包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于县城的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的Collection实现等。
2022-10-19 13:45:33
859
原创 Cesium模型贴地、贴地画线
cesium模型贴地的两种处理方法第一种:将代码中的【polyline】改为【corridor】第二种:添加 clampToGround: true
2022-10-17 10:29:03
752
原创 【XXL-JOB】分布式任务调度平台
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
2022-10-01 15:00:00
1912
原创 【多线程入门】&线程的三种创建方式&线程的生命周期&并行和并发的区别
当我们启动了一个微信的时候,微信就是一个进程;同理当我们打开百度网盘的时候,就相当于开启了一个百度网盘进程。Windows系统可以打开“任务管理器”来查看开启的“进程”。
2022-09-30 11:22:42
711
原创 【Seata】分布式事务框架原理解析
在单体项目中如果只有一个数据库是不存在分布式事务问题的,通过@Transactional事务管理器就可以管理该数据库事务。Seata是由阿里中间件团队发起的开源分布式事务框架项目,依赖支持本地 ACID 事务的关系型数据库,可以高效并且对业务0侵入的方式解决微服务场景下面临的分布式事务问题,目前提供AT模式(即2PC)、TCC、SAGA 和 XA 的分布式事务解决方案。
2022-09-30 11:12:56
2953
2
原创 【手写线程池实现】
改为:Runnable poll = workQueue.take();// take()若队列为空,则阻塞线程,直到获取到元素*将:Runnable poll = workQueue.poll();这段代码非常损耗性能,不管队列有没有任务都会一直循环运行。
2022-09-30 11:07:40
602
原创 【百度统计】用户行为分析
PV(浏览量):页面访问次数,不限制IP是否相同(刷新一次页面PV量就加1);UV(访客数):页面访问次数,相同IP重复访问时,UV只加1;进入百度统计——领先的中文网站分析平台,并登陆。平均访问时长:用户在当前网站的平均浏览时长。2、 CNZZ-阿里旗下的统计分析平台。新增网站,输入自己网站的域名等相关信息。账户管理-》网站列表-》查看报告;............
2022-08-09 09:12:47
1069
原创 【动态修改SQL语句】Mybatis拦截器修改sql语句
MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:我们看到了可以拦截Executor接口的部分方法,比如update,query,commit,rollback等方法,还有其他接口的一些方法等。1、拦截执行器的方法2、拦截参数的处理3、拦截结果集的处理4、拦截Sql语法构建的处理/*** sql增强注解。...
2022-08-08 17:28:23
990
原创 【mysql索引实现原理】
例如说两个事务,事务A锁住了1-5行,同时事务B锁住了6-10行,此时事务A请求锁住6-10行,就会阻塞直到事务B施放6-10行的锁,而随后事务B又请求锁住1-5行,事务B也阻塞直到事务A释放1-5行的锁。当一个事务对某几行上读锁时,允许其他事务对这几行进行读操作,但不允许其进行写操作,也不允许其他事务给这几行上排它锁,但允许上读锁。排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的,:会出现死锁,发生锁冲突几率低,并发高。...
2022-08-08 17:23:33
264
原创 【jstack、jps命令使用】排查死锁
“jps -v” 命令:可以显示传递给 Java 虚拟机的参数(java启动参数、内存分配大小等信息)。
2022-08-08 17:15:26
803
原创 【http方式操作es】springboot整合es,轻量级不需要引入任何依赖
说明:通过http请求的方式来实现操作ES;例如分页查询from、size。
2022-08-08 17:09:54
1525
1
原创 jenkins数据迁移和备份
以下方式适用于通过 yum install jenkins 安装的jenkins查看当前jenkins主目录位置:方式一:linux服务器通过命令查看,可以使用cat /etc/sysconfig/jenkins命令查看主目录方式二:例如需要将主目录改为 /etc/lib/jenkins1. 将/data/jenkins/home/jenkins内容全部cp到/etc/lib/jenkins中拷贝命令: cp 目录 -a 目标目录cp /data/je...
2022-04-20 16:04:00
3274
LangChain4J使用案例大全(注释清晰)
2025-07-23
在web页面播放rtsp流视频搭建转流服务器需要的ffmpeg、yasm
2023-06-29
eawt.jar com.apple.eawt
2020-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅