docs: complete documentation system (250+ files)

- System architecture and design documentation
- Business module docs (ASL/AIA/PKB/RVW/DC/SSA/ST)
- ASL module complete design (quality assurance, tech selection)
- Platform layer and common capabilities docs
- Development standards and API specifications
- Deployment and operations guides
- Project management and milestone tracking
- Architecture implementation reports
- Documentation templates and guides
This commit is contained in:
2025-11-16 15:43:55 +08:00
parent 0fe6821a89
commit e52020409c
173 changed files with 46227 additions and 11964 deletions

View File

@@ -0,0 +1,478 @@
# 环境配置指南
> **文档版本:** v1.0
> **创建日期:** 2025-11-09
> **维护者:** 技术团队
> **最后更新:** 2025-11-09
---
## 📋 文档说明
本文档记录系统运行所需的全部环境变量配置,包括:
- 数据库连接信息
- LLM API密钥配置
- 第三方服务配置
- 安全相关配置
---
## 🗄️ 数据库配置
### PostgreSQL连接信息
**当前配置:**
```env
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/ai_clinical_research
```
**连接参数说明:**
| 参数 | 当前值 | 说明 |
|------|--------|------|
| 用户名 | postgres | PostgreSQL默认用户 |
| 密码 | postgres | 本地开发密码 |
| 主机 | localhost | 本地数据库 |
| 端口 | 5432 | PostgreSQL默认端口 |
| 数据库名 | ai_clinical_research | 项目数据库 |
**Schema信息**
- **当前Schema** `public`所有13个表
- **计划Schema** 10个隔离SchemaWeek 1实施
- platform_schema
- common_schema
- asl_schema
- aia_schema
- pkb_schema
- dc_schema
- rvw_schema
- admin_schema
- ssa_schema
- st_schema
---
## 🤖 LLM API配置
### 1. DeepSeek API
**用途:** 主力大模型(推理、对话、批处理)
**配置:**
```env
DEEPSEEK_API_KEY=sk-your-deepseek-key
```
**获取方式:**
1. 访问https://platform.deepseek.com
2. 注册/登录账号
3. 进入API Keys页面
4. 创建新的API Key
**使用场景:**
- AI智能问答选题评价、PICO梳理等
- 批处理任务
- 标题摘要初筛
- 全文复筛
**定价:**
- DeepSeek-V3: ¥1/M tokens输入¥2/M tokens输出
---
### 2. 通义千问QwenAPI
**用途:** 备用模型、特定场景优化
**配置:**
```env
DASHSCOPE_API_KEY=sk-your-qwen-key
```
**获取方式:**
1. 访问https://dashscope.console.aliyun.com
2. 开通DashScope服务
3. 创建API Key
**使用场景:**
- 长文本处理Qwen-Long
- 特定领域任务
- 模型对比筛选
**定价:**
- Qwen-Max: ¥0.04/1K tokens
- Qwen-Long: ¥0.005/1K tokens
---
### 3. CloseAI配置代理OpenAI和Claude⭐⭐⭐
**用途:** 通过代理平台稳定访问OpenAI和Claude API
**为什么使用CloseAI**
- ✅ 国内稳定访问,无需科学上网
- ✅ 一个账号同时使用OpenAI和Claude
- ✅ 兼容OpenAI SDK标准接口
- ✅ 最新模型支持GPT-5-Pro、Claude-Sonnet-4.5
**配置:**
```env
# CloseAI统一API Key
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo
# OpenAI端点通过CloseAI代理
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
# Claude端点通过CloseAI代理
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
```
**支持的模型:**
| 模型系列 | 最新模型 | 说明 |
|---------|---------|------|
| **OpenAI** | `gpt-5-pro` | 最新GPT-5模型 ⭐ |
| OpenAI | `gpt-4-turbo-preview` | GPT-4高性能版本 |
| OpenAI | `gpt-3.5-turbo` | 快速经济版本 |
| **Claude** | `claude-sonnet-4-5-20250929` | 最新Claude-4.5 ⭐ |
| Claude | `claude-3-5-sonnet-20241022` | Claude-3.5稳定版 |
| Claude | `claude-3-opus-20240229` | Claude-3最强版本 |
**获取方式:**
1. 访问https://platform.openai-proxy.org
2. 注册账号并充值
3. 在控制台获取API Key
4. 一个API Key可同时调用OpenAI和Claude
**代码示例TypeScript**
```typescript
import OpenAI from 'openai';
// OpenAI (通过CloseAI)
const openaiClient = new OpenAI({
apiKey: process.env.CLOSEAI_API_KEY,
baseURL: 'https://api.openai-proxy.org/v1',
});
const gptResponse = await openaiClient.chat.completions.create({
model: 'gpt-5-pro',
messages: [{ role: 'user', content: '你好' }],
});
// Claude (通过CloseAI)
const claudeClient = new OpenAI({
apiKey: process.env.CLOSEAI_API_KEY,
baseURL: 'https://api.openai-proxy.org/anthropic',
});
const claudeResponse = await claudeClient.chat.completions.create({
model: 'claude-sonnet-4-5-20250929',
messages: [{ role: 'user', content: '你好' }],
});
```
**使用场景AI智能文献 ⭐):**
- **GPT-5-Pro** 文献精准筛选、质量控制
- **Claude-4.5** 第三方仲裁、结构化输出
- **双模型对比:** DeepSeek + GPT-5-Pro 快速+高质量
- **三模型共识:** 冲突时启用Claude仲裁
**定价(参考):**
- GPT-5-Pro: ~¥0.10/1K tokens输入~¥0.20/1K tokens输出
- Claude-4.5-Sonnet: ~¥0.021/1K tokens输入~¥0.105/1K tokens输出
**注意事项:**
- ⚠️ API Key包含敏感信息不要提交到Git
- ⚠️ 建议定期更换API Key
- ⚠️ 生产环境使用独立的API Key
---
## 🔧 Dify配置RAG引擎
**用途:** 知识库向量检索、RAG问答
**配置:**
```env
DIFY_API_KEY=app-your-dify-key
DIFY_API_URL=http://localhost/v1
```
**部署信息:**
- **本地部署:** Docker Compose
- **访问地址:** http://localhost
- **管理后台:** http://localhost/install
- **向量数据库:** Qdrant内置
**获取API Key**
1. 访问 Dify 管理后台
2. 进入"应用"页面
3. 创建"知识库应用"
4. 复制API Key
**使用场景:**
- 个人知识库文档上传
- @知识库问答
- 智能引用功能
---
## 🔐 安全配置
### JWT密钥
**配置:**
```env
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRES_IN=7d
```
**说明:**
- 用于用户认证Token签名
- 建议使用32位以上随机字符串
- 过期时间7天
**生成强密钥(可选):**
```bash
# Node.js生成
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# OpenSSL生成
openssl rand -hex 32
```
---
## 🌐 服务配置
### 后端服务
**配置:**
```env
PORT=3001
HOST=0.0.0.0
NODE_ENV=development
LOG_LEVEL=info
```
**说明:**
| 参数 | 值 | 说明 |
|------|-----|------|
| PORT | 3001 | 后端服务端口 |
| HOST | 0.0.0.0 | 监听所有网卡 |
| NODE_ENV | development | 开发环境 |
| LOG_LEVEL | info | 日志级别 |
---
### CORS配置
**配置:**
```env
CORS_ORIGIN=http://localhost:5173
```
**说明:**
- 允许前端跨域访问
- 前端开发服务器http://localhost:5173
---
### Redis配置可选
**配置:**
```env
REDIS_URL=redis://localhost:6379
```
**说明:**
- 用于缓存和会话管理
- 当前未强制要求
---
## 📁 文件上传配置
**配置:**
```env
UPLOAD_MAX_SIZE=10485760
UPLOAD_DIR=./uploads
```
**说明:**
| 参数 | 值 | 说明 |
|------|-----|------|
| UPLOAD_MAX_SIZE | 10485760 | 10MB字节 |
| UPLOAD_DIR | ./uploads | 上传文件存储目录 |
---
## 🚀 配置步骤
### 1. 检查环境变量文件
**位置:** `backend/.env`
如果文件不存在,参考以下模板创建:
```env
# ==================== 服务器配置 ====================
PORT=3001
HOST=0.0.0.0
NODE_ENV=development
LOG_LEVEL=info
# ==================== 数据库配置 ====================
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/ai_clinical_research
# ==================== Redis配置 ====================
REDIS_URL=redis://localhost:6379
# ==================== JWT配置 ====================
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRES_IN=7d
# ==================== LLM API配置 ====================
# DeepSeek
DEEPSEEK_API_KEY=sk-your-deepseek-key
# 通义千问阿里云DashScope
DASHSCOPE_API_KEY=sk-your-qwen-key
# Gemini可选
GEMINI_API_KEY=your-gemini-key
# ==================== Dify配置 ====================
DIFY_API_KEY=app-your-dify-key
DIFY_API_URL=http://localhost/v1
# ==================== 文件上传配置 ====================
UPLOAD_MAX_SIZE=10485760
UPLOAD_DIR=./uploads
# ==================== CORS配置 ====================
CORS_ORIGIN=http://localhost:5173
```
---
### 2. 验证配置
**启动后端服务:**
```bash
cd backend
npm run dev
```
**检查启动日志:**
```
✓ Prisma schema loaded
✓ Environment variables loaded from .env
✓ Datasource "db": PostgreSQL database "ai_clinical_research"
✓ Server running on http://0.0.0.0:3001
```
**验证数据库连接:**
```bash
cd backend
npx prisma migrate status
```
**预期输出:**
```
Environment variables loaded from .env
Datasource "db": PostgreSQL database "ai_clinical_research", schema "public" at "localhost:5432"
Database schema is up to date!
```
---
### 3. 常见问题排查
#### 问题1数据库连接失败
**错误信息:**
```
Error: Can't reach database server at localhost:5432
```
**解决方案:**
1. 检查PostgreSQL是否启动
2. 验证端口5432是否被占用
3. 确认用户名密码是否正确
**检查PostgreSQL状态Windows**
```bash
# 查看服务状态
Get-Service postgresql*
# 启动服务
Start-Service postgresql-x64-15
```
---
#### 问题2LLM API调用失败
**错误信息:**
```
Error: Invalid API key
```
**解决方案:**
1. 检查API Key是否正确复制
2. 确认API Key是否已激活
3. 检查账户余额是否充足
---
#### 问题3Dify连接失败
**错误信息:**
```
Error: connect ECONNREFUSED 127.0.0.1:80
```
**解决方案:**
1. 检查Dify是否启动`docker-compose ps`
2. 启动Dify`docker-compose up -d`
3. 验证访问:浏览器打开 http://localhost
---
## 📊 配置检查清单
使用以下清单验证配置完整性:
- [ ] ✅ 数据库连接成功(`npx prisma migrate status`
- [ ] ✅ DeepSeek API Key配置且可用
- [ ] ✅ Qwen API Key配置且可用
- [ ] ✅ Dify服务运行中`docker-compose ps`
- [ ] ✅ Dify API Key已配置
- [ ] ✅ JWT密钥已配置
- [ ] ✅ 后端服务启动成功端口3001
- [ ] ✅ 前端服务启动成功端口5173
- [ ] ✅ CORS配置正确前端可访问后端API
---
## 🔄 配置更新记录
| 日期 | 更新内容 | 更新人 |
|------|---------|--------|
| 2025-11-09 | 初始配置文档创建 | 技术团队 |
| - | 待记录 | - |
---
## 📚 相关文档
- [数据库连接配置](../09-架构实施/02-数据库连接配置.md)
- [部署架构设计](../05-部署文档/01-部署架构设计.md)
- [系统架构总览](../00-项目概述/技术架构总览.md)
---
**文档版本:** v1.0
**最后更新:** 2025-11-09
**维护者:** 技术团队