
回复
LangSmith 不只是监控工具,更是性能法医!看 Uber Eats 如何用它揪出「幽灵延迟」:
# 实战代码片段 - 延迟热力图生成
import logging
import langsmith
# 配置日志记录
langsmith_logger = logging.getLogger("langsmith")
langsmith_logger.setLevel(level=logging.DEBUG)
# 性能指标获取 • 可以获取延迟相关指标
# • 包括:latency_p50、latency_p99、first_token_p50、first_token_p99
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 从 LangSmith 导出数据
data = client.list_runs(...)
df = pd.DataFrame(data)
# 生成热力图
plt.figure(figsize=(10, 6))
sns.heatmap(df[['latency', 'metadata']], cmap='YlOrRd')
plt.title('LangSmith 延迟热力图')
plt.show()
某电商平台发现 73% 延迟来自「商品推荐工具」的重复调用✅ LinkedIn 借助瀑布流视图优化 RAG 流程,首字节时间降低 220ms
▎动态剧本杀式交互
Perplexity 的 CEO 揭秘:当用户看到这样的动画效果,等待焦虑下降 61%↓
// 前端实现伪代码 - 多层级状态流
function renderAgentThinking(step) {
const stages = ["🔍 检索知识库", "🧠 构建推理链", "⚙️ 调用支付API"];
stages.slice(0, step+1).forEach((text, index) => {
createFakeProgressBar(index, text);
});
}
▎后台刺客模式Klarna 客服机器人的「隐身术」:
架构演进图
ReAct 到 LangGraph 的生死跃迁
from langgraph.graph import StateGraph, START, END
from typing import TypedDict
# 定义状态类型
class State(TypedDict):
topic: str
joke: str
story: str
combined_output: str
# 定义并行的 LLM 调用函数
def call_llm_1(state: State):
"""第一个 LLM 调用生成笑话"""
msg = llm.invoke(f"Write a joke about {state['topic']}")
return {"joke": msg.content}
def call_llm_2(state: State):
"""第二个 LLM 调用生成故事"""
msg = llm.invoke(f"Write a story about {state['topic']}")
return {"story": msg.content}
def aggregator(state: State):
"""聚合所有生成的内容"""
combined = f"Here's a story, joke, and poem about {state['topic']}!\n\n"
combined += f"STORY:\n{state['story']}\n\n"
combined += f"JOKE:\n{state['joke']}\n\n"
return {"combined_output": combined}
# 构建工作流
parallel_builder = StateGraph(State)
# 添加节点
parallel_builder.add_node("call_llm_1", call_llm_1)
parallel_builder.add_node("call_llm_2", call_llm_2)
parallel_builder.add_node("aggregator", aggregator)
# 添加边连接节点
parallel_builder.add_edge(START, "call_llm_1")
parallel_builder.add_edge(START, "call_llm_2")
parallel_builder.add_edge("call_llm_1", "aggregator")
parallel_builder.add_edge("call_llm_2", "aggregator")
parallel_builder.add_edge("aggregator", END)
# 编译工作流
parallel_workflow = parallel_builder.compile()
# 调用工作流
state = parallel_workflow.invoke({"topic": "cats"})
print(state["combined_output"])
LangGraph 的三大时空折叠术
1️⃣ 预加载加速:在用户输入时提前加载工具参数
# 预加载代码示例
prefetch_tools(["sentiment_analysis", "geoip_lookup"])
2️⃣ 分支预测:根据历史数据并行可能路径
3️⃣ 碎片聚合:将 10 个小文档处理合并为 1 个批量请求
▎输入瘦身秘籍
当 Agent延迟从 9.2s → 1.4s 时,某大厂CTO 说:"这不是优化,是商业模式的降维打击!"
本文转载自AI小智,作者:AI小智