Skip to content

chorylee/cartesian-ai

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cartesian AI - GeoGebra AI 交互式数学学习平台

这是一个结合了AI聊天界面和GeoGebra几何画板的交互式数学学习平台。用户可以通过自然语言与AI交互,AI会智能解析用户需求并在GeoGebra画板上绘制相应的数学图形。(正在完善中···)

🎬 演示动图

演示动图

观看完整演示动图了解平台功能

✨ 核心特性

  • 🤖 智能AI对话: 支持自然语言描述几何图形和数学概念
  • 📐 GeoGebra集成: 完整嵌入GeoGebra几何画板,支持所有绘图功能
  • 🎯 双模式绘图:
    • 简单模式: 快速绘制基础几何图形
    • 智能规划模式: 复杂图形的分步骤智能规划与执行
  • 🔄 实时交互: 流式响应,实时显示AI思考过程
  • 🌐 容器化部署: 基于Docker的完整部署方案
  • 📱 响应式设计: 支持桌面和移动设备

🏗️ 项目架构

cartesian-ai/
├── frontend/                 # Next.js 前端应用
│   ├── src/
│   │   ├── app/             # Next.js App Router
│   │   ├── components/      # React组件
│   │   │   ├── ChatPanel.tsx        # 聊天面板
│   │   │   ├── GeoGebraPanel.tsx    # GeoGebra画板
│   │   │   ├── MessageDisplay.tsx   # 消息显示
│   │   │   └── PlanningStepsDisplay.tsx # 规划步骤显示
│   │   ├── services/        # API服务层
│   │   └── types/           # TypeScript类型定义
│   ├── public/
│   │   └── geogebra/        # GeoGebra静态资源
│   └── package.json
│
├── backend/                  # Flask 后端服务
│   ├── app.py              # Flask应用入口
│   ├── routes.py           # API路由定义
│   ├── services.py         # 核心业务逻辑
│   ├── models.py           # 数据模型
│   ├── prompts.py          # AI提示词模板
│   ├── config.py           # 配置管理
│   └── requirements.txt    # Python依赖
│
├── nginx/                   # Nginx反向代理
│   ├── nginx.conf          # Nginx配置
│   └── Dockerfile
│
├── docker-compose.yml       # Docker编排配置
└── demo.mp4                # 演示视频

🚀 快速开始

方式一:Docker 部署(推荐)

  1. 克隆项目

    git clone <repository-url>
    cd cartesian-ai
  2. 配置环境变量

    cp backend/.env.example .env
    # 编辑 .env 文件,配置 OpenAI API Key
  3. 启动服务

    docker-compose up -d
  4. 访问应用

方式二:本地开发

后端服务 (Flask + Python)

  1. 进入后端目录

    cd backend
  2. 安装依赖

    pip install -r requirements.txt
  3. 配置环境变量

    cp .env.example .env
    # 编辑 .env 文件,配置必要的环境变量
  4. 启动后端服务

    python app.py

前端应用 (Next.js + React)

  1. 进入前端目录

    cd frontend
  2. 安装依赖

    npm install
  3. 启动开发服务器

    npm run dev
  4. 访问应用

🎯 功能详解

简单绘图模式

  • 一次性处理用户输入,快速生成几何图形
  • 支持基础几何图形:点、线、圆、多边形等
  • 支持数学函数:显式函数、参数方程、隐函数等

智能规划模式

  • 复杂图形的分步骤智能规划
  • 实时显示AI思考过程
  • 流式执行,逐步构建复杂图形
  • 支持画板状态管理和对象追踪

支持的图形类型

  • 基础几何: 点、直线、线段、射线、圆、椭圆
  • 多边形: 三角形、四边形、正多边形
  • 函数图像: 一次函数、二次函数、三角函数、指数函数
  • 参数方程: 圆的参数方程、椭圆参数方程等
  • 隐函数: 圆锥曲线的一般方程
  • 分段函数: 条件函数、绝对值函数等

🧪 使用示例

基础绘图

用户: "画一个圆心在原点,半径为5的圆"
AI: 执行命令 Circle((0, 0), 5)

函数绘制

用户: "绘制函数 y = x² - 2x + 1 的图像"
AI: 执行命令 f(x) = x^2 - 2*x + 1

复杂图形

用户: "画一个正六边形,并标出所有顶点"
AI: 智能规划模式,分步骤创建正六边形和顶点标注

📦 技术栈

前端技术

  • 框架: Next.js 15.4.3 (React 19.1.0)
  • 语言: TypeScript 5
  • 样式: Tailwind CSS 4
  • 图标: Lucide React
  • 构建工具: SWC

后端技术

  • 框架: Flask 2.3.3
  • 语言: Python 3.x
  • AI集成: LangChain + OpenAI API
  • 数据验证: Pydantic 2.5.0
  • 跨域支持: Flask-CORS

基础设施

  • 容器化: Docker + Docker Compose
  • 反向代理: Nginx
  • 几何引擎: GeoGebra JavaScript API

⚙️ 环境变量配置

在项目根目录创建 .env 文件:

# OpenAI API 配置
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4
OPENAI_TEMPERATURE=0.7
OPENAI_MAX_TOKENS=2000

# 服务配置
FLASK_ENV=production
FLASK_HOST=0.0.0.0
FLASK_PORT=5001

# 前端配置
PUBLIC_API_URL=http://nginx
PUBLIC_WS_URL=ws://nginx
NEXT_PUBLIC_APP_NAME=Cartesian AI
NEXT_PUBLIC_APP_VERSION=1.0.0

🔧 API 接口

简单绘图接口

POST /api/simple-draw
Content-Type: application/json

{
  "user_input": "画一个圆"
}

智能规划接口

POST /api/intelligent-plan
Content-Type: application/json

{
  "user_input": "创建一个复杂的几何图形"
}

健康检查

GET /health

🐳 Docker 部署

项目提供完整的Docker化部署方案:

  • frontend: Next.js应用容器
  • backend: Flask API服务容器
  • nginx: 反向代理和静态文件服务

所有服务通过docker-compose编排,支持一键部署。

📚 开发文档

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.2%
  • HTML 2.1%
  • TypeScript 0.5%
  • Python 0.2%
  • CSS 0.0%
  • Dockerfile 0.0%