Group02-notes/README.md

27 lines
3.5 KiB
Markdown
Raw Normal View History

# 学习笔记整理器
## 一、团队成员与贡献
| 姓名 | 学号 | 主要贡献 (具体分工) |
|------|------|---------------------|
| 陈宏宇 | 2411020204 | 核心逻辑开发 |
| 周好 | 2411020221 | 前端界面设计 |
| 曹涵彬 | 2411020118 | 文档撰写、测试,项目讲解 |
## 二、项目介绍
学习笔记管理器主要是面对学生,帮助学生对学习笔记进行整理,管理和查询。学生可以在系统中上传自己的学习笔记,系统会对笔记进行分类和整理,同时学生也可以在系统中查询自己上传的笔记,方便自己复习和学习。
## 三、运行指南
1. 安装依赖:`uv sync`
2. 配置 Key复制 `.env.example``.env` 并填入 Key
3. 启动:`uv run streamlit run note_organizer.py`
## 四、开发心得
在开发这个学习笔记整理器的过程中,我们深刻体会到了技术与需求之间的平衡。这个项目的目的是为了帮助学生更好地管理和查询学习笔记,让学习变得更加高效有序。我们面向的主要是在校学生,他们需要记录大量的学习内容,我们希望能提供给他们一个有效的整理和检索工具。项目功能包括笔记的创建、编辑、删除、分类管理、标签系统、智能搜索、内容提炼以及导入导出等核心功能,力求为学生们提供一个简单易用的笔记管理平台。
最初我们考虑使用Chainlit框架因为它在AI交互方面表现突出但在实际开发过程中发现虽然Chainlit在对话式交互上有优势但在笔记管理功能上显得不够完善而且智能搜索的效果也没有达到预期。为了让搜索更加智能我们尝试了各种prompt设计包括语义搜索的prompt要求AI根据用户查询理解意图而非简单关键词匹配概括提取的prompt让AI对搜索结果进行智能总结和关键点提取意图识别的prompt用于判断用户是想创建、编辑还是删除笔记删除意图的prompt区分删除单个笔记、删除所有笔记还是删除某个分类的笔记以及笔记识别的prompt让AI从多个笔记中找到用户指定的目标。这些prompt设计经过多次调整包括改变temperature参数、调整max_tokens长度、优化system prompt的表述方式但效果始终不尽如人意AI经常误解用户意图或返回不相关的内容。
最终我们意识到单纯依赖AI并不能解决所有问题于是转向了更传统但更可靠的解决方案。在搜索功能上我们结合了关键词匹配和简单的语义分析虽然不如纯AI搜索那么智能但准确性和稳定性大大提升。在笔记管理方面我们采用了传统的CRUD操作配合Streamlit的交互组件让用户能够通过直观的界面进行操作而不是完全依赖自然语言交互。这种混合模式既保留了AI的辅助功能又确保了核心功能的可靠性。经过反复比较和测试最终选择了Streamlit框架它在界面设计和功能实现上更加成熟能够更好地满足我们的需求。
这次开发经历让我们对自己的技术能力有了更清晰的认识。如果没有AI的辅助我们可能根本无法独立完成这样一个项目我们在编程基础、框架使用、算法设计等方面都存在很多不足。这次经历既让我们看到了AI工具的强大也让我们明白了自己需要学习的地方还有很多未来还需要更加努力地提升自己的技术能力。