AI Agent白手起家23: 大模型速率限制应对与缓存机制实践

发布时间:2026/8/4 3:08:06

AI Agent白手起家23: 大模型速率限制应对与缓存机制实践
纲要速率限制的产生背景与影响LangChain 内置速率限制器InMemoryRateLimiter核心参数缓存机制的必要性与原理短期缓存内存与长期缓存持久化实战速率限制与缓存结合项目结构速率限制器配置缓存方案对比内存与 SQLite代码示例关键要点总结速率限制为什么需要关注当前主流大模型提供商OpenAI、DeepSeek、Anthropic 等都会对 API 实施速率限制。例如 OpenAI 对免费用户限制每分钟请求数RPM和每分钟 Token 数TPM付费用户则有更高的配额。一旦请求超过限制API 将返回错误如 429导致应用不可用严重影响用户体验。在 AI Agent 开发中如果不做任何防护高频调用很容易触发限流。因此必须在客户端侧主动实施流量整形确保请求速率始终在安全范围内。LangChain 中的速率限制器LangChain 提供了InMemoryRateLimiter作为内置速率控制组件。它位于langchain_core.rate_limiters模块中通过令牌桶算法限制单位时间内的请求数。核心参数如下参数说明示例requests_per_second每秒允许的最大请求数1.0每秒 1 次或0.1每 10 秒 1 次check_every_n_seconds每隔多少秒检查一次是否允许新请求0.1每 100 毫秒检查max_burst_size允许的最大突发请求数10使用时只需在实例化模型组件时传入rate_limiter参数即可。缓存机制减少不必要的 API 调用除了限制速率缓存也是降低 API 调用频率的有效手段。其流程如下是否用户请求缓存命中?返回缓存结果调用大模型 API获取响应写入缓存LangChain 的缓存分为两种内存缓存InMemoryCache存储在进程内存中重启即失适合短期重用。持久化缓存如基于 SQLite 的实现可长期保存适合跨会话复用。结合速率限制与缓存可以大幅提升应用稳定性和成本效率。项目结构本示例将实现使用InMemoryRateLimiter控制请求频率。对比内存缓存和 SQLite 缓存的实际效果。演示如何通过usage_metadata追踪 Token 消耗验证缓存是否真正减少了 API 调用。目录结构如下├── main.py └── requirements.txt依赖清单requirements.txtlangchain-openai0.3.0 langchain-core0.3.0 langchain-community0.3.0代码示例importos,timefromlangchain_openaiimportChatOpenAIfromlangchain_core.rate_limitersimportInMemoryRateLimiterfromlangchain_core.cachesimportInMemoryCachefromlangchain_community.cachesimportSQLiteCacheimportlangchain# ---------- 1. 配置速率限制器 ----------rate_limiterInMemoryRateLimiter(requests_per_second0.5,# 每 2 秒允许 1 次请求check_every_n_seconds0.1,# 每 0.1 秒检查一次max_burst_size1# 最大突发请求为 1)# ---------- 2. 初始化模型使用 GPT-3.5 以降低成本 ----------llmChatOpenAI(modelgpt-3.5-turbo,temperature0,max_tokens100,api_keyos.getenv(OPENAI_API_KEY),rate_limiterrate_limiter# 注入速率限制器)# ---------- 3. 辅助函数打印 Token 用量 ----------defprint_usage(response):usageresponse.usage_metadataifusage:print(f 输入:{usage.get(input_tokens)}, 输出:{usage.get(output_tokens)}, 总计:{usage.get(total_tokens)})else:print( 未获取到 Token 用量)# ---------- 4. 演示速率限制效果 ----------print( 速率限制演示连续发送 5 个相同请求 )start_timetime.time()prompt用一句话介绍深度学习。foriinrange(5):t0time.time()responsellm.invoke(prompt)t1time.time()print(f请求{i1}: 耗时{t1-t0:.2f}s)print_usage(response)print(f总耗时:{time.time()-start_time:.2f}s\n)# ---------- 5. 缓存机制对比 ----------# 先移除速率限制器以便专注于缓存测试llm_no_limitChatOpenAI(modelgpt-3.5-turbo,temperature0,max_tokens100,api_keyos.getenv(OPENAI_API_KEY),)# 5.1 无缓存print( 无缓存重复请求相同问题 )langchain.llm_cacheNone# 清除全局缓存foriinrange(3):t0time.time()resllm_no_limit.invoke(什么是 Transformer)t1time.time()print(f第{i1}次: 耗时{t1-t0:.2f}s, 返回前 20 字:{res.content[:20]}...)# 5.2 内存缓存print(\n 启用内存缓存 )langchain.llm_cacheInMemoryCache()foriinrange(3):t0time.time()resllm_no_limit.invoke(什么是 Transformer)t1time.time()print(f第{i1}次: 耗时{t1-t0:.2f}s, 返回前 20 字:{res.content[:20]}...)# 第一次会调用 API后续直接命中缓存# 5.3 SQLite 持久化缓存print(\n 启用 SQLite 缓存 )langchain.llm_cacheSQLiteCache(database_path.langchain_cache.db)foriinrange(3):t0time.time()resllm_no_limit.invoke(什么是 Transformer)t1time.time()print(f第{i1}次: 耗时{t1-t0:.2f}s, 返回前 20 字:{res.content[:20]}...)# 如果之前已缓存第一次也可能快速返回运行说明代码依赖langchain-openai、langchain-core、langchain-community。需要设置环境变量OPENAI_API_KEY为有效的 OpenAI API 密钥。速率限制演示部分会因requests_per_second0.5而明显降低请求速度。缓存演示中第一次调用会真正请求 API后续调用几乎瞬间完成表明缓存生效。SQLite 缓存文件.langchain_cache.db会在当前目录生成可跨脚本持久化。关键要点总结几乎所有的商用大模型 API 都有速率限制忽略它会导致应用频繁报错。LangChain 提供InMemoryRateLimiter用于客户端流量控制只需传入rate_limiter参数即可。缓存是减少 API 调用、降低成本的有效手段LangChain 支持内存缓存和 SQLite 持久化缓存切换非常方便。在实际 AI Agent 开发中建议将速率限制与缓存结合使用以保障服务的稳定性和经济性。

相关新闻

AI Agent白手起家22: 理解大模型上下文窗口与Token管理实战

AI Agent白手起家22: 理解大模型上下文窗口与Token管理实战

2026/8/4 3:08:06

纲要 上下文窗口是什么Token 的本质与计算方式上下文窗口的限制因素 Transformer 注意力机制的复杂度硬件显存与响应时间训练数据的短文本倾向注意力衰减与长距离依赖 应对上下文窗口限制的策略 检索增强生成滑动窗口新架构探索 LangChain 中的 Token 追踪 usage_metadata 与 r…

Unity动态SDF字体生成技术与性能优化

Unity动态SDF字体生成技术与性能优化

2026/8/4 2:58:05

1. Unity TMP_SDF 数据源深度解析在Unity文本渲染管线中,TextMeshPro的SDF(Signed Distance Field)字体渲染技术已经成为UI文字显示的事实标准。作为TMP核心子系统之一,SDF数据源的生成与处理直接影响最终渲染效果的质量和性能。本…

当AI遇见象棋:Vin象棋如何用深度学习重新定义棋艺提升

当AI遇见象棋:Vin象棋如何用深度学习重新定义棋艺提升

2026/8/4 2:58:05

当AI遇见象棋:Vin象棋如何用深度学习重新定义棋艺提升 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 你是否曾在下棋时渴望拥有一个永不疲倦的…

【需求分析】基于 GPT-5.6 + Codex 开发个人工具箱 Personal Toolbox 项目

【需求分析】基于 GPT-5.6 + Codex 开发个人工具箱 Personal Toolbox 项目

2026/8/4 5:38:12

其实是第二个 AI 项目。但前一个项目因没有经验,搞得太乱,现在被卡在一半不想继续。 新的项目从需求分析开始,每一次功能更新/完成都会复盘一下。 本次想法是给自己开发一个多功能工具箱,GitHub仓库。 1 前言 在日常使用 AI、浏览…

PCB全检质量控制:猎板工程师的出货标准

PCB全检质量控制:猎板工程师的出货标准

2026/8/4 5:38:12

不知你是否有过这样的经历, 就是收到了一块线路整齐, 焊点光亮, 堪称完美的PCB? 殊不知在你视线外难以留意的情形下, 有一套全检质量控制体系, 正悄无声息地对每一块板的品质起着守护作用。 身为猎板那儿的一名工程师, 我每日打交道的皆是这个问题, 即怎样保证每一块PCB都能够…

AI智能拦截告警风暴:EFK+K8s+OpenAI实战

AI智能拦截告警风暴:EFK+K8s+OpenAI实战

2026/8/4 5:38:12

1. 项目概述:当AI遇上告警风暴去年我们团队接手了一个日均告警量超过5000条的EFK(ElasticsearchFluentdKibana)监控系统,运维人员每天要花3小时处理告警邮件。直到某天凌晨2点,一条"K8s节点内存使用率95%"的…

数据仓库核心特性与架构实战:从ETL到OLAP的企业数据中枢构建

数据仓库核心特性与架构实战:从ETL到OLAP的企业数据中枢构建

2026/8/4 5:38:12

1. 数据仓库:不只是个数据库,而是企业的“记忆中枢”刚入行那会儿,我也以为数据仓库(Data Warehouse)就是个放大版的数据库,无非是存的数据多点,服务器贵点。直到真正参与一个大型零售企业的数据…

腾讯云IMS AI生成图片识别技术原理与实战应用

腾讯云IMS AI生成图片识别技术原理与实战应用

2026/8/4 5:38:12

1. 从一次“乌龙”事件说起:为什么我们需要识别AI生成图片? 上个月,我团队的一个内容审核同事差点闹了个大笑话。一个用户上传了一张极其逼真的“新闻现场照片”,画面里是某国际地标建筑前发生的一场小型冲突,光影、人…

祁木 CAD Translator 东南亚语言翻译效果实测与原理拆解

祁木 CAD Translator 东南亚语言翻译效果实测与原理拆解

2026/8/4 5:28:12

在处理东南亚地区的工程项目文档时,很多技术团队都会遇到一个棘手的痛点:图纸上的文字识别不准,翻译出来的内容更是让人摸不着头脑。尤其是面对泰语、越南语这些拥有独特字符集的语言,或者是印尼语和马来语中那些高度相似却又含义…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/3 4:49:52

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/3 19:24:18

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/3 20:38:37

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

3步解决Windows DLL缺失问题:VisualCppRedist AIO终极运行库修复方案

3步解决Windows DLL缺失问题:VisualCppRedist AIO终极运行库修复方案

2026/8/4 0:07:58

3步解决Windows DLL缺失问题:VisualCppRedist AIO终极运行库修复方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打开游戏或软件时遇…

SingleFile终极指南:一键保存完整网页的5大核心功能

SingleFile终极指南:一键保存完整网页的5大核心功能

2026/8/4 0:07:58

SingleFile终极指南:一键保存完整网页的5大核心功能 【免费下载链接】SingleFile Web Extension for saving a faithful copy of a complete web page in a single HTML file 项目地址: https://gitcode.com/gh_mirrors/si/SingleFile 你是否曾经遇到过这样的…

国家中小学智慧教育平台电子课本下载终极方案:三步免费获取PDF教材

国家中小学智慧教育平台电子课本下载终极方案:三步免费获取PDF教材

2026/8/4 0:07:58

国家中小学智慧教育平台电子课本下载终极方案:三步免费获取PDF教材 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/2 17:06:42

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/3 7:25:44

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/3 2:41:27

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…