forked from zhanggangyong/agent_management
7.7 KiB
7.7 KiB
代码助手 Agent 部署指南
📋 目录
部署方式
代码助手 Agent 支持多种部署方式:
- 本地部署 - 适合开发和测试
- Docker 部署 - 适合单机部署
- Docker Compose 部署 - 适合本地或小规模部署
- 云平台部署 - 适合生产环境
环境配置
必需环境变量
| 变量名 | 说明 | 示例 |
|---|---|---|
OPENAI_API_KEY |
LiteLLM Gateway API Key | sk-rxegkFOciNmQLhOHr3qP3A |
OPENAI_BASE_URL |
LiteLLM Gateway Base URL | https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io/v1 |
可选环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
LITELLM_MODEL |
模型名称 | openai:taiji/gpt-4o-mini |
API_HOST |
API 服务监听地址 | 0.0.0.0 |
API_PORT |
API 服务端口 | 8000 |
Docker 部署
1. 构建镜像
docker build -t code-assistant-agent:latest .
2. 运行容器
docker run -d \
--name code-assistant-agent \
-p 8000:8000 \
-e OPENAI_API_KEY=your_api_key \
-e OPENAI_BASE_URL=your_gateway_url \
-v $(pwd)/projects:/tmp/projects \
code-assistant-agent:latest
3. 验证部署
# 检查容器状态
docker ps | grep code-assistant-agent
# 检查健康状态
curl http://localhost:8000/health
# 查看日志
docker logs -f code-assistant-agent
Docker Compose 部署
1. 配置环境变量
创建 .env 文件:
OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=your_gateway_url
LITELLM_MODEL=openai:taiji/gpt-4o-mini
API_HOST=0.0.0.0
API_PORT=8000
2. 启动服务
docker-compose up -d
3. 查看状态
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
云平台部署
Azure Container Apps
1. 准备镜像
# 登录 Azure Container Registry
az acr login --name your-registry
# 构建并推送镜像
docker build -t your-registry.azurecr.io/code-assistant-agent:latest .
docker push your-registry.azurecr.io/code-assistant-agent:latest
2. 创建 Container App
az containerapp create \
--name code-assistant-agent \
--resource-group your-resource-group \
--image your-registry.azurecr.io/code-assistant-agent:latest \
--target-port 8000 \
--ingress external \
--env-vars \
OPENAI_API_KEY=your_key \
OPENAI_BASE_URL=your_gateway_url \
LITELLM_MODEL=openai:taiji/gpt-4o-mini
3. 配置自动扩缩容
az containerapp update \
--name code-assistant-agent \
--resource-group your-resource-group \
--min-replicas 1 \
--max-replicas 10 \
--cpu 1.0 \
--memory 2.0Gi
AWS ECS / EKS
1. 构建并推送镜像到 ECR
# 登录 ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin your-account.dkr.ecr.us-east-1.amazonaws.com
# 构建并推送
docker build -t code-assistant-agent:latest .
docker tag code-assistant-agent:latest your-account.dkr.ecr.us-east-1.amazonaws.com/code-assistant-agent:latest
docker push your-account.dkr.ecr.us-east-1.amazonaws.com/code-assistant-agent:latest
2. 创建 ECS 任务定义
创建 task-definition.json:
{
"family": "code-assistant-agent",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "1024",
"memory": "2048",
"containerDefinitions": [
{
"name": "code-assistant-agent",
"image": "your-account.dkr.ecr.us-east-1.amazonaws.com/code-assistant-agent:latest",
"portMappings": [
{
"containerPort": 8000,
"protocol": "tcp"
}
],
"environment": [
{
"name": "OPENAI_API_KEY",
"value": "your_api_key"
},
{
"name": "OPENAI_BASE_URL",
"value": "your_gateway_url"
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/code-assistant-agent",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "ecs"
}
}
}
]
}
3. 注册任务定义并创建服务
# 注册任务定义
aws ecs register-task-definition --cli-input-json file://task-definition.json
# 创建服务
aws ecs create-service \
--cluster your-cluster \
--service-name code-assistant-agent \
--task-definition code-assistant-agent \
--desired-count 2 \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[subnet-xxx],securityGroups=[sg-xxx],assignPublicIp=ENABLED}"
Google Cloud Run
1. 构建并推送镜像
# 构建镜像
gcloud builds submit --tag gcr.io/your-project/code-assistant-agent
# 或者使用 Docker
docker build -t gcr.io/your-project/code-assistant-agent .
docker push gcr.io/your-project/code-assistant-agent
2. 部署服务
gcloud run deploy code-assistant-agent \
--image gcr.io/your-project/code-assistant-agent \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars \
OPENAI_API_KEY=your_key,OPENAI_BASE_URL=your_url \
--memory 2Gi \
--cpu 1 \
--min-instances 1 \
--max-instances 10
监控和日志
健康检查
服务提供健康检查端点:
curl http://your-domain:8000/health
响应:
{
"status": "healthy",
"service": "代码助手 Agent API"
}
日志收集
Docker 日志
# 查看实时日志
docker logs -f code-assistant-agent
# 查看最近 100 行
docker logs --tail 100 code-assistant-agent
应用日志
服务使用标准输出,可以通过容器日志系统收集。
监控指标
建议监控以下指标:
- 请求速率: 每秒请求数
- 响应时间: API 响应时间
- 错误率: 5xx 错误比例
- 资源使用: CPU、内存使用率
- AI 调用: LiteLLM Gateway 调用成功率
故障排查
常见问题
1. 服务无法启动
问题: 容器启动失败
排查步骤:
# 查看容器日志
docker logs code-assistant-agent
# 检查环境变量
docker exec code-assistant-agent env | grep OPENAI
# 检查端口占用
netstat -tulpn | grep 8000
2. API 调用失败
问题: 返回 500 错误
排查步骤:
- 检查 LiteLLM Gateway 连接
- 验证 API Key 是否正确
- 查看服务日志
3. AI 调用超时
问题: 请求超时
解决方案:
- 增加超时时间配置
- 检查网络连接
- 验证 Gateway 服务状态
4. 文件操作失败
问题: 无法创建文件
排查步骤:
# 检查目录权限
ls -la /tmp/projects
# 检查磁盘空间
df -h
# 检查容器挂载
docker inspect code-assistant-agent | grep Mounts
调试模式
启用详细日志:
docker run -e LOG_LEVEL=debug ...
安全建议
- API Key 管理: 使用密钥管理服务(如 Azure Key Vault、AWS Secrets Manager)
- HTTPS: 生产环境必须使用 HTTPS
- 访问控制: 配置 API 网关或反向代理进行访问控制
- 资源限制: 设置适当的 CPU 和内存限制
- 网络隔离: 使用私有网络和防火墙规则
性能优化
- 连接池: 配置 HTTP 客户端连接池
- 缓存: 对频繁请求的结果进行缓存
- 异步处理: 使用异步任务队列处理长时间任务
- 负载均衡: 部署多个实例并使用负载均衡器
文档版本: 1.0.0
最后更新: 2025-01-08