# 克隆项目
git clone <repository-url>
cd imes
# 检查Python版本
python --version # 需要 >= 3.11
# 安装uv包管理器
pip install uv
# 同步依赖
uv sync
# 或者使用pip安装
pip install -r requirements.txt
# 创建环境配置文件
cat > .env << EOF
MES_AI_OPENAI_API_KEY=your_openai_api_key_here
MES_AI_DEBUG=true
MES_AI_PORT=8000
MES_AI_LOG_LEVEL=INFO
EOF
# 使用启动脚本(推荐)
python scripts/start.py
# 或直接启动
python main.py
# 健康检查
curl http://localhost:8000/api/v1/health
# 测试聊天接口
curl -X POST "http://localhost:8000/api/v1/chat" \
-H "Content-Type: application/json" \
-d '{"message": "你好,我想了解系统功能"}'
FROM python:3.11-slim
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 复制项目文件
COPY . .
# 安装Python依赖
RUN pip install uv
RUN uv sync
# 创建必要目录
RUN mkdir -p knowledge_base logs
# 暴露端口
EXPOSE 8000
# 启动命令
CMD ["python", "main.py"]
version: '3.8'
services:
mes-ai:
build: .
ports:
- "8000:8000"
environment:
- MES_AI_OPENAI_API_KEY=${OPENAI_API_KEY}
- MES_AI_DEBUG=false
- MES_AI_LOG_LEVEL=INFO
volumes:
- ./knowledge_base:/app/knowledge_base
- ./logs:/app/logs
restart: unless-stopped
# 可选:添加Redis缓存
redis:
image: redis:7-alpine
ports:
- "6379:6379"
restart: unless-stopped
# 生产环境配置
export MES_AI_OPENAI_API_KEY="your_production_api_key"
export MES_AI_DEBUG=false
export MES_AI_WORKERS=4
export MES_AI_LOG_LEVEL=WARNING
export MES_AI_LOG_FILE="/var/log/mes-ai/app.log"
export MES_AI_SECRET_KEY="your-secure-secret-key"
export MES_AI_CORS_ORIGINS='["https://your-domain.com"]'
# 安装Gunicorn
pip install gunicorn
# 启动服务
gunicorn src.app:app \
--host 0.0.0.0 \
--port 8000 \
--workers 4 \
--worker-class uvicorn.workers.UvicornWorker \
--access-logfile /var/log/mes-ai/access.log \
--error-logfile /var/log/mes-ai/error.log
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# /etc/systemd/system/mes-ai.service
[Unit]
Description=MES AI Service
After=network.target
[Service]
Type=exec
User=mes-ai
Group=mes-ai
WorkingDirectory=/opt/mes-ai
Environment=PATH=/opt/mes-ai/venv/bin
ExecStart=/opt/mes-ai/venv/bin/python main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
# 启用并启动服务
sudo systemctl enable mes-ai.service
sudo systemctl start mes-ai.service
sudo systemctl status mes-ai.service
# 查看实时日志
tail -f logs/imes.log
# 查看错误日志
grep "ERROR" logs/imes.log
# 日志轮转配置
# 在/etc/logrotate.d/mes-ai中配置
# 检查服务状态
curl http://localhost:8000/api/v1/health
# 监控系统资源
htop
free -h
df -h
# 备份知识库
tar -czf knowledge_base_backup_$(date +%Y%m%d).tar.gz knowledge_base/
# 备份配置文件
cp .env .env.backup.$(date +%Y%m%d)
服务无法启动
# 检查端口占用
lsof -i :8000
# 检查Python版本
python --version
# 检查依赖安装
uv sync --check
OpenAI API调用失败
# 测试API连接
curl -H "Authorization: Bearer $MES_AI_OPENAI_API_KEY" \
https://api.openai.com/v1/models
内存使用过高
# 调整worker数量
export MES_AI_WORKERS=2
# 监控内存使用
ps aux | grep python
API密钥安全
网络安全
访问控制
缓存策略
资源优化
监控指标