用户反馈
用户反馈衡量你的 AI 是否真的帮到了用户。借助它你可以发现质量问题、构建更优的评估数据集,并基于真实用户体验来确定改进优先级。在 Litefuse 中,反馈以 scores 的形式被记录并关联到 trace 上。


反馈类型
显式反馈
用户通过点赞/点踩、星级或评论直接为响应打分。
| 优点 | 缺点 |
|---|---|
| 满意度信号明确 | 响应率低 |
| 实现简单 | 不满意的用户更可能给反馈 |
| 易于落地 | 需要用户主动操作 |
隐式反馈
来自用户行为,例如阅读时长、复制输出、采纳建议或重试查询。
| 优点 | 缺点 |
|---|---|
| 每次交互都能产生大量数据 | 实现更复杂 |
| 不需要用户额外操作 | 信号含义模糊 |
| 反映真实使用情况 | 需要解读 |
两者在 Litefuse 中都以 scores 呈现。你可以按分数过滤 trace、构建标注队列,或将反馈作为自动化评估的 ground truth。
快速开始
下面这个示例展示了如何在用 Next.js 和 AI SDK 构建的聊天机器人中收集显式用户反馈。完整实现可在 Litefuse Example 仓库中找到。
1. 将 trace ID 返回给前端
后端把 trace ID 发给前端,便于前端把反馈关联到 trace。
// app/api/chat/route.ts
import { getActiveTraceId } from "@Langfuse/tracing";
export const POST = observe(async (req: Request) => {
const result = streamText({
model: openai('gpt-4o-mini'),
messages: convertToModelMessages(messages),
});
return result.toUIMessageStreamResponse({
generateMessageId: () => getActiveTraceId() || "",
});
});2. 在前端收集反馈
使用 Litefuse Web SDK 将反馈作为分数发送。
import { LangfuseWeb } from "langfuse";
const langfuse = new LangfuseWeb({
publicKey: process.env.NEXT_PUBLIC_LANGFUSE_PUBLIC_KEY,
baseUrl: process.env.NEXT_PUBLIC_LANGFUSE_HOST,
});
function FeedbackButtons({ messageId }: { messageId: string }) {
const handleFeedback = (value: number, comment?: string) => {
langfuse.score({
traceId: messageId,
name: "user-feedback",
value: value, // 1 for positive, 0 for negative
comment: comment,
});
};
return (
<div>
<button onClick={() => handleFeedback(1)}>:+1:</button>
<button onClick={() => handleFeedback(0)}>:-1:</button>
</div>
);
}3. 在 Litefuse 中查看反馈
反馈以分数形式出现在 trace 上。你可以用 user-feedback < 1 过滤出评分较低的响应。

服务端反馈
需要时可以从后端记录反馈,例如在用户调研或后续交互之后。你也可以用它来记录隐式反馈信号,比如工单关闭或任务成功完成。
from langfuse import get_client
langfuse = get_client()
# Check if customer support ticket was resolved successfully
ticket_status = checkIfTicketClosed(ticket_id="ticket-456")
if ticket_status.is_closed:
langfuse.create_score(
trace_id=ticket_status.trace_id,
name="ticket-resolution",
value=1,
comment=f"Ticket closed successfully after {ticket_status.resolution_time}"
)
else:
langfuse.create_score(
trace_id=ticket_status.trace_id,
name="ticket-resolution",
value=0,
comment=f"Ticket escalated to human agent"
)借助 LLM-as-a-Judge 的隐式反馈
使用 LLM 作为裁判,为每个响应自动评估用户情感、满意度或参与度等维度。这让你无需用户介入也能获得大规模反馈。

实现模式与示例参见 LLM-as-a-Judge 评估器。
示例应用
user-feedback 示例 展示了一个完整的 Next.js 实现,包含:
- OpenTelemetry tracing
- 带可选评论的点赞/点踩
- 跨对话的会话追踪
这个页面对你有帮助吗?