利用 AI 编程智能体,将抽象的物理/数学问题转化为可视化的、可交互的动态模拟,实现"一图胜千言"的沉浸式学习

利用 AI 编程智能体,将抽象的物理/数学问题转化为可视化的、可交互的动态模拟,实现"一图胜千言"的沉浸式学习。

技术栈

  • 前端: Next.js 14 + React 18 + Tailwind CSS + Radix UI

  • 后端: Next.js API Routes + LangChain Agent

  • 数据库: PostgreSQL (pgvector) + SQLite

  • AI: DeepSeek / OpenAI / Anthropic / Ollama 多模型支持

  • 可视化: D3.js + Matter.js 物理引擎 + Canvas 2D/3D

快速开始(Docker Compose)

# 1. 克隆仓库
git clone https://gitee.com/uncle-stone/PhysiMindAI.git
cd PhysiMindAI

# 2. 配置环境变量
cp app/.env.example app/.env
# 编辑 app/.env,至少填入一个 LLM API Key

# 3. 一键部署
# Windows:
.\deploy.ps1

# Linux / Mac:
chmod +x deploy.sh && ./deploy.sh

部署完成后:

  • 主页面: http://localhost:3000

  • 管理后台: http://localhost:3000/admin

  • 题库爬虫: http://localhost:3000/admin/spider

部署选项

# 不使用 Ollama(仅用云端 API)
.\deploy.ps1 --no-ollama

# 强制重新构建镜像
.\deploy.ps1 --build

# 清除所有数据重新开始
.\deploy.ps1 --clean

手动 Docker Compose 操作

# 启动全部服务(含 Ollama)
docker compose --profile full up -d

# 仅启动数据库 + 应用(不含 Ollama)
docker compose up -d

# 查看日志
docker compose logs -f app

# 停止
docker compose down

# 完全清除(含数据卷)
docker compose down -v

本地开发

cd app
cp .env.example .env    # 编辑 .env 填入配置

npm install
npx prisma generate --schema=prisma/question-bank.prisma
npm run dev             # http://localhost:3000

项目结构

PhysiMindAI/
├── app/                    # Next.js 主应用
│   ├── src/
│   │   ├── agents/         # LangChain Agent 节点
│   │   ├── app/api/        # API 路由
│   │   ├── components/     # React 组件
│   │   ├── hooks/          # 自定义 Hooks
│   │   ├── lib/            # 核心库(LLM、RAG、题库)
│   │   └── orchestrator/   # 编排器
│   ├── prisma/             # 数据库 Schema
│   ├── Dockerfile
│   └── .env.example
├── docker-compose.yml      # 容器编排
├── deploy.ps1              # Windows 部署脚本
└── deploy.sh               # Linux/Mac 部署脚本