用途:为任意 LLM 项目接入 W&B Weave 可观测性,追踪 LLM 调用,捕获 token、延迟与成本,并提供调试与评估界面。
安装与初始化:TypeScript/Node.js 使用 npm install weave,Python 使用 pip install weave;设置 WANDB_API_KEY 环境变量(从 wandb.ai/settings 获取),随后在应用启动早期、任何 LLM 调用前调用 weave.init('your-team/project-name')。
追踪方式:对受支持提供商自动打补丁,例如创建 OpenAI 客户端后所有调用自动被追踪;对自定义函数或不支持的库使用手动包装,TypeScript 用 weave.op(async (input) => {...}),Python 用 @weave.op() 装饰器。可用 wrapOpenAI(new OpenAI()) 包装现有客户端,可用 @weave.op 追踪类方法,也可通过 callDisplayName 自定义显示名。
支持的提供商:OpenAI、Anthropic、Cohere、Mistral、Google、Groq、Together AI、LiteLLM、Azure、Bedrock、Cerebras、HuggingFace、OpenRouter、NVIDIA NIM 等。
查看追踪:运行后打开 wandb.ai,进入项目 Weave 标签页,查看输入、输出、延迟、token 用量与成本,可过滤、搜索和导出调用数据。
环境变量:WANDB_API_KEY 用于认证(必需);WEAVE_IMPLICITLY_PATCH_INTEGRATIONS 设为 false 可禁用自动打补丁。
TypeScript 细节:ESM 需使用 --import=weave/instrument,常见打包器(Next.js、Vite)需处理兼容性,可将 LLM 库标记为 external。
限制与排错:无追踪时检查 WANDB_API_KEY 是否设置;ESM 未打补丁时使用 --import=weave/instrument;打包器问题需标记 LLM 库为 external;必要时使用 wrapOpenAI() 或显式 weave.op() 作为手动回退。