[ PROMPT_NODE_22780 ]
langsmith-observability
[ SKILL_DOCUMENTATION ]
# LangSmith - LLM 可观测性平台
用于调试、评估和监控语言模型及 AI 应用的开发平台。
## 何时使用 LangSmith
**适用场景:**
- 调试 LLM 应用问题(提示词、链、智能体)
- 系统化评估模型输出与数据集的对比
- 监控生产环境中的 LLM 系统
- 为 AI 功能构建回归测试
- 分析延迟、Token 使用量和成本
- 协作进行提示词工程
**核心功能:**
- **追踪 (Tracing)**: 捕获所有 LLM 调用的输入、输出和延迟
- **评估 (Evaluation)**: 使用内置和自定义评估器进行系统化测试
- **数据集 (Datasets)**: 从生产追踪或手动创建测试集
- **监控 (Monitoring)**: 跟踪生产环境中的指标、错误和成本
- **集成 (Integrations)**: 支持 OpenAI, Anthropic, LangChain, LlamaIndex
**替代方案:**
- **Weights & Biases**: 深度学习实验跟踪、模型训练
- **MLflow**: 通用机器学习生命周期,侧重模型注册
- **Arize/WhyLabs**: 机器学习监控,数据漂移检测
## 快速开始
### 安装
bash
pip install langsmith
# 设置环境变量
export LANGSMITH_API_KEY="your-api-key"
export LANGSMITH_TRACING=true
### 使用 @traceable 进行基础追踪
python
from langsmith import traceable
from openai import OpenAI
client = OpenAI()
@traceable
def generate_response(prompt: str) -> str:
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 自动追踪到 LangSmith
result = generate_response("What is machine learning?")
### OpenAI 包装器(自动追踪)
python
from langsmith.wrappers import wrap_openai
from openai import OpenAI
# 包装客户端以实现自动追踪
client = wrap_openai(OpenAI())
# 所有调用均被自动追踪
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
## 核心概念
### 运行 (Runs) 和追踪 (Traces)
**运行 (Run)** 是单个执行单元(LLM 调用、链、工具)。运行构成了层次化的 **追踪 (Trace)**,展示了完整的执行流程。
python
from langsmith import traceable
@traceable(run_type="chain")
def process_query(query: str) -> str:
# 父运行
context = retrieve_context(query) # 子运行
response = generate_answer(query, context) # 子运行
return response
@traceable(run_type="retriever")
def retrieve_