zh-doc.md

May 30, 2024 · View on GitHub

一款网站应用,它可以根据您的知识笔记进行周期性的测试,让您真正的记住所学所写

💡 启发

对于学习者来说,最好的习惯之一应该是进行有规律的自测 - 认知天性:让学习轻而易举的心理学规律

在我平日学习某一个新的技术时,有记笔记的习惯,将重要的信息写在笔记之中。这是一个好习惯,但是,我还有一个不好的习惯就是不喜欢阅读我写过的笔记(不知道是不是大部分人都这样)。这使得我的笔记最后只成了一个纪念品,并没有实质的作用,所以我选择制作这样的一个应用,为的就是不断的通过提问让您复习您的笔记内容

🏁 开始

Important

强烈建议在上传笔记前阅读 文档最佳实践 来优化文档

克隆当前的仓库

git clone https://github.com/codeacme17/examor.git
cd examor

使用 docker compose 启动项目

docker compose up

请确保您的本机安装了 Docker,并且本地的 517175181852020 端口没有被占用

在浏览器中打开 http://localhost:51818 开始使用 examor(因为模块优化方案,在第一次加载项目或切换页面时会比较缓慢)

✨ 功能

根据文档生成问题

用户在创建笔记时,需要同时上传文档,应用会通过这些文档生成一定数量的问题,这些问题都是根据文档内容生成的,在未来这些问题会推送给用户。在创建笔记的时候,用户可以选择想要生成的题型,从而给予用户更丰富的学习内容

根据回答进行检测

在用户拿到当天的问题后,用户就可以对问题进行回答了,在此处,GPT 会为用户的回答进行打分、纠错和给予正确答案。其中分数是根据回答与所传文档的正确性的评测(0 ~ 10 分),这个分数会影响后续艾宾浩斯的记录

艾宾浩斯记忆

我实现了一个乞丐版的艾宾浩斯,目前这个艾宾浩斯只有 8 行代码,在未来我会优化这个函数(v0.1)

在 GPT 生成检测后,我会记录检测中的分值,通过分值的高低来影响未来复习的日期,也就是说分数越高下次复习的日期就会越远

角色选择

Note

建议使用 GPT-4 模型,以获得稳定的体验

角色可以为题目生成和检测创造更多的可能性,您可以在配置页面中设置角色,更多的角色简介建议查看 角色手册

题型选择

在创建笔记时选择题型

刷题的时候就可以使用不同的方式进行回答,如下图是一道单选题

🧩 模块

题库(新增 v0.4.0)

题库 中,已经积累了一些高质量的文档题目,包括默认提供的 vue-componenthello-algo 等优秀开源文档和书籍。在这一功能模块中,您可以轻松地将这些现有的题目导入到自己的笔记中。此外,也非常欢迎您贡献更多高质量的文档或书籍,以丰富我们的题库!具体的贡献方式请查看 贡献题库

笔记管理

笔记管理 是一个管理您已上传的所有文档的模块,在该门块中您可以对您已上传的笔记进行删除或新增文件的管理,当然如果您删除了一个笔记下的所有文档即问题都会被清除

随机提问

随机提问 是一个从现有的问题库中随机抽取一个问题的模块,该模块中可以实现对问题的抽答

笔记

笔记 是一个抽象的模块,在应用中会根据您创建的每个笔记而生成一个笔记模块,在该模块中,您可以回答该笔记中的问题。并且问题的推送是根据艾宾浩斯记忆曲线实现的,比如您会收到三类的问题数据:

  • 今日需复习的题目:顾名思义,这是当天需要对以往回答过题目尽心当天复习的问题数据

  • 已过期的题目:这是由于没有在当天准时的完成需要复习的题目,所以会被收集到这个问题数据之中

  • 新增的题目:当以上两个数据集中,没有满足用户所定义的每日题目数量,则这个数据集将作为问题的补充,推送给用户

检测

检测 是最为核心的模块,在该模块中,用户可以对问题进行回答,从而让 GPT 对回答进行打分和检测。该模块中有着三个组件:

  • 回答:用户输入答案,提交后可以显示出检测的内容

  • 上次的记录:记录用户上一次对该问题的回答和检测的内容

  • 文档内容:该组件中会展示用户实际上传的文档内容,也就是产生这个问题的依据和最终答案

♻️ 更新项目

当在启动项目的时候,应用会判断是否需要更新,如果版本需要进行更新则会提醒用户。您可以通过以下几步进行更新:

  1. 将您的笔记、问题或配置项通过个人配置页面中的 导出配置及笔记 按钮进行导出作为备份。这将会导出一个名为 examor-data.xlsx 的文件,您可以查看文件内容,但不建议对文件内容进行修改
  1. 重新拉取更新最新的远程代码,更新本地的项目

  2. 删除原有的 docker 容器,使用 docker compose up --build 命令重新构建最新的项目

  3. 构建成功后进入个人配置页面,点击 文件导入 按钮,将备份过的数据重新导入到项目中

目前的更新方式是我个人的使用方式,这一定不是最好的更新方式。如果您有更好的更新方法,十分欢迎在 issus 中提供帮助 ❤️