[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9033":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":14,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},9033,"ChatTutor","HugeCatLab\u002FChatTutor","HugeCatLab","👨‍🏫 ChatTutor: Visual and Interactive AI Tutor","https:\u002F\u002Fchattutor.app",null,"Vue",1205,172,8,7,0,188,1,19.71,"GNU Affero General Public License v3.0",false,"main",true,[25,26,27,28,29],"ai","ai-education","education","llm","stem","2026-06-12 02:02:01","\u003Cdiv align=\"right\">\n  \u003Cspan>[\u003Ca href=\".\u002FREADME.md\">English\u003C\u002Fa>]\u003Cspan>\n  \u003C\u002Fspan>[\u003Ca href=\".\u002FREADME_CN.md\">简体中文\u003C\u002Fa>]\u003C\u002Fspan>\n\u003C\u002Fdiv>  \n\n\u003Cdiv align=\"center\">\n\n  \u003Cimg src=\".\u002Fassets\u002Flogo.png\" alt=\"ChatTutor\" width=\"150\" height=\"150\" \u002F>\n\n  \u003Ch1>ChatTutor\u003C\u002Fh1>\n\n  \u003Cp>Visual and Interactive AI Tutor\u003C\u002Fp>\n  \n  \u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fpackage-json\u002Fv\u002FHugeCatLab\u002FChatTutor\" alt=\"Version\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FHugeCatLab\u002FChatTutor\" alt=\"License\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FHugeCatLab\u002FChatTutor?style=social\" alt=\"Stars\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FHugeCatLab\u002FChatTutor?style=social\" alt=\"Forks\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FHugeCatLab\u002FChatTutor\" alt=\"Last Commit\" \u002F>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FHugeCatLab\u002FChatTutor\" alt=\"Issues\" \u002F>\n  \u003C\u002Fdiv>\n  \n\u003C\u002Fdiv>\n\n---\n\n> [!NOTE]\n>\n> Online Website: ChatTutor is available at [https:\u002F\u002Fchattutor.app](https:\u002F\u002Fchattutor.app), please set your own API key and models in the settings. ([https:\u002F\u002Fchattutor.app\u002Fsettings](https:\u002F\u002Fchattutor.app\u002Fsettings))\n\nChatTutor is an AI teacher equipped with the ability to use an electronic whiteboard.\n\nTraditional chatbots interact with users primarily through text, which is sufficient in most scenarios. However, with the development of LLM in recent years, more and more people are using AI to assist their learning. In a real-world classroom, teachers have many teaching tools—chalk, computers, blackboards, and other teaching aids—that help students better understand knowledge. But for a chatbot, text can convey very limited information, especially in STEM subjects.\n\nChatTutor effectively solves this problem by bringing all the teaching tools used in real-world educational scenarios to the forefront, allowing users to interact with them through electronic devices. We've empowered AI with the ability to use these tools, enabling AI to become a truly hands-on teacher.\n\n## Features\n\n##### Math Canvas\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-math-1.png\" alt=\"Math Canvas\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-math-2.png\" alt=\"Math Canvas\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-math-3.png\" alt=\"Math Canvas\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-math-4.png\" alt=\"Math Canvas\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n##### Mindmap\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-mermaid-1.png\" alt=\"Mindmap\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cimg src=\".\u002Fassets\u002Fdemo-mermaid-2.png\" alt=\"Mindmap\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Quick Start\n\n\u003Cdetails>\u003Csummary>Environment Variables\u003C\u002Fsummary>\n\n### Database Configuration\n- `DATABASE_URL`: PostgreSQL connection string\n\n### Server & Client\n- `VITE_API_BASE_URL`: Base URL for the API server (e.g., `http:\u002F\u002Flocalhost:8002`)\n- `CLINET_BASE_URL`: Base URL for the client application (e.g., `http:\u002F\u002Flocalhost:8001`)\n\n### AI Configuration\n- `MODEL_API_KEY`: Your API key for the AI service (e.g., `your_api_key_here`)\n- `MODEL_BASE_URL`: Base URL for the AI service (optional, defaults to OpenAI)\n- `AGENT_MODEL`: Model for the main agent that chats with users (e.g., `gpt-4`)\n- `AGENT_MODEL_PROVIDER`: Model provider (options: refer to [Provider Enum](#provider-enum))\n- `TITLE_MODEL`: Model for generating chat titles (optional, defaults to `AGENT_MODEL`)\n- `TITLE_MODEL_PROVIDER`: Model provider for title generation (optional, defaults to `AGENT_MODEL_PROVIDER`, refer to [Provider Enum](#provider-enum))\n\n#### Provider Enum\n- OpenAI: `openai`\n- Anthropic: `anthropic`\n- DeepSeek: `deepseek`\n\n### OSS Configuration\n- `OSS_ENDPOINT`: OSS endpoint URL (if not set, image upload will be unavailable)\n- `OSS_ACCESS_KEY`: OSS access key\n- `OSS_SECRET_KEY`: OSS secret key\n- `OSS_BUCKET`: OSS bucket name\n- `OSS_REGION`: OSS region\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Run with Docker\u003C\u002Fsummary>\n\n### Environment\n\n> - Docker >= 24.0.0\n> - Docker Compose >= 2.22.0\n\n### Setup\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHugeCatLab\u002FChatTutor.git\ncd ChatTutor\ncp .env.example .env\n```\n\n### Run\n\n```bash\ncd docker\ndocker compose up -d\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Run with Node & Bun\u003C\u002Fsummary>\n\n### Environment\n\n> - Node.js >= 20\n> - Bun >= 1.2\n> - pnpm >= 9.1.0\n\n### Setup\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHugeCatLab\u002FChatTutor.git\ncd ChatTutor\npnpm i\n```\n\n### Development\n\n```bash\npnpm dev\n```\n\nOr:\n\n```bash\npnpm client:dev\npnpm web:dev\n```\n\n### Build\n\n```bash\npnpm build\npnpm client:start\npnpm web:start\n```\n\n\u003C\u002Fdetails>\n\n\n## Tech Stacks\n\n- [Geogebra](https:\u002F\u002Fwww.geogebra.org\u002F)\n- [Vue](https:\u002F\u002Fvuejs.org\u002F)\n- [Vite](https:\u002F\u002Fvitejs.dev)\n- [ElysiaJs](https:\u002F\u002Fhttps:\u002F\u002Felysiajs.com\u002F)\n- [AI SDK](https:\u002F\u002Fai-sdk.dev\u002F)\n\n## Sponsors\nOur sponsors are listed as follows (in no particular order):\n\n- [AiHubMix](https:\u002F\u002Faihubmix.com\u002F): Open model hub for AI.\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=HugeCatLab\u002FChatTutor&type=date&legend=top-left)](https:\u002F\u002Fwww.star-history.com\u002F#HugeCatLab\u002FChatTutor&type=date&legend=top-left)\n\n---\n**AGPL v3 License**\n\n*Copyright (c) 2025 Acbox, All rights reserved.*","ChatTutor 是一个可视化和交互式的AI辅导工具，它结合了电子白板功能以增强教学体验。其核心功能包括数学画布和思维导图等，这些工具使AI能够像真人教师一样进行直观的教学活动，尤其适用于STEM领域的学习场景。通过Vue构建的用户界面友好且响应迅速，支持自定义API密钥和模型设置，使得个性化学习成为可能。此项目非常适合需要更加互动和视觉化辅助的学习者使用。",2,"2026-06-11 03:20:53","top_language"]