用途:面向 LLM 应用的成本与性能优化,帮助降低调用费用、缩短响应时间,并给出可执行的优化建议。
主要能力:
- 成本明细分析:按 LLM 调用、嵌入、工具调用分类统计费用,输出总成本、分项成本与平均单次调用成本。
- 缓存策略:基于提示词与模型生成缓存键,使用 Redis 存储并设置 TTL(示例为 1 小时),命中缓存则直接返回,避免重复调用。
- 模型选择:依据查询复杂度选择更便宜的模型,例如简单查询用 gpt-3.5-turbo,中等用 claude-3-sonnet,复杂用 gpt-4;资料给出各模型输入/输出定价表。
- 提示词优化:通过去除多余空白、删除非关键示例、使用缩写等方式减少 token 数(示例称 500 token 可降至 350,约降 30%)。
- 批处理:将多个提示词分批并行执行,示例称 10 次串行约 30 秒,5 路并行约 6 秒。
- 延迟热点分析:用装饰器记录各操作耗时,输出次数、总耗时、平均耗时与 p95。
- 优化建议:根据成本与延迟分析结果生成建议,如高成本时建议加缓存、简单查询换便宜模型,高延迟时建议批处理并行与流式输出。
- 流式输出:逐块返回 token,降低首字节时间(示例约 200ms 对比等待完整响应的约 2s)。
使用方式:资料以 Python 代码示例展示各模块,包括 CostAnalyzer、LLMCache、select_model_by_complexity、optimize_prompt、batch_llm_calls、LatencyTracker、generate_recommendations 与 streaming_llm。实际接入需自行提供 llm、llm_async、llm_stream、redis_client 等依赖。
适用场景:需要控制 LLM 调用预算、排查响应慢的环节、对重复查询做缓存、按复杂度分流模型、提升吞吐或改善首字节体验的应用。
限制:资料未提供安装命令、包名、版本要求、平台支持、收费方式或实测效果数据;示例中的定价与性能数字仅为代码内注释,未说明时效与适用范围,需自行核实。分类依据其面向 LLM 应用的成本与性能优化用途,归入通用与其它。