langchain-learning-kit/CONFIG_GUIDE.md

200 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

# 配置指南
## ✅ 已完成的配置更新
### 1⃣ Conda 环境名称
- **更新为**: `pyth-311`
- **原名称**: ~~langchain-learning-kit~~
### 2⃣ OpenAI Base URL 支持
- **新增配置项**: `OPENAI_BASE_URL`
- **用途**: 支持使用代理或转发服务
- **你的配置**: `https://api.openai-proxy.org/v1`
---
## 📝 完整的 .env 配置
请确保你的 `.env` 文件包含以下内容:
```env
# 应用配置
APP_NAME="LangChain Learning Kit"
DEBUG=False
LOG_LEVEL=INFO
# 服务器配置
HOST=0.0.0.0
PORT=8000
# 数据库配置
DATABASE_URL=mysql+pymysql://root:123456@localhost:3306/langchain_learning
# OpenAI 配置
OPENAI_API_KEY=sk-your-actual-api-key-here
OPENAI_BASE_URL=https://api.openai-proxy.org/v1
# FAISS 存储路径
FAISS_BASE_PATH=data/faiss
# 文本分块配置
CHUNK_SIZE=1000
CHUNK_OVERLAP=200
```
---
## 🔧 OpenAI Base URL 使用说明
### 工作原理
1. **配置优先级**:
- 如果模型配置中指定了 `base_url`,使用模型配置
- 否则,使用 `.env` 中的 `OPENAI_BASE_URL`
- 如果都未配置,使用 OpenAI 默认地址
2. **自动应用**:
- 所有 LLM 调用 (ChatOpenAI)
- 所有 Embedding 调用 (OpenAIEmbeddings)
### 使用场景
**场景 1: 使用代理服务** (你的情况)
```env
OPENAI_BASE_URL=https://api.openai-proxy.org/v1
```
**场景 2: 使用自定义端点**
```env
OPENAI_BASE_URL=https://your-custom-endpoint.com/v1
```
**场景 3: 不使用代理** (默认)
```env
# OPENAI_BASE_URL 留空或不配置
```
### 验证配置
创建模型后,日志会显示使用的 base_url
```python
# 日志输出示例
{
"event": "getting_llm",
"model_name": "gpt-3.5-turbo",
"base_url": "https://api.openai-proxy.org/v1"
}
```
---
## 🚀 下一步操作
### 1. 激活环境
```bash
conda activate pyth-311
```
### 2. 验证配置
```bash
python verify_env.py
```
应该看到:
```
✓ .env 文件存在
✓ DATABASE_URL: mysql+pymysql://root:123...
✓ OPENAI_API_KEY: sk-your-ac...
✓ OPENAI_BASE_URL: https://api.openai...
```
### 3. 初始化数据库
```bash
cd app
alembic upgrade head
```
### 4. 测试配置加载
```bash
python -c "from app.config import get_settings; s = get_settings(); print(f'Base URL: {s.openai_base_url}')"
```
应该输出:
```
Base URL: https://api.openai-proxy.org/v1
```
---
## 📋 环境变量说明
| 变量名 | 必需 | 默认值 | 说明 |
|--------|------|--------|------|
| `APP_NAME` | 否 | "LangChain Learning Kit" | 应用名称 |
| `DEBUG` | 否 | False | 调试模式 |
| `LOG_LEVEL` | 否 | INFO | 日志级别 |
| `HOST` | 否 | 0.0.0.0 | 服务器地址 |
| `PORT` | 否 | 8000 | 服务器端口 |
| `DATABASE_URL` | **是** | - | MySQL 连接字符串 |
| `OPENAI_API_KEY` | **是** | - | OpenAI API Key |
| `OPENAI_BASE_URL` | 否 | None | OpenAI API 基础地址 |
| `FAISS_BASE_PATH` | 否 | data/faiss | FAISS 索引存储路径 |
| `CHUNK_SIZE` | 否 | 1000 | 文本分块大小 |
| `CHUNK_OVERLAP` | 否 | 200 | 文本分块重叠 |
---
## ⚠️ 常见问题
### Q1: 配置了 OPENAI_BASE_URL 但没有生效
**排查步骤**:
1. 确认 `.env` 文件在项目根目录
2. 重启应用 (配置在启动时加载)
3. 检查日志输出确认 base_url
### Q2: 代理地址无法访问
**解决方案**:
1. 检查网络连接
2. 确认代理地址正确
3. 尝试浏览器访问 `https://api.openai-proxy.org/v1/models`
### Q3: 想对不同模型使用不同的 base_url
**解决方案**: 在创建模型配置时指定
```json
{
"name": "gpt-4-proxy",
"type": "llm",
"config": {
"model_name": "gpt-4",
"api_key": "${OPENAI_API_KEY}",
"base_url": "https://custom-proxy.com/v1"
}
}
```
---
## 💡 提示
1. **环境变量优先级**: 模型配置 > .env 文件 > 默认值
2. **安全性**: 不要将 `.env` 文件提交到 Git (已在 .gitignore)
3. **变量替换**: 配置中可使用 `${VAR_NAME}` 引用环境变量
4. **验证配置**: 使用 `verify_env.py` 脚本检查所有配置
---
**配置更新完成!** ✅
所有文件已更新以支持:
- Conda 环境名称: `pyth-311`
- OpenAI Base URL: `https://api.openai-proxy.org/v1`