forked from xiaohei/taiji-AI-PAD
8.0 KiB
8.0 KiB
Taiji AI PAD 后端快速开始指南
概述
本指南将帮助你在5分钟内启动Taiji AI PAD后端服务。
快速启动(本地开发)
1. 克隆并进入项目
cd /home/taiji/tools/taiji-AI-PAD/services/mcp-server
2. 安装依赖
# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
3. 配置环境变量(可选)
创建 .env 文件:
cat > .env << EOF
# 应用环境
ENVIRONMENT=development
DEBUG=true
# 数据库(使用Azure PostgreSQL)
DATABASE_URL=postgresql+asyncpg://taiji:By%40123456.@taijipda.postgres.database.azure.com:5432/postgres?sslmode=require
# Redis(使用Azure Redis)
REDIS_URL=rediss://:nkJgt1ERFpdeYrEFNyFtsc5K4ycvx2jIeAzCaGGf1OQ%3D@taiji.southeastasia.redis.azure.net:10000/0?ssl_cert_reqs=none
# JWT密钥
JWT_SECRET=zsbgnw
# 加密密钥
ENCRYPTION_KEY=zsbgnw
EOF
4. 初始化数据库
python -c "from database import init_db; import asyncio; asyncio.run(init_db())"
5. 启动服务
python main.py
服务将在 http://localhost:8000 启动。
6. 验证服务
打开浏览器访问:
- API文档: http://localhost:8000/docs
- 健康检查: http://localhost:8000/health
测试API
登录获取Token
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "admin@taiji-ai.com",
"password": "admin123",
"role": "user"
}'
将返回的token保存:
export TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
测试用户API
# 获取仪表板统计
curl http://localhost:8000/api/user/dashboard/stats \
-H "Authorization: Bearer $TOKEN"
# 获取余额
curl http://localhost:8000/api/user/billing/balance \
-H "Authorization: Bearer $TOKEN"
Docker部署(本地测试)
1. 构建镜像
docker build -t mcp-server:latest .
2. 运行容器
docker run -d \
--name mcp-server \
-p 8000:8000 \
-e DATABASE_URL="postgresql+asyncpg://taiji:By%40123456.@taijipda.postgres.database.azure.com:5432/postgres?sslmode=require" \
-e REDIS_URL="rediss://:nkJgt1ERFpdeYrEFNyFtsc5K4ycvx2jIeAzCaGGf1OQ%3D@taiji.southeastasia.redis.azure.net:10000/0?ssl_cert_reqs=none" \
mcp-server:latest
3. 查看日志
docker logs -f mcp-server
Azure AKS部署(生产环境)
前置条件
- Azure CLI已安装
- kubectl已安装
- 已创建AKS集群
- 已配置ACR
一键部署
# 设置环境变量
export RESOURCE_GROUP="taiji-ai-rg"
export AKS_CLUSTER_NAME="taiji-aks-cluster"
export ACR_NAME="taijiregistry"
export LOCATION="southeastasia"
# 运行部署脚本
cd scripts
chmod +x deploy-azure.sh
./deploy-azure.sh
详细部署步骤请参考 DEPLOY_AZURE.md。
目录结构
services/mcp-server/
├── app/ # 应用代码
│ ├── routes/ # API路由
│ │ ├── auth.py # 认证
│ │ ├── user.py # 用户侧
│ │ ├── channel.py # 渠道
│ │ ├── admin.py # 管理员
│ │ └── providers.py # 供应商
│ ├── billing.py # 计费逻辑
│ ├── schemas.py # Pydantic模型
│ └── auth.py # 认证工具
├── models.py # 数据库模型
├── database.py # 数据库配置
├── config.py # 配置管理
├── main.py # 应用入口
├── requirements.txt # Python依赖
├── Dockerfile # Docker配置
├── k8s/ # Kubernetes配置
│ ├── deployment.yaml
│ ├── secrets.yaml
│ └── ingress.yaml
└── scripts/ # 部署脚本
└── deploy-azure.sh
API端点概览
认证 (/api/auth)
POST /login- 登录POST /logout- 登出POST /refresh- 刷新TokenPUT /password- 修改密码GET /keys/info- 获取API密钥POST /keys/regenerate- 重新生成密钥
用户 (/api/user)
GET /dashboard/stats- 仪表板统计GET /agents/activity- Agent活动POST /gateway/select- 选择网关POST /tools/generate- 生成工具GET /agents/platform- 平台AgentPOST /workflows/create- 创建工作流GET /billing/balance- 获取余额POST /billing/recharge- 充值
渠道 (/api/channel)
GET /tenants- 租户列表POST /tenants/create- 创建租户POST /tenants/{id}/recharge- 充值PUT /tenants/{id}/credit- 设置授信GET /billing/stats- 计费统计
管理员 (/api/admin)
GET /dashboard/stats- 平台统计GET /channels- 渠道列表POST /channels/create- 创建渠道GET /channels/applications- 申请列表PUT /channels/applications/{id}/review- 审批GET /billing/overview- 三维度计费
供应商 (/api/providers)
GET /models- 模型供应商列表POST /models/create- 创建供应商GET /models/{id}- 供应商详情PUT /models/{id}- 更新供应商
核心功能
EU计算
# 1 EU = 10秒,不足10秒按1 EU
duration = 60 # 秒
eu = math.ceil(duration / 10) # 6 EU
cost = eu * 0.01 # ¥0.06
余额与授信
可用额度 = 账户余额 + 授信额度
# 消费优先扣除余额,余额不足使用授信
工作流限制
# 最多3个Agent节点
if len(nodes) > 3:
raise ValueError("工作流最多支持3个Agent节点")
常见问题
Q: 数据库连接失败?
确保防火墙规则允许你的IP访问Azure Database for PostgreSQL:
az postgres flexible-server firewall-rule create \
--resource-group taiji-ai-rg \
--name taijipda \
--rule-name MyIP \
--start-ip-address YOUR_IP \
--end-ip-address YOUR_IP
Q: Redis连接超时?
检查Azure Cache for Redis的访问策略和防火墙设置。
Q: 如何创建初始管理员账号?
数据库初始化时会自动创建:
- 用户名: admin
- 邮箱: admin@taiji-ai.com
- 密码: admin123
- 角色: super_admin
生产环境务必修改密码!
Q: 如何查看日志?
本地开发:
tail -f logs/mcp-server.log
Docker:
docker logs -f mcp-server
Kubernetes:
kubectl logs -f -l app=mcp-server -n taiji-ai
Q: 如何更新部署?
# 构建新镜像
docker build -t ${ACR_NAME}.azurecr.io/mcp-server:v2 .
docker push ${ACR_NAME}.azurecr.io/mcp-server:v2
# 更新K8s部署
kubectl set image deployment/mcp-server \
mcp-server=${ACR_NAME}.azurecr.io/mcp-server:v2 \
-n taiji-ai
# 查看滚动更新状态
kubectl rollout status deployment/mcp-server -n taiji-ai
监控和调试
健康检查
curl http://localhost:8000/health
Prometheus指标
curl http://localhost:8000/metrics
数据库状态
from database import health_check
import asyncio
result = asyncio.run(health_check())
print(result)
性能优化建议
- 数据库连接池: 已配置20个连接
- Redis缓存: 用于会话和临时数据
- 异步I/O: 使用AsyncIO提高并发
- 索引优化: 主要查询字段已添加索引
- HPA扩缩容: 生产环境自动扩缩容
安全建议
-
生产环境必须:
- 修改默认密码
- 使用强JWT密钥
- 启用HTTPS
- 配置防火墙规则
- 定期备份数据库
-
推荐使用:
- Azure Key Vault存储密钥
- Azure Monitor监控
- 定期安全扫描
- API速率限制
下一步
- 📖 阅读完整部署指南:
DEPLOY_AZURE.md - ✅ 运行验证测试:
BACKEND_VERIFICATION.md - 📝 查看实现总结:
BACKEND_IMPLEMENTATION_SUMMARY.md - 🔍 查看API文档: http://localhost:8000/docs
获取帮助
- 📧 Email: admin@taiji-ai.com
- 📚 文档: 查看项目根目录的所有MD文件
- 🐛 问题追踪: GitHub Issues
祝你使用愉快! 🎉