langchain-learning-kit/CONFIG_GUIDE.md

200 lines
4.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置指南
## ✅ 已完成的配置更新
### 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`