Initial commit: 国土空间规划课程智能体 v1.0

单容器 Docker 架构的国土空间规划课程智能问答系统,集成 FastAPI 后端与 Next.js 前端。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 09:40:18 +08:00
commit ddbb79b9f6
167 changed files with 44147 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
@echo off
echo ====================================
echo 启动国土空间规划课程智能体
echo ====================================
echo.
REM 检查Docker是否运行
docker info >nul 2>&1
if errorlevel 1 (
echo [错误] Docker未运行,请先启动Docker Desktop
pause
exit /b 1
)
REM 检查.env文件
if not exist .env (
echo [提示] .env文件不存在,正在从env.example创建...
copy env.example .env
echo [提示] 请编辑.env文件配置必要的参数(API密钥等)
echo.
)
REM 启动服务
echo [信息] 正在启动服务...
docker-compose up -d
echo.
echo [信息] 服务启动完成!
echo.
echo 访问地址:
echo 前端应用: http://localhost:8001
echo 后端API: http://localhost:8000
echo API文档: http://localhost:8000/docs
echo.
echo 查看日志: docker-compose logs -f
echo 停止服务: docker-compose down
echo.
pause
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
echo "===================================="
echo "启动国土空间规划课程智能体"
echo "===================================="
echo
# 检查Docker是否运行
if ! docker info > /dev/null 2>&1; then
echo "[错误] Docker未运行,请先启动Docker"
exit 1
fi
# 检查.env文件
if [ ! -f .env ]; then
echo "[提示] .env文件不存在,正在从env.example创建..."
cp env.example .env
echo "[提示] 请编辑.env文件配置必要的参数(API密钥等)"
echo
fi
# 启动服务
echo "[信息] 正在启动服务..."
docker-compose up -d
echo
echo "[信息] 服务启动完成!"
echo
echo "访问地址:"
echo " 前端应用: http://localhost:8001"
echo " 后端API: http://localhost:8000"
echo " API文档: http://localhost:8000/docs"
echo
echo "查看日志: docker-compose logs -f"
echo "停止服务: docker-compose down"
echo
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
set -e
# 等待数据库就绪(如果使用PostgreSQL)
if [ -n "$DATABASE_URL" ] && [[ "$DATABASE_URL" == postgresql* ]]; then
echo "Waiting for database to be ready..."
until pg_isready -h db -p 5432 -U user; do
echo "Database is unavailable - sleeping"
sleep 1
done
echo "Database is ready!"
fi
# 启动supervisor(管理后端和前端进程)
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
+28
View File
@@ -0,0 +1,28 @@
[supervisord]
nodaemon=true
logfile=/dev/stdout
logfile_maxbytes=0
pidfile=/var/run/supervisord.pid
[program:backend]
command=/app/.venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8000
directory=/app
autostart=true
autorestart=true
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
environment=PYTHONPATH="/app",PYTHONUNBUFFERED="1"
[program:frontend]
command=node server.js
directory=/app/web
autostart=true
autorestart=true
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
environment=PORT="8001",HOSTNAME="0.0.0.0",NODE_ENV="production"