Skip to content
LangSmith 文档版本 跟随上游 源快照 6babe2b0 更新于 2026-10-18

使用 SDK 记录用户反馈

LangSmith 让你可以轻松地将反馈附加到追踪上。这些反馈可以来自用户、标注人员、自动评估器等,这对于监控和评估应用至关重要。

本页详细介绍如何使用 SDK 记录反馈。有关反馈对象的结构,请参阅反馈数据格式。

使用 create_feedback() / createFeedback

INFO

子运行 你可以将用户反馈附加到追踪的任意子运行上,而不仅仅是追踪(根运行)本身。 这对于评判 LLM 应用的特定步骤很有用,例如 RAG 流水线的检索步骤或生成步骤。

TIP

非阻塞创建(仅 Python) 如果你向 create_feedback() 传入 trace_id=,Python 客户端会自动在后台创建反馈。 这对于低延迟环境至关重要,因为在这些环境中,你需要确保应用不会因创建反馈而阻塞。

下面的示例创建一个包含两个子运行的追踪,然后针对根运行和其中一个子运行记录反馈。TypeScript 代码片段展示了等效的 createFeedback 调用形式,前提是你的应用已经获得了 runId。

python
from langsmith import Client, trace, traceable

@traceable
def foo(x):
    return {"y": x * 2}

@traceable
def bar(y):
    return {"z": y - 1}

client = Client()

inputs = {"x": 1}
with trace(name="foobar", inputs=inputs) as root_run:
    result = foo(**inputs)
    result = bar(**result)
    root_run.outputs = result
    trace_id = root_run.id
    child_runs = root_run.child_runs

# Resolve the UUID of the project that owns the trace
session_id = client.create_project(project_name=root_run.session_name, upsert=True).id

# Provide feedback for a trace (a.k.a. a root run)
client.create_feedback(
    key="user_feedback",
    score=1,
    trace_id=trace_id,
    session_id=session_id,
    comment="the user said that ..."
)

# Provide feedback for a child run
foo_run_id = [run for run in child_runs if run.name == "foo"][0].id
client.create_feedback(
    key="correctness",
    score=0,
    run_id=foo_run_id,
    # trace_id= is optional but recommended to enable batched and backgrounded
    # feedback ingestion.
    trace_id=trace_id,
    session_id=session_id,
)
typescript
import { Client } from "langsmith";
const client = new Client();

    // ... Run your application and get the run_id...
    // This information can be the result of a user-facing feedback form

// Resolve the UUID of the project that owns the trace
const { id: sessionId } = await client.createProject({ projectName: "default", upsert: true });

await client.createFeedback({
    runId,
    sessionId,
    key: "feedback-key",
    score: 1.0,
    comment: "comment",
});

你甚至可以使用 create_feedback() / createFeedback 为进行中的运行记录反馈。有关如何获取进行中运行的运行 ID,请参阅在追踪函数内访问当前运行(跨度)。

从客户端应用收集反馈

如果你需要从浏览器或其他客户端环境收集反馈,而又不想暴露 API key,请使用预签名反馈令牌。它们会生成一个作用域限定于特定运行和反馈键的 URL,客户端可以直接调用。

完整指南请参阅使用预签名 URL 收集反馈。

如需详细了解如何根据各种属性(包括用户反馈)过滤追踪,请参阅过滤追踪。


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。