菜单

设置和配置

相关源文件

本文档详细介绍了 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

系统消息和模板

模型设置提供文本区域来配置:

  1. 系统消息:设置上下文或指导模型行为

  2. 聊天模板:Jinja 模板将聊天转换为模型输入

  3. 聊天名称提示:自动生成聊天名称

  4. 建议的后续提示:生成后续问题

设置 UI 包括模板的验证和错误报告,确保它们根据预期的语法正确格式化。

来源: gpt4all-chat/qml/ModelSettings.qml181-470

LocalDocs 设置

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 组件

设置 UI 使用了一系列自定义组件以保持一致的样式和行为

  1. MySettingsButton:用于设置操作的标准按钮
  2. MySettingsLabel:带有帮助文本支持的标签
  3. MyCheckBox:用于布尔设置的切换按钮
  4. MyComboBox:用于枚举设置的选择下拉列表
  5. MyTextField:用于字符串和数字设置的文本输入
  6. MyTextArea:用于较大文本设置的多行文本输入

这些组件在整个设置界面中保持一致的外观和感觉,并处理对 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 单例作为在整个应用程序中访问和修改设置的中心点。