趋近智
一旦您的LangChain应用部署,仅仅确保它能运行是不够的。生产系统需要持续关注,以确认其达到性能预期并控制在预算范围内。LLM的非确定性及链式操作的复杂结构,使得监控应用性能和成本尤为必要。忽视这一点可能导致用户体验下降、开支飙升以及难以诊断间歇性问题。
有效的监控包括追踪特定性能指标(KPI)和资源消耗模式。我们来考查一下必要的衡量标准和方法。
追踪正确的性能衡量标准可以帮助了解应用的响应速度和可靠性。
延迟: 这衡量了处理请求所需的时间。区分以下几类通常会有帮助:
错误率: 监控错误的频率和类型对于评估可靠性是基础。LangChain应用中常见的错误分类包括:
吞吐量 (throughput): 这衡量了您的应用每单位时间(例如,每秒或每分钟请求数)能成功处理的请求数量。了解吞吐量限制对于容量规划和确保您的应用能扩展以满足需求很必要。它通常受单个请求的延迟和可用计算资源的影响。
LLM使用通常根据处理的令牌数量(包括输入和输出)定价。未受监控的应用可能导致意料之外的高成本。
令牌用量: 这通常是主要的成本驱动因素。精确追踪需要监控:
# 使用OpenAI回调获取令牌用量的例子
from langchain_openai import ChatOpenAI
from langchain_community.callbacks import get_openai_callback
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{input}")
])
chain = prompt | llm
with get_openai_callback() as cb:
response = chain.invoke({"input": "Tell me a short joke."})
print(response.content)
print(f"\nTotal Tokens: {cb.total_tokens}")
print(f"Prompt Tokens: {cb.prompt_tokens}")
print(f"Completion Tokens: {cb.completion_tokens}")
print(f"Total Cost (USD): ${cb.total_cost:.6f}") # 需要设置定价信息
# 启用追踪后,LangSmith会自动捕获此信息,无需显式回调。
基础设施成本: 除了直接的LLM API调用,还要考虑托管您的应用(服务器、容器、无服务器功能)、运行向量 (vector)数据库、数据存储和网络流量相关的成本。这些成本通常会随使用量和请求量增长。
成本计算与归因: 将令牌用量数据与LLM提供商的定价模型(例如,每1K输入令牌成本、每1K输出令牌成本)结合起来,您可以计算每个请求的估计成本或一段时间内的总成本。在生产环境中,一项必要工作是将成本归因于特定的应用功能、租户(在多租户应用中)或用户操作。这通常涉及在LangSmith或您的监控系统中,用相关元数据标记 (token)请求或追踪。
几种工具和方法有助于监控性能和成本:
CallbackHandler,以在链/代理执行期间拦截事件(例如,on_llm_end、on_chain_start、on_tool_error)。这些回调可用于记录详细的性能数据、计算令牌用量或将衡量标准发送到外部监控系统,如Prometheus、Datadog或自定义数据库。logging模块记录未被追踪自动捕获的应用级别事件、错误和警告。有效组织日志以便于解析和分析。没有有效的可视化和警报,原始衡量标准用处不大。
仪表盘: 创建仪表盘(在LangSmith、Grafana或其他APM工具中),以可视化KPI和长期成本趋势。这有助于识别性能退步、成本异常或渐进式性能下降。
过去24小时内以毫秒为单位测量的平均端到端请求延迟。
显示一周内主要LLM每日输入和输出令牌用量的堆叠条形图。
警报: 根据您必要的衡量标准的预设阈值配置警报。例如:
持续监控性能和成本并非一次性设置,而是一个持续的流程。定期查看您的仪表盘,及时检查警报,并将监控数据与应用更新或使用模式变化关联起来。这种规范对于在生产环境中运行可靠、高效且经济的LangChain应用是基础。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造