菜单

配置系统

相关源文件

本文档描述了PrivateGPT的配置系统,它提供了一种灵活的方式来定制应用程序的行为。该配置系统使用YAML文件和环境变量来定义PrivateGPT的运行方式,包括使用哪些LLM和嵌入模型、如何存储向量嵌入以及服务器设置。

有关使用此配置系统的部署选项的信息,请参阅部署选项

1. 配置结构概述

PrivateGPT 使用基于 Pydantic 模型的层次化配置系统。配置在 YAML 文件中定义并在启动时加载,支持配置文件和环境变量扩展。

来源

2. 配置文件位置和组织

默认配置文件位于项目根目录下的 settings.yaml。特定配置文件的命名模式为 settings-{profile}.yaml,默认也位于项目根目录。

可以通过使用 PGPT_SETTINGS_FOLDER 环境变量来自定义设置文件的位置。

来源

3. 设置模型层次结构

配置以 Pydantic 模型的层次结构表示,其中 Settings 是包含所有其他设置模型的根模型。

来源

4. 配置文件系统

配置文件系统允许用户为不同的用例或环境创建不同的配置,并轻松地在它们之间切换。

4.1 配置文件工作原理

配置文件在基础配置(settings.yaml)之上分层。当配置文件被激活时,其设置会覆盖基础配置中的相应设置。

可以同时激活多个配置文件,后激活的配置文件优先于先激活的配置文件。

4.2 使用配置文件

通过使用 PGPT_PROFILES 环境变量来选择配置文件,该变量接受一个逗号分隔的配置文件名列表。

示例

这将首先加载 settings.yaml,然后应用 settings-local.yaml 中的设置,最后应用 settings-cuda.yaml 中的设置。

来源

5. 设置中的环境变量

设置文件可以包含在运行时展开的环境变量引用。这允许在不修改设置文件的情况下进行动态配置。

5.1 环境变量语法

环境变量使用语法 ${VARIABLE_NAME:default_value},其中

  • VARIABLE_NAME 是要使用的环境变量名称
  • default_value 是当环境变量未设置时使用的值

5.2 示例

来源

6. 主要配置类别

PrivateGPT 配置分为几个主要类别,每个类别控制系统的特定方面。

类别描述关键设置
服务器API 服务器配置端口、CORS、身份验证
数据数据存储和摄取local_data_folder, ingestion
UIWeb 界面设置enabled, path, default_mode, prompts
LLM语言模型配置mode, prompt_style, temperature
嵌入文本嵌入配置mode, ingest_mode, model
Vectorstore向量数据库选择数据库类型
Nodestore文档存储配置数据库类型
RAG检索配置similarity_top_k, reranking
特定提供商特定 LLM/嵌入提供商的设置API 密钥、模型、参数
特定数据库向量数据库设置连接详情、配置

来源

7. 在代码中访问设置

PrivateGPT 提供两种主要方式在代码中访问配置设置

  1. 依赖注入(推荐)

  2. 全局访问(为了兼容性)

设置在应用程序启动时加载,并通过依赖注入系统或全局 settings() 函数提供。

来源

8. 常见配置任务

8.1 更改 LLM 提供商

要更改 LLM 提供商,请修改 llm.mode 设置

此外,请为您选择的提供商配置特定提供商的设置

8.2 配置身份验证

启用并配置 API 身份验证

8.3 配置向量存储

选择并配置向量存储

来源

9. 配置流程与组件集成

下图说明了配置如何在 PrivateGPT 系统中流动并影响各种组件

来源

结论

PrivateGPT 的配置系统提供了一种灵活的方式来定制应用程序的行为,以适应不同的需求和环境。通过使用 YAML 文件、配置文件和环境变量,用户可以轻松调整设置而无需修改代码,同时开发人员可以通过依赖注入或全局设置函数访问这些设置。