Intelligent CU 是一个基于AI的智能学习助手系统,为香港中文大学的学生提供个性化的学习支持。
- 用户注册和登录
- 邀请码系统
- JWT token认证
- 用户偏好设置
- 与AI助手进行自然语言对话
- 支持文件上传和附件
- 流式响应显示
- RAG(检索增强生成)支持
- 聊天历史记录管理
- 课程创建、编辑和删除
- 按学期组织课程
- 文件上传和管理
- 课程资源分类(大纲、教程、讲座、作业、考试等)
- 课程专属聊天功能
- 支持多种文件格式(PDF、DOC、TXT、图片等)
- 文件上传到课程文件夹
- 文件预览和下载
- 全局文件管理
- 主题切换(浅色/深色/系统)
- 语言设置(中文/英文)
- 用户信息管理
- 余额和消费记录查看
- 前端框架: React 18 + TypeScript
- 路由管理: React Router v6
- 状态管理: React Context API
- 样式: CSS3 + 响应式设计
- 构建工具: Create React App
- API通信: Fetch API
src/
├── components/ # 可复用组件
│ ├── Chat.tsx # 聊天组件
│ ├── CourseChat.tsx # 课程聊天组件
│ ├── Courses.tsx # 课程组件
│ ├── Layout.tsx # 布局组件
│ ├── Settings.tsx # 设置组件
│ └── Sidebar.tsx # 侧边栏组件
├── pages/ # 页面组件
│ ├── ChatPage.tsx # 聊天页面
│ ├── CoursesPage.tsx # 课程页面
│ ├── SettingsPage.tsx # 设置页面
│ └── LoginPage.tsx # 登录页面
├── contexts/ # React Context
│ └── AuthContext.tsx # 认证上下文
├── utils/ # 工具函数
│ └── api.ts # API服务层
├── types/ # TypeScript类型定义
│ └── index.ts # 类型定义文件
└── styles/ # 全局样式
├── globals.css # 全局样式
└── variables.css # CSS变量
POST /api/v1/auth/login- 用户登录POST /api/v1/auth/register- 用户注册GET /api/v1/auth/me- 获取当前用户信息PUT /api/v1/auth/me- 更新用户信息
GET /api/v1/chats- 获取聊天列表POST /api/v1/chats- 创建新聊天GET /api/v1/chats/{chat_id}- 获取聊天详情POST /api/v1/chats/{chat_id}/messages- 发送消息GET /api/v1/chats/{chat_id}/messages- 获取聊天消息DELETE /api/v1/chats/{chat_id}- 删除聊天
GET /api/v1/courses- 获取课程列表POST /api/v1/courses- 创建课程PUT /api/v1/courses/{course_id}- 更新课程DELETE /api/v1/courses/{course_id}- 删除课程
POST /api/v1/files/upload- 上传文件GET /api/v1/files- 获取文件列表GET /api/v1/files/{file_id}- 获取文件详情DELETE /api/v1/files/{file_id}- 删除文件
GET /api/v1/folders- 获取文件夹列表POST /api/v1/folders- 创建文件夹GET /api/v1/folders/{folder_id}/files- 获取文件夹中的文件
- Node.js 16+
- npm 或 yarn
npm installnpm start项目将在 http://localhost:3000 启动
npm run build创建 .env 文件并配置以下变量:
REACT_APP_API_BASE_URL=http://localhost:8000/api/v1- 访问应用首页,系统会自动跳转到登录页面
- 新用户需要邀请码进行注册
- 登录后可以访问所有功能
- 点击"聊天"页面开始与AI助手对话
- 支持文本输入和文件上传
- 可以查看聊天历史和RAG来源
- 在"课程"页面创建和管理课程
- 按学期组织课程内容
- 上传课程相关文件到不同分类
- 在"设置"页面调整主题和语言
- 查看账户余额和消费记录
- 管理个人信息
- 在
src/types/index.ts中定义相关类型 - 在
src/utils/api.ts中添加API方法 - 在组件中使用API方法
- 在
src/pages/中创建页面组件 - 在
src/App.tsx中添加路由 - 在
src/components/Sidebar.tsx中添加导航
- 使用CSS模块或普通CSS
- 遵循响应式设计原则
- 使用CSS变量保持一致性
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 项目维护者: [您的姓名]
- 邮箱: [您的邮箱]
- 项目链接: [项目GitHub链接]