# 用户手册 User Manual > No english version yet, please read this doc with ChatGPT or other translation tools. 本文档用于解释 NextChat 的部分功能介绍和设计原则。 ## 面具 (Mask) ### 什么是面具?它和提示词的区别是什么? 面具 = 多个预设提示词 + 模型设置 + 对话设置。 其中预设提示词(Contextual Prompts)一般用于 In-Context Learning,用于让 ChatGPT 生成更加符合要求的输出,也可以增加系统约束或者输入有限的额外知识。 模型设置则顾名思义,使用此面具创建的对话都会默认使用对应的模型参数。 对话设置是与对话体验相关的一系列设置,我们会在下方的章节中依次介绍。 ### 如何添加一个预设面具? 目前仅能够通过编辑源代码的方式添加预设面具,请根据需要编辑 [mask](../app/masks/) 目录下对应语言的文件即可。 编辑步骤如下: 1. 在 NextChat 中配置好一个面具; 2. 使用面具编辑页面的下载按钮,将面具保存为 JSON 格式; 3. 让 ChatGPT 帮你将 json 文件格式化为对应的 ts 代码; 4. 放入对应的 .ts 文件。 后续会增加使用旁加载的方式加载面具。 ## 对话 (Chat) ### 对话框上方的按钮的作用 在默认状态下,将鼠标移动到按钮上,即可查看按钮的文字说明,我们依次介绍: - 对话设置:当前对话的设置,它与全局设置的关系,请查看下一小节的说明; - 颜色主题:点击即可在自动、暗黑、浅色之间轮换; - 快捷指令:项目内置的快捷填充预设提示词,也可以在对话框中输入 / 进行搜索; - 所有面具:进入面具页面; - 清除聊天:插入一个清除标记,标记上方的聊天将不会发给 GPT,效果相当于清除了当前对话,当然,你也可以再次点击该按钮,可取消清除; - 模型设置:更改当前对话的模型,注意,此按钮只会修改当前对话的模型,并不会修改全局默认模型。 ### 对话内设置与全局设置的关系 目前有两处设置入口: 1. 页面左下角的设置按钮,进入后是全局设置页; 2. 对话框上方的设置按钮,进入后是对话设置页。 在新建对话后,该对话的设置默认与全局设置保持同步,修改全局设置,则新建对话的对话内设置也会被同步修改。 一旦用户手动更改过对话内设置,则对话内设置将与全局设置断开同步,此时更改全局设置,将不会对该对话生效。 如果想恢复两者的同步关系,可以将“对话内设置 -> 使用全局设置”选项勾选。 ### 对话内设置项的含义 点开对话框上方的按钮,进入对话内设置,内容从上到下依次为: - 预设提示词列表:可以增加、删除、排序预设提示词 - 角色头像:顾名思义 - 角色名称:顾名思义 - 隐藏预设对话:隐藏后,预设提示词不会出现在聊天界面 - 使用全局设置:用于表示当前对话是否使用全局对话设置 - 模型设置选项:剩余的选项与全局设置选项含义一致,见下一小节 ### 全局设置项的含义 - model / temperature / top_p / max_tokens / presence_penalty / frequency_penalty 均为 ChatGPT 的设置参数,详情请查阅 OpenAI 官方文档,再次不再赘述; - 注入系统级提示信息、用户输入预处理:详情请看 [https://github.com/Yidadaa/ChatGPT-Next-Web/issues/2144](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/2144) - 附带历史消息数:用户每次输入消息并发送时,所携带的最近 n 条消息数量; - 历史消息长度压缩阈值:当已经产生的聊天字数达到该数值以后,则自动触发历史摘要功能; - 历史摘要:是否启用历史摘要功能。 ### 什么是历史摘要? 历史摘要功能,也是历史消息压缩功能,是保证长对话场景下保持历史记忆的关键,合理使用该功能可以在不丢失历史话题信息的情况下,节省所使用的 token。 由于 ChatGPT API 的长度限制,我们以 3.5 模型为例,它只能接受小于 4096 tokens 的对话消息,一旦超出这个数值,就会报错。 同时为了让 ChatGPT 理解我们对话的上下文,往往会携带多条历史消息来提供上下文信息,而当对话进行一段时间之后,很容易就会触发长度限制。 为了解决此问题,我们增加了历史记录压缩功能,假设阈值为 1000 字符,那么每次用户产生的聊天记录超过 1000 字符时,都会将没有被总结过的消息,发送给 ChatGPT,让其产生一个 100 字所有的摘要。 这样,历史信息就从 1000 字压缩到了 100 字,这是一种有损压缩,但已能满足大多数使用场景。 ### 什么时候应该关闭历史摘要? 历史摘要可能会影响 ChatGPT 的对话质量,所以如果对话场景是翻译、信息提取等一次性对话场景,请直接关闭历史摘要功能,并将历史消息数设置为 0。 ### 当用户发送一条消息时,有哪些信息被发送出去了? 当用户在对话框输入了一条消息后,发送给 ChatGPT 的消息,包含以下几个部分: 1. 系统级提示词:用于尽可能贴近 ChatGPT 官方 WebUI 的使用体验,可在设置中关闭此信息; 2. 历史摘要:作为长期记忆,提供长久但模糊的上下文信息; 3. 预设提示词:当前对话内设置的预设提示词,用于 In-Context Learning 或者注入系统级限制; 4. 最近 n 条对话记录:作为短期记忆,提供短暂但精确的上下文信息; 5. 用户当前输入的消息。