Backend: - Enterprise Agent refactored from single-round to ReAct multi-turn loop - New agent.ts (LLM decision node) + tool-executor.ts (tool execution + Gen-UI) - tool-defs.ts extracted for shared tool schemas - MAX_ITERATIONS=6 safeguard against infinite loops Frontend: - MessageBubble: Markdown + code highlighting + LaTeX + tables - ThemeToggle: light/dark/system theme cycling - chart-result Gen-UI card: recharts bar/line/pie/area charts Infrastructure: - Docker Compose (lightweight): only LangGraph + Frontend, Azure cloud for PG/Redis/Blob - Dockerfiles for dev (hot reload) and prod - Makefile with dev/prod/down/logs commands - Updated CLAUDE.md and agent definitions for LangGraph.js architecture Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
85 lines
3.2 KiB
Makefile
85 lines
3.2 KiB
Makefile
# SOC Chat Clone - Local Docker Commands (lightweight)
|
|
# 基础设施用 Azure 云服务,本地只运行 LangGraph Server + Frontend
|
|
# ====================================================================
|
|
# make dev - 开发模式(热重载)
|
|
# make prod - 生产模式
|
|
# make down - 停止
|
|
# make logs - 查看日志
|
|
|
|
.PHONY: dev prod down logs clean status setup check-env build-dev build-prod restart-backend restart-frontend
|
|
|
|
# ─── Environment ─────────────────────────────────────────────────
|
|
check-env:
|
|
@if [ ! -f langgraph/.env ]; then \
|
|
echo "ERROR: langgraph/.env not found."; \
|
|
echo " Run: make setup"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
setup:
|
|
@if [ ! -f langgraph/.env ]; then \
|
|
cp langgraph/.env.docker.example langgraph/.env; \
|
|
echo "Created langgraph/.env — 请检查并填入 GOOGLE_API_KEY 等缺失值"; \
|
|
else \
|
|
echo "langgraph/.env already exists, skipping."; \
|
|
fi
|
|
|
|
# ─── Development ─────────────────────────────────────────────────
|
|
dev: check-env
|
|
docker compose --profile dev up --build
|
|
|
|
dev-d: check-env
|
|
docker compose --profile dev up --build -d
|
|
|
|
build-dev:
|
|
docker compose --profile dev build
|
|
|
|
# ─── Production ──────────────────────────────────────────────────
|
|
prod: check-env
|
|
docker compose --profile prod up --build
|
|
|
|
prod-d: check-env
|
|
docker compose --profile prod up --build -d
|
|
|
|
build-prod:
|
|
docker compose --profile prod build
|
|
|
|
# ─── Lifecycle ───────────────────────────────────────────────────
|
|
down:
|
|
docker compose --profile dev --profile prod down
|
|
|
|
clean:
|
|
docker compose --profile dev --profile prod down --rmi local
|
|
@echo "All containers stopped and images removed."
|
|
|
|
restart-backend:
|
|
docker compose restart langgraph-dev 2>/dev/null || docker compose restart langgraph-prod 2>/dev/null
|
|
|
|
restart-frontend:
|
|
docker compose restart frontend-dev 2>/dev/null || docker compose restart frontend-prod 2>/dev/null
|
|
|
|
# ─── Observability ───────────────────────────────────────────────
|
|
logs:
|
|
docker compose --profile dev --profile prod logs -f
|
|
|
|
logs-backend:
|
|
docker compose logs -f langgraph-dev langgraph-prod 2>/dev/null
|
|
|
|
logs-frontend:
|
|
docker compose logs -f frontend-dev frontend-prod 2>/dev/null
|
|
|
|
status:
|
|
@echo "=== Container Status ==="
|
|
@docker compose --profile dev --profile prod ps
|
|
@echo ""
|
|
@echo "=== Endpoints ==="
|
|
@echo " Frontend (dev): http://localhost:5173"
|
|
@echo " Frontend (prod): http://localhost:3000"
|
|
@echo " LangGraph API: http://localhost:2024"
|
|
@echo ""
|
|
@echo "=== Azure Cloud Services ==="
|
|
@echo " PostgreSQL: dataope.postgres.database.azure.com"
|
|
@echo " Redis: oper.redis.cache.windows.net:6380"
|
|
@echo " Blob: authdatablol.blob.core.windows.net"
|
|
@echo " Service Bus: databus.servicebus.windows.net"
|