Sprint 1-3 Completed (Backend + Frontend): Backend (Sprint 1-2): - Implement 5-layer Agent framework (Query->Planner->Executor->Tools->Reflection) - Create agent_schema with 6 tables (agent_definitions, stages, prompts, sessions, traces, reflexion_rules) - Create protocol_schema with 2 tables (protocol_contexts, protocol_generations) - Implement Protocol Agent core services (Orchestrator, ContextService, PromptBuilder) - Integrate LLM service adapter (DeepSeek/Qwen/GPT-5/Claude) - 6 API endpoints with full authentication - 10/10 API tests passed Frontend (Sprint 3): - Add Protocol Agent entry in AgentHub (indigo theme card) - Implement ProtocolAgentPage with 3-column layout - Collapsible sidebar (Gemini style, 48px <-> 280px) - StatePanel with 5 stage cards (scientific_question, pico, study_design, sample_size, endpoints) - ChatArea with sync button and action cards integration - 100% prototype design restoration (608 lines CSS) - Detailed endpoints structure: baseline, exposure, outcomes, confounders Features: - 5-stage dialogue flow for research protocol design - Conversation-driven interaction with sync-to-protocol button - Real-time context state management - One-click protocol generation button (UI ready, backend pending) Database: - agent_schema: 6 tables for reusable Agent framework - protocol_schema: 2 tables for Protocol Agent - Seed data: 1 agent + 5 stages + 9 prompts + 4 reflexion rules Code Stats: - Backend: 13 files, 4338 lines - Frontend: 14 files, 2071 lines - Total: 27 files, 6409 lines Status: MVP core functionality completed, pending frontend-backend integration testing Next: Sprint 4 - One-click protocol generation + Word export
143 lines
3.7 KiB
PowerShell
143 lines
3.7 KiB
PowerShell
# Node.js后端 - 重新构建并推送镜像到ACR
|
||
# 创建时间: 2025-12-24
|
||
# 原因: 修复缺少config目录的问题
|
||
|
||
Write-Host "============================================" -ForegroundColor Cyan
|
||
Write-Host "🚀 Node.js后端 - 重新构建镜像" -ForegroundColor Cyan
|
||
Write-Host "============================================" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
|
||
# 1. 确认当前目录
|
||
$currentDir = Get-Location
|
||
Write-Host "📁 当前目录: $currentDir" -ForegroundColor Yellow
|
||
if ($currentDir.Path -notlike "*\backend") {
|
||
Write-Host "❌ 错误: 请在 backend 目录下运行此脚本!" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
|
||
# 2. 检查必需文件
|
||
Write-Host ""
|
||
Write-Host "🔍 检查必需文件..." -ForegroundColor Yellow
|
||
$requiredFiles = @("Dockerfile", "dist", "config", "package.json", "prisma")
|
||
foreach ($file in $requiredFiles) {
|
||
if (Test-Path $file) {
|
||
Write-Host " ✅ $file" -ForegroundColor Green
|
||
} else {
|
||
Write-Host " ❌ $file 不存在!" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
}
|
||
|
||
# 3. 登录ACR
|
||
Write-Host ""
|
||
Write-Host "🔐 登录阿里云容器镜像服务 (ACR)..." -ForegroundColor Yellow
|
||
docker login `
|
||
--username=gofeng117@163.com `
|
||
--password=fengzhibo117 `
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "❌ ACR登录失败!" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
Write-Host "✅ ACR登录成功" -ForegroundColor Green
|
||
|
||
# 4. 构建镜像
|
||
Write-Host ""
|
||
Write-Host "🏗️ 开始构建Docker镜像..." -ForegroundColor Yellow
|
||
Write-Host " 镜像名称: backend-service:v1.1" -ForegroundColor Cyan
|
||
Write-Host " 修复内容: 添加config目录(agents.yaml等配置文件)" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
|
||
$imageName = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service"
|
||
$imageTag = "v1.1"
|
||
|
||
docker build -t "${imageName}:${imageTag}" .
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "❌ 镜像构建失败!" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
Write-Host "✅ 镜像构建成功: ${imageName}:${imageTag}" -ForegroundColor Green
|
||
|
||
# 5. 推送镜像到ACR
|
||
Write-Host ""
|
||
Write-Host "📤 推送镜像到ACR..." -ForegroundColor Yellow
|
||
docker push "${imageName}:${imageTag}"
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "❌ 镜像推送失败!" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
Write-Host "✅ 镜像推送成功" -ForegroundColor Green
|
||
|
||
# 6. 同时打上latest标签(可选)
|
||
Write-Host ""
|
||
Write-Host "🏷️ 打上latest标签..." -ForegroundColor Yellow
|
||
docker tag "${imageName}:${imageTag}" "${imageName}:latest"
|
||
docker push "${imageName}:latest"
|
||
Write-Host "✅ latest标签已推送" -ForegroundColor Green
|
||
|
||
# 7. 完成
|
||
Write-Host ""
|
||
Write-Host "============================================" -ForegroundColor Cyan
|
||
Write-Host "🎉 镜像构建和推送完成!" -ForegroundColor Green
|
||
Write-Host "============================================" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
Write-Host "📋 镜像信息:" -ForegroundColor Yellow
|
||
Write-Host " 公网地址: ${imageName}:${imageTag}" -ForegroundColor Cyan
|
||
Write-Host " VPC地址: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:${imageTag}" -ForegroundColor Cyan
|
||
Write-Host ""
|
||
Write-Host "📝 下一步操作:" -ForegroundColor Yellow
|
||
Write-Host " 1. 登录SAE控制台: https://sae.console.aliyun.com/" -ForegroundColor White
|
||
Write-Host " 2. 找到应用: nodejs-backend-test" -ForegroundColor White
|
||
Write-Host " 3. 配置管理 → 部署配置 → 镜像设置" -ForegroundColor White
|
||
Write-Host " 4. 修改镜像版本为: v1.1" -ForegroundColor White
|
||
Write-Host " 5. 保存并重新部署" -ForegroundColor White
|
||
Write-Host ""
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|