Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI 协作学习论坛

一个用于课程讨论的本地演示原型:原生 HTML/JavaScript 前端配合 Django API,支持板块、帖子、评论、AI 辅助回复与轻量内容管理。

这是课程演示项目,不是面向互联网的多租户论坛服务。公开仓库不包含任何运行时数据、日志、数据库或凭据。

功能

  • 板块、帖子和评论。
  • 四类 AI 协助:学生讨论、专家评估、答疑与苏格拉底追问。
  • 选中评论后定向生成回复;苏格拉底追问仅预览、不写入公共评论。
  • 基于管理员口令的本地内容隐藏与昵称限制。
  • 未配置 AI Key 时使用本地模拟回复,方便离线课堂演示。

先决条件

  • Python 3.10 或更新版本;或 Conda。
  • Node.js(仅用于 JavaScript 语法检查)。

安全配置

首次启动前必须创建本地配置,配置文件不会被 Git 跟踪:

Copy-Item backend\.env.example backend\.env
python -c "import secrets; print(secrets.token_urlsafe(48))"
python -c "import secrets; print(secrets.token_urlsafe(32))"

将两个生成值分别填入 DJANGO_SECRET_KEYADMIN_ACCESS_TOKEN。如需真实 AI,请只在 backend/.env 中设置 DEEPSEEK_API_KEY,绝不可提交该文件。

默认配置仅允许 localhost 跨域来源,服务也只监听 127.0.0.1。若确有局域网演示需求,显式传入 -BindHost <你的局域网地址>,并把该 IP 或域名加入 ALLOWED_HOSTS。使用随附前端代理时,前后端同源,无需额外放宽 CORS;若将前端部署到其他来源,才把该精确来源加入 CORS_ALLOWED_ORIGINS。不要使用通配来源。

启动

使用普通 Python:

.\scripts\start_backend_plain.ps1
# 在另一个终端中:
.\scripts\start_frontend_plain.ps1

使用 Conda:

conda env create -f environment.yml
.\scripts\start_backend_conda.ps1
# 在另一个终端中:
.\scripts\start_frontend_conda.ps1

打开 http://127.0.0.1:5500/index.html。管理员页为 http://127.0.0.1:5500/admin.html;管理员口令只在当前浏览器会话内保存。

验证

.\scripts\check_plain.ps1
#
.\scripts\check_conda.ps1

检查会运行 Django 配置检查、Python 编译、后端测试和前端 JavaScript 语法检查。

运行边界

  • AI 和匿名写入接口带有进程内限流,适合单实例课堂演示,不可视为生产级防护。
  • JSON 文件存储不适用于多人高并发或长期持久化。
  • 若对外部署,应改用成熟的认证、数据库、持久化限流、审计日志和 HTTPS 终端。

安全问题请按 SECURITY.md 私下报告。

许可证

本项目以 MIT License 发布。

About

An asynchronous collaborative learning forum for educational technology experiments and practice.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages