投入顺序通常是:异步 → 缓存 → 模型路由 → 提示压缩 → 推理调参。前两项高收益、低风险。
先测量
关注 TTFT(首 Token)、总生成时间、检索延迟、端到端墙钟。用 LangSmith / OpenTelemetry,或开发期简单 timing。全面异步
LLM 调用本质是等 I/O。用ainvoke / astream;彼此独立的检索、历史、画像用 asyncio.gather 并行,常能把串行几百毫秒压成「最慢那一个」。
语义缓存
按字面缓存命中率低——用户说法多变。按查询向量近邻缓存(阈值约 0.95)更有效,FAQ/客服类命中 30–50% 并不罕见。提示压缩
长提示又贵又慢。检索上下文往往是大头。可用 LLMLingua 一类压缩;或重排只留 3–5 块、只抽相关句、文档级摘要代替全文切块。按复杂度路由模型
分类、事实查询别一律上最强模型。小模型先判 simple/complex,再选模型,成本差可以到一个数量级。流式改善体感
3 秒干等和 300ms 开始出字,体感完全不同。优化首 Token;骨架屏;多步骤时把「正在检索…」也推给用户。自托管 vLLM 调参
关键旋钮:--max-num-seqs、--gpu-memory-utilization、AWQ 量化、大模型再考虑 tensor parallel。小模型有时多实例负载均衡比硬拆并行更划算。