用户手册

用户手册 User Manual

有效提问 | 核心要素

  • Ai不是搜索引擎,如果你直接使用搜索引擎的那一套,你可能得到的回复不如百度。
  • AI中专业名词叫 Prompt(提示词工程),核心要素就三个:角色、任务、指令。

列如:你现在是一名精通python的语言专家,你的任务是使用专业的知识来为用户解决问题。

  • 如果你先告诉Ai它的角色、任务,那么在当前对话中获得到信息将会围绕该prompt来处理,得到的回复也会遵循你给他指定的内容。

如果还不明白可以通过我们提供的应用,去查看里面预设的对话内容,你将会学习到很多如何正确使用AI。

本文档用于解释 程序 的部分功能介绍和设计原则。


应用 (Mask)

1. 什么是应用?它和提示词的区别是什么?

应用 = 多个预设提示词 + 模型设置 + 对话设置。

其中预设提示词(Contextual Prompts)一般用于 In-Context Learning,用于让 ChatGPT 生成更加符合要求的输出,也可以增加系统约束或者输入有限的额外知识。

模型设置则顾名思义,使用此应用创建的对话都会默认使用对应的模型参数。

对话设置是与对话体验相关的一系列设置,我们会在下方的章节中依次介绍。

2. 如何添加一个预设应用?

通过新建对话,查看全部应用中右上角的新建按钮来添加

编辑步骤如下:

  1. 新建预设中有三个选项,user(用户)、system(系统)、assistant(AI)
  2. 给应用起个名字
  3. 隐藏预设对话——打开后使用该应用在对话框中不会显示你上面添加的预设对话,会在后台自动调用
  4. 模型参数,根据需求调整,不同模型效果不同,随机性可以限制ai发散思维,值越大回复越随机。其中话题新鲜度不建议与随机性同时使用。

对话 (Chat)

1. 对话框上方的按钮的作用

在默认状态下,将鼠标移动到按钮上,即可查看按钮的文字说明,我们依次介绍:

  • 对话设置:当前对话的设置,它与全局设置的关系,请查看下一小节的说明;
  • 颜色主题:点击即可在自动、暗黑、浅色之间轮换;
  • 快捷指令:项目内置的快捷填充预设提示词,也可以在对话框中输入 / 进行搜索;
  • 所有应用:进入应用页面;
  • 清除聊天:插入一个清除标记,标记上方的聊天将不会发给 GPT,效果相当于清除了当前对话,当然,你也可以再次点击该按钮,可取消清除;
  • 模型设置:更改当前对话的模型,注意,此按钮只会修改当前对话的模型,并不会修改全局默认模型。

2. 对话内设置与全局设置的关系

目前有两处设置入口:

  1. 页面左下角的设置按钮,进入后是全局设置页;
  2. 对话框上方的设置按钮,进入后是对话设置页。

在新建对话后,该对话的设置默认与全局设置保持同步,修改全局设置,则新建对话的对话内设置也会被同步修改。

一旦用户手动更改过对话内设置,则对话内设置将与全局设置断开同步,此时更改全局设置,将不会对该对话生效。

如果想恢复两者的同步关系,可以将“对话内设置 -> 使用全局设置”选项勾选。

3. 对话内设置项的含义

点开对话框上方的按钮,进入对话内设置,内容从上到下依次为:

  • 预设提示词列表:可以增加、删除、排序预设提示词
  • 角色头像:顾名思义
  • 角色名称:顾名思义
  • 隐藏预设对话:隐藏后,预设提示词不会出现在聊天界面
  • 使用全局设置:用于表示当前对话是否使用全局对话设置
  • 模型设置选项:剩余的选项与全局设置选项含义一致,见下一小节

4. 全局设置项的含义

  • model / temperature / top_p / max_tokens / presence_penalty / frequency_penalty 均为 ChatGPT 的设置参数,详情请查阅 OpenAI 官方文档,再次不再赘述;
  • 注入系统级提示信息、用户输入预处理:详情请看预设提示词
  • 附带历史消息数:用户每次输入消息并发送时,所携带的最近 n 条消息数量;
  • 历史消息长度压缩阈值:当已经产生的聊天字数达到该数值以后,则自动触发历史摘要功能;
  • 历史摘要:是否启用历史摘要功能。

5. 什么是历史摘要?

历史摘要功能,也是历史消息压缩功能,是保证长对话场景下保持历史记忆的关键,合理使用该功能可以在不丢失历史话题信息的情况下,节省所使用的 token。

由于 ChatGPT API 的长度限制,我们以 3.5 模型为例,它只能接受小于 4096 tokens 的对话消息,一旦超出这个数值,就会报错。

同时为了让 ChatGPT 理解我们对话的上下文,往往会携带多条历史消息来提供上下文信息,而当对话进行一段时间之后,很容易就会触发长度限制。

为了解决此问题,我们增加了历史记录压缩功能,假设阈值为 1000 字符,那么每次用户产生的聊天记录超过 1000 字符时,都会将没有被总结过的消息,发送给 ChatGPT,让其产生一个 100 字所有的摘要。

这样,历史信息就从 1000 字压缩到了 100 字,这是一种有损压缩,但已能满足大多数使用场景。

6. 什么时候应该关闭历史摘要?

历史摘要可能会影响 ChatGPT 的对话质量,所以如果对话场景是翻译、信息提取等一次性对话场景,请直接关闭历史摘要功能,并将历史消息数设置为 0。

7. 当用户发送一条消息时,有哪些信息被发送出去了?

当用户在对话框输入了一条消息后,发送给 ChatGPT 的消息,包含以下几个部分:

  1. 系统级提示词:用于尽可能贴近 ChatGPT 官方 WebUI 的使用体验,可在设置中关闭此信息;
  2. 历史摘要:作为长期记忆,提供长久但模糊的上下文信息;
  3. 预设提示词:当前对话内设置的预设提示词,用于 In-Context Learning 或者注入系统级限制;
  4. 最近 n 条对话记录:作为短期记忆,提供短暂但精确的上下文信息;
  5. 用户当前输入的消息。