> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-docs-new-agent-experience.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 聊天助手

> 通过模型和提示词构建对话式应用的最简单方式

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](/en/cloud/use-dify/build/chatbot)。

聊天助手是一种对话式应用，用户通过聊天界面与模型进行交互。

适用于需要来回交互但不需要工具调用或多步工作流的任务。例如，构建一个基于团队知识库的内部问答助手。

<Info>
  聊天助手每次对话最多保留 500 条消息或 2,000 token 的历史记录。超出任一限制后，最早的消息将被移除以为新消息腾出空间。
</Info>

<Tip>
  聊天助手还支持对话开场白、后续建议等可选功能。详见 [应用工具箱](/zh/cloud/use-dify/build/additional-features)。
</Tip>

## 配置

### 编写提示词

提示词告诉模型该做什么、如何回应以及需要遵循的约束条件。它塑造了模型在整个对话中的行为方式，因此可以将其理解为定义一个持续的角色，而非描述一次性任务。

以下是编写有效提示词的一些技巧：

* **定义角色**：描述模型应扮演的角色及其应使用的语气。

* **指定输出格式**：描述你期望的结构、长度或风格。

* **设定约束**：告诉模型应避免什么或遵循什么规则。

#### 使用变量创建动态提示词

为了让聊天助手适应不同用户或场景而无需每次重写提示词，可以添加变量来预先收集必要的信息。

变量是提示词中的占位符。每个变量都会显示为一个输入字段，用户在对话开始前填写，其值在运行时注入提示词。用户也可以在对话过程中更新变量值，提示词会随之调整。

例如，入职助手可以使用 `role` 和 `language` 来定制回复：

```text wrap theme={null}
你是一名入职助手，负责帮助新加入的 {{role}} 了解公司流程和政策。回答要友好、简洁，使用 {{language}} 作答。
```

<Tip>
  编写提示词时，输入 `/` > **添加新变量** 即可快速插入命名占位符。你可以稍后在 **变量** 部分配置其详细信息。
</Tip>

选择与预期输入匹配的变量类型：

<Tabs>
  <Tab title="文本">
    接受最多 256 个字符。适用于姓名、电子邮件地址、标题或任何适合单行显示的简短文本输入。
  </Tab>

  <Tab title="段落">
    允许无长度限制的长文本输入，为用户提供多行文本区域以输入详细描述。
  </Tab>

  <Tab title="下拉选项">
    显示带有预定义选项的下拉菜单。
  </Tab>

  <Tab title="数字">
    仅接受数字输入。适用于数量、评分、ID 或任何需要数学处理的数据。
  </Tab>

  <Tab title="复选框">
    提供简单的是/否选项。用户勾选时输出为 `true`，否则为 `false`。适用于确认或任何需要二选一的场景。
  </Tab>

  <Tab title="基于 API 的变量">
    在运行时从外部 API 获取变量值，而非由用户输入。

    当提示词需要来自外部来源的动态数据（如实时天气状况或数据库记录）时使用。详见 [自定义端点](/zh/cloud/use-dify/workspace/api-extension/api-extension)。
  </Tab>
</Tabs>

<Info>
  **显示名称** 是终端用户看到的每个输入字段的名称。
</Info>

#### 使用 AI 生成或改进提示词

如果不确定从何开始或想优化现有提示词，点击 **生成** 让 LLM 帮助你起草。

从零开始描述你的需求，或引用 `current_prompt` 并指定需要改进的内容。要获得更精准的结果，可以在 **理想输出** 中添加示例。

每次生成都会保存为一个版本，因此你可以自由尝试和回滚。

### 基于你的数据生成回复

要让模型的回复基于你自己的数据而非通用知识，可以添加知识库。

每当用户发送消息时，该消息会作为搜索查询从知识库中检索相关内容，然后作为上下文注入提示词供模型使用。

#### 配置应用级检索设置

要微调检索结果的处理方式，点击 **检索设置**。

<Info>
  检索设置有两个层级，即知识库级别和应用级别。

  可以将它们理解为两个连续的过滤器：知识库设置决定初始结果池，应用设置进一步重排序结果或缩小结果范围。
</Info>

* **重排序设置**

  * **权重设置**

    重排序过程中语义相似度与关键词匹配之间的相对权重。较高的语义权重偏向语义相关性，较高的关键词权重偏向精确匹配。

    权重设置仅在所有已添加的知识库均以 **高质量** 模式索引时可用。

  * **重排序模型**

    重排序模型会根据结果与查询的相关性重新打分和排序所有结果。

    <Note>
      如果添加了多模态知识库，还需选择多模态重排序模型（标有 **Vision** 标签）。否则，检索到的图片将被排除在重排序和最终输出之外。
    </Note>

* **Top K**

  重排序后返回的最大结果数量。

  选择重排序模型后，此值将根据模型的最大输入容量（模型一次能处理的文本量）自动调整。

* **分数阈值**

  返回结果的最低相似度分数。低于此阈值的结果将被排除。使用较高阈值获得更严格的相关性，使用较低阈值包含更广泛的匹配。

#### 在特定文档中搜索

默认情况下，检索会在整个知识库中进行。要将检索限制在特定文档中，可启用手动或自动元数据过滤。

这可以提高检索精度，特别是当知识库较大或包含不同场景的内容时。

关于创建和管理文档元数据，详见 [元数据](/zh/cloud/use-dify/knowledge/metadata)。

### 处理多模态输入

要允许终端用户上传文件，选择具有相应多模态能力的模型。相关文件类型开关（**视觉**、**音频** 或 **文档**）会在模型支持时显示，你可以根据需要启用。

<Tip>
  你可以通过模型的标签快速识别其支持的模态。

  <Frame>
    <img src="https://mintcdn.com/dify-6c0370d8-docs-new-agent-experience/jyDkeP_GDYJzJ81D/images/use-dify/workflow/model-multimodal-tag.png?fit=max&auto=format&n=jyDkeP_GDYJzJ81D&q=85&s=395ccd62839e3758f5261ae07ed262a6" alt="模型标签" width="1216" height="756" data-path="images/use-dify/workflow/model-multimodal-tag.png" />
  </Frame>
</Tip>

点击 **视觉** 的 **设置** 配置文件的接受和处理方式。上传设置适用于所有已启用的文件类型。

* **分辨率**：仅控制 **图片** 处理的细节级别。

  * **高**：对复杂图片有更高的准确性，但消耗更多 token

  * **低**：对简单图片处理更快，消耗更少 token

* **上传方式**：选择用户是通过设备上传、粘贴 URL 还是两者兼可。

* **上传数量限制**：用户每条消息可上传的最大文件数量。

## 调试与预览

在右侧的预览面板中，实时测试你的聊天助手。选择一个最适合你任务的模型，输入消息并发送，查看模型的响应。

选择模型后，你可以调整其参数来控制生成方式。可用参数和预设因模型而异。

<Tip>
  要比较不同模型的输出，点击 **多个模型进行调试** 同时运行最多 4 个模型。

  <Frame>
    <img src="https://mintcdn.com/dify-6c0370d8-docs-new-agent-experience/jyDkeP_GDYJzJ81D/images/use-dify/workflow/multiple-model-debug.png?fit=max&auto=format&n=jyDkeP_GDYJzJ81D&q=85&s=fbac8d404245a5a19720eea153e71c10" alt="多个模型进行调试" width="1100" height="1112" data-path="images/use-dify/workflow/multiple-model-debug.png" />
  </Frame>
</Tip>

## 发布

对结果满意后，点击 **发布** 使应用可用。详见 [发布](/zh/cloud/use-dify/publish/README) 了解完整的发布选项。
