本文档详细介绍了 GPT4All 应用程序中的配置系统,涵盖了各种设置类别、它们对功能的影响以及它们如何在整个应用程序中进行管理。有关模型管理的具体信息,请参阅模型管理。
GPT4All 拥有一个全面的设置系统,该系统分为三个主要类别,每个类别包含相关的配置选项。这些设置使用 Qt 内置的 Settings 组件在应用程序启动之间持久存储。
来源: gpt4all-chat/main.qml405-435 gpt4all-chat/qml/MySettingsStack.qml1-86
通过应用程序用户界面中的专用“设置”视图访问设置系统。此视图实现为具有不同设置类别选项卡的堆叠布局。
来源: gpt4all-chat/main.qml404-435 gpt4all-chat/qml/MySettingsTab.qml1-80
“应用程序设置”选项卡控制全局应用程序行为和外观。它在 ApplicationSettings.qml 文件中实现,并包含各种类型的配置选项。
应用程序支持多种主题选项,这些选项会影响视觉样式
| 设置 | 目的 | 选项 |
|---|---|---|
| 主题 | 设置颜色方案 | 浅色、深色、旧版深色 |
| 字体大小 | 控制文本大小 | 小、中、大 |
选择主题后,Theme.qml 组件会将适当的颜色应用于应用程序中的各种 UI 元素。例如:
来源: gpt4all-chat/qml/ApplicationSettings.qml95-172 gpt4all-chat/qml/Theme.qml1-1213
应用程序支持多种语言和地区,可以将其配置为使用系统地区或特定语言
来源: gpt4all-chat/qml/ApplicationSettings.qml173-220
GPT4All 允许配置用于文本生成的计算设备
| 设置 | 目的 | 选项 |
|---|---|---|
| 设备 | 选择计算设备 | 应用程序默认、CPU、CUDA、Metal 等。 |
| CPU 线程 | 推理的 CPU 线程数 | 用户定义的整数 |
来源: gpt4all-chat/qml/ApplicationSettings.qml221-271 gpt4all-chat/qml/ApplicationSettings.qml457-488
用户可以设置用于新聊天的默认模型
来源: gpt4all-chat/qml/ApplicationSettings.qml272-336
其他应用程序设置包括:
| 设置 | 目的 | 类型 |
|---|---|---|
| 下载路径 | 存储模型和 LocalDocs 的位置 | 目录路径 |
| 启用数据湖 | 将聊天和反馈发送到 GPT4All | 布尔值 |
| 系统托盘 | 关闭时最小化到系统托盘 | 布尔值 |
| 本地 API 服务器 | 运行兼容 OpenAI 的 API 服务器 | 布尔值 |
| 服务器端口 | 本地 API 服务器的端口 | 整型 |
来源: gpt4all-chat/qml/ApplicationSettings.qml366-409 gpt4all-chat/qml/ApplicationSettings.qml412-435 gpt4all-chat/qml/ApplicationSettings.qml489-554
“模型设置”选项卡通过 ModelSettings.qml 组件提供自定义单个模型行为的选项。
“模型设置”选项卡允许用户从已安装模型下拉列表中选择要配置的模型
来源: gpt4all-chat/qml/ModelSettings.qml46-124
模型设置提供文本区域来配置:
系统消息:设置上下文或指导模型行为
聊天模板:Jinja 模板将聊天转换为模型输入
聊天名称提示:自动生成聊天名称
建议的后续提示:生成后续问题
设置 UI 包括模板的验证和错误报告,确保它们根据预期的语法正确格式化。
来源: gpt4all-chat/qml/ModelSettings.qml181-470
在 LocalDocsSettings.qml 中实现的 LocalDocs 设置选项卡配置了应用程序如何与本地文档集成。
控制哪些文档被索引以及如何索引
来源: gpt4all-chat/qml/LocalDocsSettings.qml49-91
控制如何生成文档嵌入
| 设置 | 目的 | 类型 |
|---|---|---|
| 使用 Nomic 嵌入 API | 使用远程 API 而不是本地模型 | 布尔值 |
| Nomic API 密钥 | Nomic 嵌入服务的 API 密钥 | 文本 |
| 嵌入设备 | 生成嵌入的计算设备 | 选择 |
来源: gpt4all-chat/qml/LocalDocsSettings.qml110-202
控制如何呈现和检索文档信息
| 设置 | 目的 | 类型 |
|---|---|---|
| 显示来源 | 在响应中显示文档来源 | 布尔值 |
| 文档片段大小 | 每个文档块的字符数 | 整型 |
| 最大文档片段 | 每个提示的片段数量 | 整型 |
来源: gpt4all-chat/qml/LocalDocsSettings.qml221-313
GPT4All 中的设置系统是使用 QML 组件和 C++ 后端代码的组合构建的。
来源: gpt4all-chat/main.qml717-730 gpt4all-chat/qml/MySettingsStack.qml1-86 gpt4all-chat/qml/MySettingsTab.qml1-80
应用程序的系统托盘功能受设置控制
来源: gpt4all-chat/main.qml26-61
设置 UI 使用了一系列自定义组件以保持一致的样式和行为
这些组件在整个设置界面中保持一致的外观和感觉,并处理对 MySettings 单例的正确更新,当值发生变化时。
来源: gpt4all-chat/qml/MyButton.qml1-44 gpt4all-chat/qml/MyToolButton.qml1-59
更改主题设置时,外观会通过 Theme 单例进行更新,该单例根据当前主题设置提供颜色值
来源: gpt4all-chat/qml/Theme.qml612-621
当加载模型时,系统消息、聊天模板和其他模型特定设置将从 MySettings 中检索,并影响提示的处理和响应的生成方式。
来源: gpt4all-chat/qml/ModelSettings.qml237-273 gpt4all-chat/qml/ChatView.qml1-44
GPT4All 的设置和配置系统提供了一种全面的方式来定制应用程序行为、模型交互和本地文档集成。这些设置被组织成逻辑类别,并具有灵活的用户界面,可以轻松管理并在应用程序启动之间持久存储。
该设置架构结合使用了 QML 组件和 C++ 后端代码,其中 MySettings 单例作为在整个应用程序中访问和修改设置的中心点。