Insights 会自动分析您的追踪数据,以检测使用模式、常见代理行为和故障模式,因此您无需手动审查数千条追踪记录。
Insights 使用分层分类来理解您的数据并突出显示可操作的趋势。
前提条件
- - A 模型配置 在您的工作区中设置 Insights。
- - 权限 在 LangSmith 中创建规则的权限(生成新 Insights 报告所需)。
- - 权限 在 LangSmith 中查看追踪项目的权限(查看现有 Insights 报告所需)。
生成您的第一个 Insights 报告
UI
- 导航至 **追踪项目** 在左侧菜单中选择一个追踪项目。
- 点击 **+新建** 在右上角,然后 **新建 Insights 报告** 为该项目生成新的洞察。
- 输入任务的名称。
- 如果你还没有, 在工作区设置中配置一个模型 以用于 Insights。
- 回答引导性问题,以将您的 Insights 报告聚焦于您想要了解代理的内容,然后点击 **运行作业**.
这将启动后台 Insights 报告。报告可能需要长达 30 分钟才能完成。
SDK
您可以使用以下方式对存储在 LangSmith 外部的数据生成 Insights 报告 Python SDK。这允许您分析来自生产系统、日志或其他来源的聊天历史记录。
当您调用 generate_insights(),SDK 将:
- 将您的聊天记录作为追踪上传到新的 LangSmith 项目。
- 根据上传的追踪生成 Insights 报告。
- 在 LangSmith UI.
from langsmith import Client
client = Client()
chat_histories = [
[
{"role": "user", "content": "how are you"},
{"role": "assistant", "content": "good!"},
],
[
{"role": "user", "content": "do you like art"},
{"role": "assistant", "content": "only Tarkovsky"},
],
]
report = client.generate_insights(
chat_histories=chat_histories,
name="Customer Support Topics - March 2024",
instructions="What are the main topics and questions users are asking about?",
openai_api_key=os.environ["OPENAI_API_KEY"], # optional if already set as workspace secret
)
# client.poll_insights(report=report)
了解结果
作业完成后,您可以导航到 **Insights** 选项卡,您将在其中看到 Insights 报告表。每个报告包含根据追踪项目中的特定追踪样本生成的洞察。
点击进入您的作业,查看按自动生成的类别组织整理的追踪。
您可以通过钻取类别和子类别来查看底层追踪、反馈和运行统计信息。
执行摘要
在每个报告的顶部,您会找到一个执行摘要,其中展示了在追踪中发现的最重要的模式。包括:
- - 关键发现,包含显示每种模式出现频率的百分比。
- - 可点击的引用(例如 #1、#2、#3),指向智能体认为与您的问题高度相关的追踪。
顶级类别
您的追踪会自动分组到顶级类别中,这些类别代表您数据中最广泛的模式。
分布条形图显示每种模式的发生频率,让您轻松发现比预期更多或更少的行为。
每个类别都有简短的描述,并显示其包含的追踪的聚合指标,包括:
- - 典型追踪统计(如错误率、延迟、成本)
- - 来自评估器的反馈分数
- - 属性 作为作业的一部分提取
子类别
点击任何类别会显示子类别的细分,让您更细致地了解该类别追踪中的交互模式。
在 Chat Langchain 示例中,在 **数据与检索** 下有子类别,例如 **向量存储** 和 **数据摄取**.
单个追踪
您可以通过点击查看分配给每个类别或子类别的追踪,访问追踪表格。从那里,您可以点击任何追踪查看完整的对话详情。
配置作业
您可以使用自动生成的流程创建洞察报告,也可以手动配置。
自动生成配置
- 打开 **新建洞察** 并确保 **自动** 开关处于激活状态。
- 回答关于您的智能体目的、您想了解什么以及追踪结构如何的自然语言问题。洞察会将您的回答转换为草稿配置(作业名称、摘要提示、属性和采样默认值)。
- 选择提供商,然后点击 **生成配置** 进行预览,或点击 **运行作业** 立即启动。
提供有用的上下文
为获得最佳效果,请为每个提示写一两句话,为洞察提供所需的上下文——您想了解什么,哪些信号或字段最重要,以及您已知哪些内容不有用。您越清楚地说明智能体的功能和追踪结构,洞察就能越具体、越可操作,并与您对数据的理解方式保持一致。
描述您的追踪
解释您的数据是如何组织的:这些是单次运行还是多轮对话?哪些输入和输出包含关键信息?这有助于洞察生成专注于重要内容的摘要提示和属性。您也可以直接从 摘要提示 部分(如需要)
选择模型
Insights 使用两个模型:
- 思考模型:执行聚类步骤(能力更强,成本更高)。
- 摘要模型:生成每个跟踪的摘要(更快,成本更低)。
两个模型均从您在工作区中配置的提供商中选择。当您在 模型配置中为 Insights 启用了特定模型后,您可以单独选择它们。如果未配置单独的模型,您需要选择一个提供商(OpenAI 或 Anthropic),Insights 将使用该提供商的默认模型。
为获得最佳效果,请为两个角色使用来自同一提供商的模型。
手动配置
手动配置让您拥有更多控制权——例如,预定义您希望将数据分组到的类别,或定位与特定反馈分数和筛选条件匹配的跟踪。
选择跟踪
- 样本大小:要分析的最大跟踪数量(限制为 1,000)。
- 时间范围:跟踪将从此时间范围中采样。
- 筛选条件:其他跟踪筛选条件。当您调整筛选条件时,您将看到有多少跟踪符合您的条件。
类别
默认情况下,顶级类别是从底层跟踪自动自下而上生成的。
在某些情况下,您预先知道特定感兴趣的类别,并希望作业将跟踪分配到这些预定义的类别中。
配置中的 **类别** 部分允许您通过枚举要使用的顶级类别的名称和描述来实现此目的。
子类别仍由算法在预定义的顶级类别内自动生成。
当作业完成时,发现的顶级类别会自动保存回配置——但仅在配置之前没有定义类别的情况下。这样后续的定期运行将重复使用这些类别以保持一致性。
摘要提示词
作业的第一步是创建每个跟踪的简短摘要。然后对这些摘要进行分类。
在摘要中提取正确的信息对于获得有用的类别至关重要。
您可以编辑用于生成这些摘要的提示词。编辑提示词时需要考虑两个方面:
- - 摘要说明:任何不在跟踪摘要中的信息都不会影响生成的类别,因此请确保提供清晰的说明,告知从每个跟踪中提取哪些重要信息。
- - 跟踪内容:使用 Mustache 格式指定每个跟踪的哪些部分被传递给摘要器。包含大量输入和输出的大型跟踪可能成本高昂且嘈杂。将提示词精简为仅包含跟踪中最相关的部分可以改善结果。
您必须使用以下至少一个模板变量来指定要发送给摘要器的每个跟踪的部分:
| 变量 | 描述 | 示例 |
|---|---|---|
run.inputs | 最近根运行的输入 | {{run.inputs}} |
run.outputs | 最近根运行的输出 | {{run.outputs}} |
run.error | 错误字符串(如果运行失败) | {{run.error}} |
run.feedback | 所有反馈分数的 JSON blob | {{run.feedback}} |
run.feedback.<key> | 按键获取的特定反馈分数 | {{run.feedback.correctness}} |
all_thread_messages | 线程的完整消息历史(仅适用于启用的项目 线程) | {{all_thread_messages}} |
您可以使用点号表示法访问嵌套字段。例如, {{run.inputs.foo.bar}} 仅包括 bar 字段在 foo 中最后一个运行的输入。
属性
除了摘要之外,您还可以定义要从每个轨迹中提取的其他字符串、数字和布尔属性。 这些属性将影响分类步骤——具有相似属性值的轨迹往往会归为一类。 您还可以查看每个类别的这些属性聚合。
例如,您可能希望从每个轨迹中提取属性 user_satisfied: boolean 来引导算法朝向将正面和负面用户体验分开的类别,并查看每个类别的平均用户满意度。
筛选属性
您可以使用 filter_by 参数对布尔属性进行预过滤,在生成洞察之前筛选轨迹。启用后,只有属性评估为 true 的轨迹才会被纳入分析。
当您希望将洞察报告重点放在特定的轨迹子集时,这非常有用。例如,仅分析错误、仅检查英语对话,或仅包括符合特定质量标准的轨迹。
工作原理: - 在创建 Insights 配置时,向任何布尔属性添加 "filter_by": true 。 - 在摘要生成期间,大语言模型会根据属性描述评估每个轨迹。 - 属性为 false 或缺失的轨迹会在生成洞察之前被排除。
安排洞察报告
安排洞察报告按定期周期自动运行。创建或编辑配置时,使用 **安排** 部分选择:
- 每日:每天 8:00 UTC 运行。
- 每周一:每周一 8:00 UTC 运行。
- 自定义:输入您自己的 cron 表达式(UTC 时间)。
每个计划运行都会使用您保存的配置生成新报告。时间范围动态计算。例如,“最近 24 小时”始终分析执行时最近的 24 小时窗口。
保存您的配置
您可以选择使用 **保存为** button. 保存配置以供将来使用。如果您希望随时间比较洞察报告以识别用户和代理行为的变化,这尤其有用。
在创建新的 Insights 报告时,通过窗格左上角的下拉菜单选择之前保存的配置。