# 问题分类

### **定义**

通过定义分类描述，问题分类器能够根据用户输入，使用 LLM 推理与之相匹配的分类并输出分类结果，向下游节点提供更加精确的信息。

***

### **场景**

常见的使用情景包括**客服对话意图分类、产品评价分类、邮件批量分类**等。

在一个典型的产品客服问答场景中，问题分类器可以作为知识库检索的前置步骤，对用户输入问题意图进行分类处理，分类后导向下游不同的知识库查询相关的内容，以精确回复用户的问题。

下图为产品客服场景的示例工作流模板：

<figure><img src="https://1288284732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCdDIVDY6AtAz028MFT4d%2Fuploads%2F6MBrOasr0hrrz8oAqxjD%2Fimage.png?alt=media&#x26;token=e3c647f9-9ea2-4b1e-b75f-0f57ba133693" alt=""><figcaption></figcaption></figure>

在该场景中我们设置了 3 个分类标签/描述：

* 分类 1 ：**与售后相关的问题**
* 分类 2：**与产品操作使用相关的问题**
* 分类 3 ：**其他问题**

当用户输入不同的问题时，问题分类器会根据已设置的分类标签 / 描述自动完成分类：

* “**iPhone 14 如何设置通讯录联系人？**” —> “**与产品操作使用相关的问题**”
* “**保修期限是多久？**” —> “**与售后相关的问题**”
* “**今天天气怎么样？**” —> “**其他问题**”

***

### 如何配置

<figure><img src="https://1288284732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCdDIVDY6AtAz028MFT4d%2Fuploads%2FDTPZf8fZBIY0BcloeXfY%2Fimage.png?alt=media&#x26;token=69583f5e-6cea-443c-b9d6-2b90d467840c" alt=""><figcaption></figcaption></figure>

**配置步骤：**

1. **选择输入变量**，指用于分类的输入内容，支持输入[文件变量](https://docs.dify.ai/zh-hans/guides/workflow/variables)。客服问答场景下一般为用户输入的问题 `sys.query`;
2. **选择推理模型**，问题分类器基于大语言模型的自然语言分类和推理能力，选择合适的模型将有助于提升分类效果；
3. **编写分类标签/描述**，你可以手动添加多个分类，通过编写分类的关键词或者描述语句，让大语言模型更好的理解分类依据。
4. **选择分类对应的下游节点**，问题分类节点完成分类之后，可以根据分类与下游节点的关系选择后续的流程路径。

#### **高级设置：**

**指令**：你可以在 **高级设置-指令** 里补充附加指令，比如更丰富的分类依据，以增强问题分类器的分类能力。

**记忆**：开启记忆后问题分类器的每次输入将包含对话中的聊天历史，以帮助 LLM 理解上文，提高对话交互中的问题理解能力。

**图片分析**：仅适用于具备图片识别能力的 LLM，允许输入图片变量。

**记忆窗口**：记忆窗口关闭时，系统会根据模型上下文窗口动态过滤聊天历史的传递数量；打开时用户可以精确控制聊天历史的传递数量（对数）。

**输出变量：**

`class_name` 存储了分类模型的预测结果。当分类完成后，这个变量会包含具体的类别标签，你可以在后续的处理节点中引用这个分类结果来执行相应的逻辑。
