本指南介绍如何在 Discourse AI 中配置情感和情绪分类,并使用报告来探索社区帖子中的模式。
所需用户等级:配置需要管理员权限;查看报告需要管理员或版主权限。
情感和情绪分类有助于你探索社区讨论中的模式:
- 情感 将帖子分类为正面、中性或负面。
- 情绪 在 28 个标签上分配分数,包括感激、好奇、愤怒和悲伤。
这是两种独立的功能。你可以启用其中一种或两种都启用,并为每种功能选择不同的分类后端。报告统计的是已分类的帖子数量,而不是独立的人或个性类型。使用它们来查找值得阅读的讨论,而不是作为理解上下文内容的替代品。
开始前
你需要通过 discourse_ai_enabled 启用 Discourse AI,并配置分类后端。
由 Discourse 托管? 你的站点可能已经预置了专用的分类端点。在更改之前,请检查现有配置。如果你需要关于可用性、端点配置或回填限制的帮助,请联系 team@discourse.org。
自托管? 配置兼容的专用端点、配备语言模型的 AI 代理或决策模型。仅启用该功能并不提供推理服务。
在启用自动处理之前,请查看提供商的隐私政策、保留规则和费用。分类会将帖子文本发送到所选后端。下面的截图使用测试站点上的虚构帖子和决策模型;它们并不推荐该提供商用于私密社区内容。
配置情感和情绪
- 打开 管理员 → 插件 → AI → 功能。
- 打开“情感和情绪”。
- 在“情感”下,如果你想要正面、中性及负面分类,请选择“已启用”。这控制
ai_sentiment_enabled。 - 选择其“后端”,并按照下文所述配置相应的端点、代理或模型。
- 在“情绪”下,如果你想要情绪分类,请选择“已启用”。这控制
ai_sentiment_emotion_enabled。 - 选择其后端并独立配置它。
- 设置下一部分中描述的后台处理限制。
- 点击“提交”并检查所选内容是否已保存。
此示例对两种功能都使用决策模型。“每小时帖子数”故意设置为 0,以便在测试期间暂停自动扫描。使用正值以自动处理新帖子和历史帖子。
使用专用分类端点
对于每个你想使用专用模型运行的功能,选择“专用分类端点”。按照“配置专用分类端点”进入 ai_sentiment_model_configs 设置。
参考专用模型如下:
| 功能 | 模型 |
|---|---|
| 情感 | cardiffnlp/twitter-roberta-base-sentiment-latest |
| 情绪 | SamLowe/roberta-base-go_emotions |
每个配置条目识别其 classification_type(sentiment 或 emotion)、model_name、endpoint 和 api_key。为你使用的每个专用分类器提供一个单独的条目。保持凭据私密;不要将其包含在支持帖子或截图中。
有关推理服务器部署,请参阅 为 Discourse AI 自托管情感和情绪。使用上述控件单独启用并选择每个功能。
专用后端期望一个兼容的分类 API。将 Anthropic、OpenAI 聊天或 Azure 语言端点复制到此设置中并不能使其兼容。在其他地方对语言模型成功的连接测试并不能测试专用情感端点。
使用 AI 代理或决策模型
对于“LLM 代理”,选择一个配备已配置语言模型的适当分类代理。Discourse 包含情感和情绪分类代理。通用的对话代理不能替代配置为返回预期标签分数的代理。
对于“决策模型”,首先 配置并测试兼容的决策模型,然后为每个已启用的功能选择它。决策模型不需要单独的对话语言模型进行此分类。
代理和决策模型请求可能会产生提供商费用或消耗积分。在将其分配给自动处理的功能之前,请查看所选模型的数据处理规则。
控制处理和历史覆盖范围
计划任务每 五分钟 检查一次缺少分类的帖子。新帖子和历史帖子共享此扫描;结果不一定在发布后立即提供。数据出现前没有帖子数量或天数的最低限制:一个成功分类的帖子就可以贡献数据。
| 控制 | 站点设置 | 默认值 | 效果 |
|---|---|---|---|
| 每小时帖子数 | ai_sentiment_backfill_maximum_posts_per_hour |
240 |
每小时处理的大致帖子数量。0 停止计划扫描,包括新帖子。 |
| 帖子年龄限制(天数) | ai_sentiment_backfill_post_max_age_days |
60 |
扫描在此年龄窗口内创建的帖子。0 意味着今天,而不是无限历史。 |
增加年龄限制以包含更旧的帖子。计划任务随时间处理缺失的结果;选择较旧的报告日期范围本身不会对该历史进行分类。
速率是近似值,不是精确的请求或支出上限。启用两个分类器可能会导致每个帖子发出两次请求。失败的请求或拒绝可以被重试。编辑后的帖子会单独检查,不受计划扫描的速率或年龄限制的控制。
私人消息、已删除的帖子、已删除的话题和非普通帖子类型会被排除在计划的回填扫描之外。扫描器和报告中的 PM 排除并不能保证所有分类路径都如此:编辑后帖子的作业不应用相同的 PM 过滤器。在配置外部提供商之前请考虑到这一点。
按类别或标签探索情感
- 打开 管理员 → 报告 → 情感分析,或在你的站点上访问
/admin/reports/sentiment_analysis。 - 选择开始和结束日期。
- 选择“类别”或“标签”以对结果进行分组。
- 使用相应的类别或标签过滤器来缩小结果范围。类别过滤还提供了一个包含子类别的选项。
- 阅读每组的总数及其正面、负面和中性的细分。
- 点击某组的行以检查其图表和底层帖子。
该示例包含九个已分类的帖子:三个正面,三个负面和三个中性。中性帖子包含在此报告中。
在详细视图中:
- 选择“全部”、“正面”、“中性”或“负面”以过滤已加载的帖子。
- 打开帖子的主题以阅读周围的讨论。
- 使用图表旁边的链接图标复制该报告视图的 URL。收件人仍需要工作人员访问权限。
- 点击“返回”以回到分组结果。
报告日期指的是帖子创建的时间,而不是分类运行的时间。如果主题有多个标签,一个帖子可以贡献给多个标签组,因此添加标签总数可能会多次计算同一个帖子。
阅读整体情感趋势
从 管理员 → 报告 打开“整体情感”报告,或访问 /admin/reports/overall_sentiment。
分数计算方式为:
正面帖子数量 − 负面帖子数量
要使帖子计入该组,正面或负面分数必须 大于 0.6。如果均未超过阈值,分组报告将把该帖子视为中性。阈值是固定的;没有站点设置可以更改它。
整体情感是净帖子计数,不是平均概率或快乐百分比。三个正面帖子和三个负面帖子产生 0 的整体分数,无论有多少中性帖子。在将平坦趋势解释为缺乏强烈观点之前,请检查分组细分和底层讨论。
探索情绪
每种情绪在 管理员 → 报告 下都有一个报告。例如,访问 /admin/reports/emotion_anger 查看“愤怒”或访问 /admin/reports/emotion_curiosity 查看“好奇”。选择日期范围和每日、每周或每月的分组来探索趋势。
情绪报告统计那些该标签分数 大于 0.1 的帖子。此阈值也是固定的。同一个帖子可以有多种符合条件的情绪,因此情绪总数不是互斥的。
你还可以按情绪过滤主题。访问 /filter?q=order:emotion_anger 查找匹配的主题,排名依据是符合条件的愤怒分类帖子数量,而不是平均情绪分数。使用 order:emotion_anger-asc 来反向排序。如果没有 activity-after: 过滤器,此排序统计的是过去一年中符合条件的帖子。常规主题列表访问权限仍然适用。
可用情绪标签
钦佩、娱乐、愤怒、恼怒、批准、关怀、困惑、好奇、渴望、失望、不赞成、厌恶、尴尬、兴奋、恐惧、感激、悲伤、喜悦、爱、紧张、中性、乐观、自豪、领悟、解脱、悔恨、悲伤和惊讶。
了解局限性
- 分类依赖于模型。 讽刺、引用材料、专业术语和多语言讨论可能会被误解。语言覆盖范围和准确性取决于你选择的模型。不同后端的分数不一定经过相同校准。
- 报告仅涵盖存储的结果。 已启用的功能如果没有工作的后端、暂停处理或历史覆盖不足,可能会产生空或不完整的报告。
- 重用现有分类。 编辑已分类的帖子不会自动替换其结果。在同一后端内更改所选代理或决策模型也不会重新分类现有结果。
- 更改后端会更改报告的结果来源。 旧结果不会转换为所选后端。在缺失分类处理期间,报告可能显示为空。
- 报告排除私人消息。 此报告排除项与上述数据处理限制是分开的。
排查缺失或意外的结果
| 问题 | 检查内容 |
|---|---|
| 启用后无结果 | 确认相关功能已启用,其后端已配置,“每小时帖子数”为正值,并且后台作业正在运行。允许时间为五分钟扫描和处理队列。 |
| 情感有效但情绪为空 | 单独启用并配置“情绪”。仅限情感的专用端点不提供情绪分类。 |
| 较旧日期无结果 | 增加帖子年龄限制,允许处理时间,并检查报告范围是否包含帖子的创建日期。 |
| 专用端点返回错误 | 检查其 URL、凭据、模型和响应格式。适配器期望一个标签和分数的扁平数组,情感标签如 positive、neutral 和 negative,而不是任意聊天响应或 LABEL_0 风格的标签。 |
| 无法访问私有网络端点 | 检查连接,并在需要时,仅将受信任的推理端点主机名或 IP 添加到 allowed_internal_hosts。不要广泛禁用服务器端请求伪造保护。 |
| 编辑或模型选择后结果未变化 | 重用现有结果。不要假设编辑内容或保存另一个模型会安排完整重新分类。 |
| 过滤器显示的帖子少于计数 | 计数描述整个组,而情感标签页过滤已加载的帖子。检查是否有更多结果可加载,并在调查差异时打开原始主题。 |
管理员可以在 管理员 → 插件 → AI → 日志 中查看代理和决策模型请求记录。检查 /logs 以查找后台分类错误,包括专用端点故障。将日志内容视为敏感信息:它们可能包含帖子文本和模型响应。在共享诊断信息之前删除凭据和私密内容。



