Implement comprehensive configuration management system with: **Core Components:** - config/config.schema.yaml: Configuration metadata (single source of truth) - scripts/lib/generate_from_schema.py: Schema → local.yaml generator - scripts/lib/generate_env.py: local.yaml → .env converter - scripts/setup.sh: One-click configuration initialization **Key Features:** - Deep merge logic preserves existing values - Auto-generation of secrets (32-char random strings) - Type inference for configuration values - Nested YAML → flat environment variables - Git-safe: local.yaml and .env excluded from version control **Configuration Coverage:** - Trilingual entity extractor (Chinese/English/Swedish) - LightRAG API, database, vector DB settings - LLM provider configuration - Entity/relation extraction settings - Security and performance tuning **Documentation:** - docs/ConfigurationGuide-zh.md: Complete usage guide with examples **Usage:** ```bash ./scripts/setup.sh # Generate config/local.yaml and .env ``` This enables centralized configuration management with automatic secret generation and safe handling of sensitive data.
658 lines
17 KiB
Markdown
658 lines
17 KiB
Markdown
# LightRAG 配置指南
|
||
|
||
## 概述
|
||
|
||
LightRAG 采用 **Schema-Driven Configuration Pattern**(架构驱动配置模式),通过单一数据源管理所有配置,自动生成本地配置文件和环境变量。
|
||
|
||
### 核心设计原则
|
||
|
||
**单一数据源 (Single Source of Truth)**:
|
||
- `config/config.schema.yaml` - 配置元数据(Git 追踪)
|
||
- `config/local.yaml` - 本地配置(自动生成,Git 忽略)
|
||
- `.env` - 环境变量(自动生成,Git 忽略)
|
||
|
||
**自动化工作流**:
|
||
```bash
|
||
config.schema.yaml → config/local.yaml → .env
|
||
```
|
||
|
||
**关键特性**:
|
||
- ✅ 深度合并 - 保留现有值
|
||
- ✅ 自动生成密钥 - 无需手动管理
|
||
- ✅ 类型推断 - 自动转换数据类型
|
||
- ✅ 安全性 - 配置文件不会提交到 Git
|
||
|
||
---
|
||
|
||
## 快速开始
|
||
|
||
### 1. 初始化配置
|
||
|
||
```bash
|
||
cd /path/to/LightRAG
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
这会自动:
|
||
1. 读取 `config/config.schema.yaml`
|
||
2. 生成 `config/local.yaml`(包含自动生成的密钥)
|
||
3. 生成 `.env`(环境变量格式)
|
||
|
||
### 2. 检查生成的配置
|
||
|
||
```bash
|
||
# 查看本地配置
|
||
cat config/local.yaml
|
||
|
||
# 查看环境变量
|
||
cat .env
|
||
```
|
||
|
||
### 3. 修改配置(可选)
|
||
|
||
```bash
|
||
# 编辑本地配置
|
||
nano config/local.yaml
|
||
|
||
# 修改后重新生成 .env
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 配置文件说明
|
||
|
||
### config.schema.yaml(配置元数据)
|
||
|
||
**位置**: `config/config.schema.yaml`
|
||
|
||
**用途**: 定义所有配置字段的元数据
|
||
|
||
**格式**:
|
||
```yaml
|
||
- section: trilingual.enabled
|
||
default: true
|
||
description: "Enable trilingual entity extractor (Chinese/English/Swedish)"
|
||
|
||
- section: lightrag.api.secret_key
|
||
type: secret
|
||
auto_generate: true
|
||
description: "API secret key (auto-generated, 32 characters)"
|
||
|
||
- section: lightrag.llm.api_key
|
||
type: secret
|
||
auto_generate: false
|
||
description: "LLM API key (user-provided)"
|
||
```
|
||
|
||
**字段说明**:
|
||
- `section`: 配置路径(点分隔,如 `trilingual.chinese.enabled`)
|
||
- `default`: 默认值(如果有)
|
||
- `type`: 类型标记(`secret` = 密钥,留空 = 自动推断)
|
||
- `auto_generate`: 是否自动生成密钥(仅适用于 `type: secret`)
|
||
- `description`: 字段描述
|
||
|
||
**重要**:
|
||
- ✅ 此文件会提交到 Git
|
||
- ✅ 修改此文件后运行 `./scripts/setup.sh` 更新配置
|
||
- ✅ 新增字段会使用默认值,现有值会保留
|
||
|
||
### config/local.yaml(本地配置)
|
||
|
||
**位置**: `config/local.yaml`
|
||
|
||
**用途**: 实际的配置文件(YAML 格式)
|
||
|
||
**格式**:
|
||
```yaml
|
||
trilingual:
|
||
enabled: true
|
||
default_language: en
|
||
lazy_loading: true
|
||
chinese:
|
||
enabled: true
|
||
model: CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH
|
||
english:
|
||
enabled: true
|
||
model: en_core_web_trf
|
||
batch_size: 32
|
||
|
||
lightrag:
|
||
api:
|
||
secret_key: abc123... # 自动生成
|
||
host: 0.0.0.0
|
||
port: 9621
|
||
llm:
|
||
provider: openai
|
||
model: gpt-4o-mini
|
||
api_key: sk-... # 手动填写
|
||
```
|
||
|
||
**重要**:
|
||
- ❌ 此文件不会提交到 Git(已添加到 `.gitignore`)
|
||
- ✅ 可以直接编辑此文件修改配置
|
||
- ✅ 修改后运行 `./scripts/setup.sh` 更新 `.env`
|
||
- ✅ 包含自动生成的密钥,请妥善保管
|
||
|
||
### .env(环境变量)
|
||
|
||
**位置**: `.env`(项目根目录)
|
||
|
||
**用途**: 环境变量格式的配置文件
|
||
|
||
**格式**:
|
||
```bash
|
||
# TRILINGUAL
|
||
TRILINGUAL_ENABLED=true
|
||
TRILINGUAL_DEFAULT_LANGUAGE=en
|
||
TRILINGUAL_LAZY_LOADING=true
|
||
TRILINGUAL_CHINESE_ENABLED=true
|
||
TRILINGUAL_CHINESE_MODEL=CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH
|
||
|
||
# LIGHTRAG
|
||
LIGHTRAG_API_SECRET_KEY=abc123...
|
||
LIGHTRAG_API_HOST=0.0.0.0
|
||
LIGHTRAG_API_PORT=9621
|
||
LIGHTRAG_LLM_PROVIDER=openai
|
||
LIGHTRAG_LLM_MODEL=gpt-4o-mini
|
||
```
|
||
|
||
**命名规则**:
|
||
- 嵌套路径 → 大写 + 下划线
|
||
- 例如: `trilingual.chinese.enabled` → `TRILINGUAL_CHINESE_ENABLED`
|
||
|
||
**重要**:
|
||
- ❌ 此文件不会提交到 Git(已添加到 `.gitignore`)
|
||
- ⚠️ 此文件由脚本自动生成,**不要手动编辑**
|
||
- ✅ 修改 `config/local.yaml` 后重新运行 `./scripts/setup.sh`
|
||
|
||
---
|
||
|
||
## 配置项说明
|
||
|
||
### 三语言实体提取器配置
|
||
|
||
#### 通用配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.enabled` | `true` | 启用三语言实体提取器 |
|
||
| `trilingual.default_language` | `en` | 默认语言(zh/en/sv) |
|
||
| `trilingual.lazy_loading` | `true` | 启用延迟加载(节省内存) |
|
||
|
||
#### 中文配置(HanLP)
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.chinese.enabled` | `true` | 启用中文提取 |
|
||
| `trilingual.chinese.model` | `CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_BASE_ZH` | HanLP 模型名 |
|
||
| `trilingual.chinese.cache_dir` | `""` | 模型缓存目录(空 = 默认 `~/.hanlp`) |
|
||
|
||
#### 英文配置(spaCy)
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.english.enabled` | `true` | 启用英文提取 |
|
||
| `trilingual.english.model` | `en_core_web_trf` | spaCy 模型名 |
|
||
| `trilingual.english.batch_size` | `32` | 批处理大小 |
|
||
|
||
**可选模型**:
|
||
- `en_core_web_trf`: Transformer 模型(最高质量,~440 MB)
|
||
- `en_core_web_lg`: 大模型(高质量,~440 MB)
|
||
- `en_core_web_sm`: 小模型(较低质量,~12 MB)
|
||
|
||
#### 瑞典语配置(spaCy)
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.swedish.enabled` | `true` | 启用瑞典语提取 |
|
||
| `trilingual.swedish.model` | `sv_core_news_lg` | spaCy 模型名 |
|
||
| `trilingual.swedish.batch_size` | `32` | 批处理大小 |
|
||
|
||
**可选模型**:
|
||
- `sv_core_news_lg`: 大模型(最高质量,~545 MB)
|
||
- `sv_core_news_md`: 中等模型(~40 MB)
|
||
- `sv_core_news_sm`: 小模型(~12 MB)
|
||
|
||
#### 性能配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.performance.max_text_length` | `1000000` | 最大文本长度(字符) |
|
||
| `trilingual.performance.enable_gpu` | `false` | 启用 GPU 加速 |
|
||
| `trilingual.performance.num_threads` | `4` | 并行处理线程数 |
|
||
|
||
#### 缓存配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.cache.enabled` | `true` | 启用结果缓存 |
|
||
| `trilingual.cache.ttl` | `3600` | 缓存 TTL(秒,0 = 永不过期) |
|
||
| `trilingual.cache.max_size` | `1000` | 最大缓存数量 |
|
||
|
||
#### 日志配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `trilingual.logging.level` | `INFO` | 日志级别(DEBUG/INFO/WARNING/ERROR) |
|
||
| `trilingual.logging.format` | `%(asctime)s - %(name)s - %(levelname)s - %(message)s` | 日志格式 |
|
||
|
||
### LightRAG 通用配置
|
||
|
||
#### API 配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.api.secret_key` | *自动生成* | API 密钥(32 字符) |
|
||
| `lightrag.api.host` | `0.0.0.0` | API 服务器地址 |
|
||
| `lightrag.api.port` | `9621` | API 服务器端口 |
|
||
| `lightrag.api.debug` | `false` | 调试模式 |
|
||
|
||
#### 数据库配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.database.type` | `sqlite` | 数据库类型(sqlite/postgres/mysql) |
|
||
| `lightrag.database.path` | `./data/lightrag.db` | 数据库路径(SQLite) |
|
||
|
||
#### 向量数据库配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.vector_db.type` | `nano` | 向量数据库类型(nano/milvus/qdrant/chroma) |
|
||
| `lightrag.vector_db.dimension` | `1536` | 向量维度 |
|
||
|
||
#### LLM 配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.llm.provider` | `openai` | LLM 提供商(openai/anthropic/ollama/custom) |
|
||
| `lightrag.llm.model` | `gpt-4o-mini` | LLM 模型名 |
|
||
| `lightrag.llm.api_key` | *需手动填写* | LLM API 密钥 |
|
||
| `lightrag.llm.base_url` | `""` | 自定义 LLM 基础 URL(可选) |
|
||
| `lightrag.llm.max_tokens` | `4096` | 最大 tokens 数 |
|
||
| `lightrag.llm.temperature` | `0.0` | 温度参数(0.0-1.0) |
|
||
|
||
#### 实体提取配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.entity_extraction.max_gleaning` | `1` | Gleaning 轮数(0=禁用,1=启用) |
|
||
| `lightrag.entity_extraction.use_trilingual` | `false` | 使用三语言提取器(而非 LLM) |
|
||
|
||
#### 关系提取配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.relation_extraction.enabled` | `true` | 启用关系提取 |
|
||
| `lightrag.relation_extraction.method` | `llm` | 提取方法(llm/pattern/hybrid) |
|
||
|
||
#### 安全配置
|
||
|
||
| 配置项 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| `lightrag.security.enable_api_key` | `false` | 启用 API 密钥验证 |
|
||
| `lightrag.security.allowed_origins` | `*` | CORS 允许的源(逗号分隔) |
|
||
| `lightrag.security.rate_limit` | `100` | API 速率限制(请求/分钟/IP) |
|
||
|
||
---
|
||
|
||
## 高级用法
|
||
|
||
### 1. 添加新配置字段
|
||
|
||
**步骤**:
|
||
1. 编辑 `config/config.schema.yaml`,添加新字段:
|
||
```yaml
|
||
- section: my_module.new_feature.enabled
|
||
default: true
|
||
description: "Enable my new feature"
|
||
```
|
||
|
||
2. 重新运行设置脚本:
|
||
```bash
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
3. 检查 `config/local.yaml` 和 `.env`,新字段已自动添加。
|
||
|
||
### 2. 自动生成密钥
|
||
|
||
**用途**: API 密钥、JWT 密钥、加密密钥等
|
||
|
||
**步骤**:
|
||
1. 在 `config.schema.yaml` 中标记为 `type: secret` 和 `auto_generate: true`:
|
||
```yaml
|
||
- section: my_module.secret_token
|
||
type: secret
|
||
auto_generate: true
|
||
description: "Secret token for authentication"
|
||
```
|
||
|
||
2. 运行 `./scripts/setup.sh`,密钥会自动生成(32 字符)
|
||
|
||
**注意**:
|
||
- 密钥只生成一次,后续运行会保留现有值
|
||
- 如需重新生成,删除 `config/local.yaml` 中对应字段后重新运行
|
||
|
||
### 3. 用户提供的密钥
|
||
|
||
**用途**: LLM API 密钥等需要用户提供的敏感信息
|
||
|
||
**步骤**:
|
||
1. 在 `config.schema.yaml` 中标记为 `type: secret` 和 `auto_generate: false`:
|
||
```yaml
|
||
- section: lightrag.llm.api_key
|
||
type: secret
|
||
auto_generate: false
|
||
description: "LLM API key (user-provided)"
|
||
```
|
||
|
||
2. 运行 `./scripts/setup.sh` 生成配置框架
|
||
|
||
3. 手动编辑 `config/local.yaml`,填写 API 密钥:
|
||
```yaml
|
||
lightrag:
|
||
llm:
|
||
api_key: sk-your-actual-key-here
|
||
```
|
||
|
||
4. 重新运行 `./scripts/setup.sh` 更新 `.env`
|
||
|
||
### 4. 深度合并逻辑
|
||
|
||
**特性**: 修改配置时,现有值会被保留,新字段会使用默认值
|
||
|
||
**示例**:
|
||
|
||
**现有配置** (`config/local.yaml`):
|
||
```yaml
|
||
trilingual:
|
||
chinese:
|
||
enabled: false # 用户修改过
|
||
```
|
||
|
||
**Schema 更新** (`config.schema.yaml`):
|
||
```yaml
|
||
- section: trilingual.chinese.enabled
|
||
default: true
|
||
|
||
- section: trilingual.chinese.cache_dir # 新增字段
|
||
default: "/custom/path"
|
||
```
|
||
|
||
**运行** `./scripts/setup.sh` **后** (`config/local.yaml`):
|
||
```yaml
|
||
trilingual:
|
||
chinese:
|
||
enabled: false # 保留现有值 ✅
|
||
cache_dir: /custom/path # 使用默认值 ✅
|
||
```
|
||
|
||
### 5. 类型推断
|
||
|
||
**支持的类型**:
|
||
- 布尔值: `true`, `false`
|
||
- 整数: `123`, `-456`
|
||
- 浮点数: `0.5`, `3.14`
|
||
- 字符串: `hello`, `api_key`
|
||
|
||
**自动转换**:
|
||
```yaml
|
||
# Schema 中定义
|
||
- section: my_module.timeout
|
||
default: 30 # 整数
|
||
|
||
- section: my_module.enabled
|
||
default: true # 布尔值
|
||
|
||
# 生成的 .env
|
||
MY_MODULE_TIMEOUT=30 # 整数字符串
|
||
MY_MODULE_ENABLED=true # 布尔值字符串
|
||
```
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### Q1: 如何修改配置?
|
||
|
||
**A**: 有两种方法:
|
||
|
||
**方法 1: 编辑 local.yaml(推荐)**
|
||
```bash
|
||
# 1. 编辑配置
|
||
nano config/local.yaml
|
||
|
||
# 2. 更新 .env
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
**方法 2: 编辑 schema.yaml(添加新字段)**
|
||
```bash
|
||
# 1. 添加新字段到 schema
|
||
nano config/config.schema.yaml
|
||
|
||
# 2. 重新生成配置
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
### Q2: 配置文件丢失了怎么办?
|
||
|
||
**A**: 重新运行设置脚本即可:
|
||
```bash
|
||
./scripts/setup.sh
|
||
```
|
||
|
||
**注意**:
|
||
- ✅ 如果只是 `.env` 丢失,重新运行会从 `config/local.yaml` 重新生成
|
||
- ⚠️ 如果 `config/local.yaml` 也丢失,会使用默认值重新生成(自动生成的密钥会改变)
|
||
|
||
### Q3: 为什么修改 .env 后重新运行脚本配置被覆盖?
|
||
|
||
**A**: `.env` 是自动生成的文件,**不应该手动编辑**。
|
||
|
||
**正确做法**:
|
||
1. 编辑 `config/local.yaml`
|
||
2. 运行 `./scripts/setup.sh`
|
||
3. `.env` 会自动更新
|
||
|
||
### Q4: 如何在不同环境使用不同配置?
|
||
|
||
**A**: 使用环境变量覆盖:
|
||
|
||
**开发环境** (`.env`):
|
||
```bash
|
||
LIGHTRAG_API_DEBUG=true
|
||
LIGHTRAG_LLM_MODEL=gpt-4o-mini
|
||
```
|
||
|
||
**生产环境** (在服务器上设置环境变量):
|
||
```bash
|
||
export LIGHTRAG_API_DEBUG=false
|
||
export LIGHTRAG_LLM_MODEL=gpt-4o
|
||
```
|
||
|
||
环境变量的优先级 > `.env` 文件
|
||
|
||
### Q5: 密钥泄露了怎么办?
|
||
|
||
**A**: 重新生成密钥:
|
||
|
||
1. 删除 `config/local.yaml` 中的密钥字段
|
||
2. 运行 `./scripts/setup.sh`
|
||
3. 新密钥会自动生成
|
||
|
||
**示例**:
|
||
```bash
|
||
# 1. 编辑 config/local.yaml,删除这一行:
|
||
# lightrag.api.secret_key: abc123...
|
||
|
||
# 2. 重新生成
|
||
./scripts/setup.sh
|
||
|
||
# 3. 新密钥已生成并保存
|
||
```
|
||
|
||
### Q6: 如何检查配置是否正确?
|
||
|
||
**A**: 查看生成的文件:
|
||
|
||
```bash
|
||
# 查看本地配置
|
||
cat config/local.yaml
|
||
|
||
# 查看环境变量
|
||
cat .env
|
||
|
||
# 查看特定配置项
|
||
grep "TRILINGUAL_ENABLED" .env
|
||
```
|
||
|
||
### Q7: 脚本运行失败怎么办?
|
||
|
||
**A**: 检查以下几点:
|
||
|
||
1. **Python 依赖**:
|
||
```bash
|
||
pip install pyyaml
|
||
```
|
||
|
||
2. **Schema 文件存在**:
|
||
```bash
|
||
ls -la config/config.schema.yaml
|
||
```
|
||
|
||
3. **脚本权限**:
|
||
```bash
|
||
chmod +x scripts/setup.sh
|
||
chmod +x scripts/lib/generate_from_schema.py
|
||
chmod +x scripts/lib/generate_env.py
|
||
```
|
||
|
||
4. **查看详细错误**:
|
||
```bash
|
||
./scripts/setup.sh 2>&1 | tee setup.log
|
||
```
|
||
|
||
---
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
LightRAG/
|
||
├── config/
|
||
│ ├── config.schema.yaml # 配置元数据(Git 追踪)
|
||
│ └── local.yaml # 本地配置(Git 忽略,自动生成)
|
||
├── scripts/
|
||
│ ├── setup.sh # 一键设置脚本
|
||
│ └── lib/
|
||
│ ├── generate_from_schema.py # Schema → local.yaml
|
||
│ └── generate_env.py # local.yaml → .env
|
||
├── .env # 环境变量(Git 忽略,自动生成)
|
||
└── .gitignore # 忽略 local.yaml 和 .env
|
||
```
|
||
|
||
---
|
||
|
||
## 工作流示意图
|
||
|
||
```
|
||
┌──────────────────────┐
|
||
│ config.schema.yaml │ ← 配置元数据(Git 追踪)
|
||
│ (单一数据源) │
|
||
└──────────┬───────────┘
|
||
│
|
||
│ 运行 ./scripts/setup.sh
|
||
│
|
||
▼
|
||
┌──────────────────────┐
|
||
│ generate_from_schema │ ← 读取 schema,生成配置
|
||
│ │ - 深度合并
|
||
│ │ - 自动生成密钥
|
||
│ │ - 保留现有值
|
||
└──────────┬───────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────┐
|
||
│ config/local.yaml │ ← 本地配置(Git 忽略)
|
||
│ │ - 可手动编辑
|
||
│ │ - 包含密钥
|
||
└──────────┬───────────┘
|
||
│
|
||
│ 运行 ./scripts/setup.sh
|
||
│
|
||
▼
|
||
┌──────────────────────┐
|
||
│ generate_env.py │ ← 转换为环境变量格式
|
||
│ │ - 扁平化嵌套结构
|
||
│ │ - 大写 + 下划线
|
||
└──────────┬───────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────┐
|
||
│ .env │ ← 环境变量(Git 忽略)
|
||
│ │ - 不要手动编辑
|
||
└──────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 最佳实践
|
||
|
||
### ✅ 推荐做法
|
||
|
||
1. **修改配置**: 编辑 `config/local.yaml`,然后运行 `./scripts/setup.sh`
|
||
2. **添加字段**: 编辑 `config.schema.yaml`,然后运行 `./scripts/setup.sh`
|
||
3. **版本控制**: 只提交 `config.schema.yaml`,不要提交 `config/local.yaml` 和 `.env`
|
||
4. **密钥管理**: 使用 `auto_generate: true` 自动生成密钥
|
||
5. **环境隔离**: 使用环境变量覆盖 `.env` 中的配置
|
||
|
||
### ❌ 避免做法
|
||
|
||
1. **手动编辑 .env**: 修改会被覆盖
|
||
2. **提交密钥**: `config/local.yaml` 和 `.env` 包含敏感信息
|
||
3. **硬编码配置**: 在代码中硬编码配置值
|
||
4. **跳过脚本**: 手动创建配置文件(会丢失深度合并等特性)
|
||
|
||
---
|
||
|
||
## 总结
|
||
|
||
### 核心优势
|
||
|
||
✅ **单一数据源**: 所有配置元数据集中管理
|
||
|
||
✅ **自动化**: 一键生成配置,无需手动管理
|
||
|
||
✅ **安全性**: 配置文件不会提交到 Git
|
||
|
||
✅ **灵活性**: 支持深度合并、自动生成密钥、类型推断
|
||
|
||
✅ **可维护性**: 配置修改清晰可追溯
|
||
|
||
### 适用场景
|
||
|
||
- ✓ 需要管理大量配置项
|
||
- ✓ 需要自动生成密钥
|
||
- ✓ 需要在多个环境部署
|
||
- ✓ 需要配置版本控制
|
||
- ✓ 团队协作开发
|
||
|
||
---
|
||
|
||
## 参考资源
|
||
|
||
- **Schema 文件**: `config/config.schema.yaml`
|
||
- **生成脚本**: `scripts/lib/generate_from_schema.py`
|
||
- **环境变量脚本**: `scripts/lib/generate_env.py`
|
||
- **设置脚本**: `scripts/setup.sh`
|
||
|
||
---
|
||
|
||
## 支持和反馈
|
||
|
||
如有问题或建议,请:
|
||
1. 查看本文档的常见问题部分
|
||
2. 查看生成脚本的源代码和注释
|
||
3. 提交 Issue 到 LightRAG 仓库
|