环境变量
环境变量文件
项目根目录下的 .env 文件包含所有配置。
基础配置
数据库
| 变量 |
说明 |
示例 |
DATABASE_URL |
PostgreSQL连接字符串 |
postgresql+asyncpg://user:pass@host:5432/geo |
DB_POOL_SIZE |
连接池大小 |
20 |
DB_MAX_OVERFLOW |
最大溢出连接 |
10 |
Redis
| 变量 |
说明 |
示例 |
REDIS_URL |
Redis连接地址 |
redis://host:6379/0 |
REDIS_PASSWORD |
Redis密码 |
password |
应用
| 变量 |
说明 |
示例 |
APP_ENV |
运行环境 |
development / production |
APP_DEBUG |
调试模式 |
true / false |
APP_HOST |
监听地址 |
0.0.0.0 |
APP_PORT |
监听端口 |
8000 |
SECRET_KEY |
应用密钥 |
your-secret-key |
CORS_ORIGINS |
允许的跨域源 |
http://localhost:3000 |
注意:生产环境必须配置具体域名,不能使用通配符*
认证
| 变量 |
说明 |
示例 |
JWT_SECRET |
JWT签名密钥 |
your-jwt-secret |
JWT_ALGORITHM |
JWT算法 |
HS256 |
JWT_EXPIRE_HOURS |
Token过期时间 |
24 |
REFRESH_TOKEN_EXPIRE_DAYS |
刷新Token过期时间 |
7 |
AI服务
| 变量 |
说明 |
示例 |
OPENAI_API_KEY |
OpenAI API密钥 |
sk-... |
DEEPSEEK_API_KEY |
DeepSeek API密钥 |
sk-... |
ZHIPU_API_KEY |
智谱AI API密钥 |
... |
LLM_BASE_URL |
LLM API地址 |
https://api.deepseek.com |
LLM_MODEL |
默认模型 |
deepseek-chat |
知识库
| 变量 |
说明 |
示例 |
KNOWLEDGE_EMBEDDING_MODEL |
嵌入模型 |
text-embedding-ada-002 |
KNOWLEDGE_VECTOR_DB |
向量数据库类型 |
qdrant |
QDRANT_HOST |
Qdrant地址 |
localhost |
QDRANT_PORT |
Qdrant端口 |
6333 |
AI平台API密钥
| 变量 |
说明 |
示例 |
CHATGPT_API_KEY |
ChatGPT API密钥 |
sk-... |
DEEPSEEK_API_KEY |
DeepSeek API密钥 |
sk-... |
QWEN_API_KEY |
通义千问API密钥 |
sk-... |
KIMI_API_KEY |
Kimi API密钥 |
sk-... |
DOUBAO_API_KEY |
豆包API密钥 |
sk-... |
GEMINI_API_KEY |
Gemini API密钥 |
AI... |
PERPLEXITY_API_KEY |
Perplexity API密钥 |
pplx-... |
YUANBAO_API_KEY |
元宝API密钥 |
sk-... |
WENXIN_API_KEY |
文心一言API密钥 |
sk-... |
ZHIPU_API_KEY |
智谱AI API密钥 |
... |
TONGYI_API_KEY |
通义API密钥 |
sk-... |
功能开关
| 变量 |
说明 |
默认值 |
ENABLE_LLM |
启用LLM增强功能 |
true |
ENABLE_AGENT_FRAMEWORK |
启用Agent框架 |
true |
开发环境示例
# .env.development
APP_ENV=development
APP_DEBUG=true
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/geo
REDIS_URL=redis://localhost:6379/0
JWT_SECRET=dev-secret-key-change-in-production
CORS_ORIGINS=http://localhost:3000
生产环境示例
# .env.production
APP_ENV=production
APP_DEBUG=false
DATABASE_URL=postgresql+asyncpg://user:pass@prod-db:5432/geo
REDIS_URL=redis://:password@prod-redis:6379/0
JWT_SECRET=${JWT_SECRET}
SECRET_KEY=${SECRET_KEY}
CORS_ORIGINS=https://your-domain.com
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-chat