跳到主要内容

收集用户反馈

捕获用户反馈对于了解您的 GenAI 应用在现实世界中的质量至关重要。MLflow 的 反馈 API 提供了一种结构化、标准化的方法,可直接在您的追踪中收集、存储和分析用户反馈。

为何使用 MLflow 反馈功能收集用户反馈?

直接追踪集成

反馈与特定的应用执行直接关联,在用户反应和系统性能之间建立了直接联系。

结构化数据模型

具有明确归属和理由的标准化格式可确保在您的整个应用中一致地收集反馈。

生产就绪

在 OSS MLflow 3.2.0+ 中可用,无外部依赖,专为高吞吐量生产环境设计。

完整的审计追踪

通过时间戳和用户归属追踪每一次反馈变化,从而能够随时间进行全面的质量分析。

分步指南:收集用户反馈

1. 设置带有追踪功能的 GenAI 应用

首先,创建一个使用 MLflow 的 OpenAI 自动日志记录功能自动生成追踪的简单应用。

import mlflow
from mlflow.entities import AssessmentSource, AssessmentSourceType
import openai

# Enable automatic tracing for OpenAI calls
mlflow.openai.autolog()

# Initialize your LLM client
client = openai.OpenAI()


def ask_question(question):
"""Simple Q&A application with automatic tracing."""
# This call is automatically traced by MLflow
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": "You are a helpful assistant. Answer questions clearly and concisely.",
},
{"role": "user", "content": question},
],
temperature=0.7,
)

answer = response.choices[0].message.content
return answer


# Generate some traces - each call creates a trace automatically
question = "What is machine learning?"
answer = ask_question(question)
print(f"Question: {question}")
print(f"Answer: {answer}")

# You can get the trace ID from the MLflow UI or search API
# For this example, we'll show how to collect feedback programmatically

2. 收集简单的“赞成/反对”反馈

实现基本的布尔值反馈收集。在实际应用中,您将从追踪系统中获取 trace_id。

def collect_thumbs_feedback(trace_id, is_helpful, user_id):
"""Collect simple thumbs up/down feedback from users."""
mlflow.log_feedback(
trace_id=trace_id,
name="user_satisfaction",
value=is_helpful,
rationale="User indicated response was helpful"
if is_helpful
else "User indicated response was not helpful",
source=AssessmentSource(
source_type=AssessmentSourceType.HUMAN, source_id=user_id
),
)
print(f"✓ Feedback recorded: {'👍' if is_helpful else '👎'}")


# Example: Collect feedback on a trace
trace_id = mlflow.get_last_active_trace_id()
collect_thumbs_feedback(trace_id, True, "user_123")

3. 在 MLflow UI 中查看反馈

收集反馈后,您可以在 MLflow UI 中查看它。

Feedback in MLflow UI

追踪详情页面显示附加到您追踪的所有反馈,便于分析用户满意度并识别应用性能中的模式。

4. 通过 UI 添加和更新反馈

用户也可以直接通过 MLflow UI 提供反馈。

创建新反馈

Create Feedback

添加额外反馈

Additional Feedback

这种协作方法既支持程序化反馈收集,也支持手动审查工作流。

反馈值类型

MLflow 反馈支持多种格式以匹配您的应用需求。

反馈类型描述用例示例
布尔型简单的 True/False 反馈赞成/反对,正确/不正确
数值型整数或浮点数评分1-5 星评分,置信度得分
类别型字符串分类“有帮助”、“中立”、“无帮助”
结构化具有多个维度的复杂对象详细的质量分解

MLflow 反馈收集最佳实践

从布尔型反馈开始

使用 MLflow 的布尔型反馈类型进行简单的“赞成/反对”收集。在使用 MLflow 的搜索 API 分析模式后,再扩展到数值评分或结构化反馈类型。

将反馈链接到最新的追踪

在追踪生成后立即收集反馈,此时交互上下文可用。MLflow 的直接追踪-反馈链接确保您始终拥有完整的执行上下文。

使用一致的命名约定

在所有追踪中标准化反馈名称,如“user_satisfaction”或“quality_rating”。这使得 MLflow 的搜索和聚合功能能够为您的应用提供有意义的见解。

正确使用来源归属

在 AssessmentSource 对象中设置有意义的 source_id 值,以追踪反馈提供者。MLflow 保存带有时间戳和来源归属的完整审计追踪。

结合程序化和 UI 收集

使用 MLflow 的 API 进行自动化收集,并使用 UI 进行手动审查。两种方法无缝集成,允许不同团队通过他们偏好的界面贡献反馈。

后续步骤