feat: Phase 1 — ReAct loop + Markdown rendering + Docker deployment
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>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
3263b15554
commit
251c6586f4
@@ -0,0 +1,84 @@
|
||||
# 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"
|
||||
Reference in New Issue
Block a user