LearnGo 源自谐音【懒狗】,是一款基于增强检索生成 (RAG) 的学科知识助手应用,旨在帮助用户在登录后的学习过程中快速获取相关学科的知识、生成智能精美笔记、实时物体识别翻译并积累词汇。应用整合了多项先进技术,提供个性化的学习体验。
因为作者就是懒狗 嘻嘻
.----. | 我
_.'__ `. | 在
.--(懒)(狗)---/#\ | 华
.' @ /###\ | 师
: , ##### | 很
`-..__.-' _.-\###/ | 想
`;_: `"' | 翘
.'"""""`. | 课
/, 懒 ,\ | 出
// 狗 \\ | 去
`-._______.-' | 玩
___`. | .'___ | Holy
(______|______) | Moly
LearnGo 是一款集多种功能于一体的学习工具,旨在提升用户的学习效率
- 📚 学科知识助手 - 基于增强检索的知识生成,让你轻松获取学习资料。
- 🎤 语音识别 & 实时翻译 - 支持实时物体识别翻译,为你的跨语言交流提供便利。
- 📝 智能笔记生成 - 自动生成并输出为 Markdown 格式,轻松管理笔记。
- 📄 文档处理 - 支持文件上传与 OCR 文本提取,快速获取文档内容。
- 🌐 多语言支持 - 提供本地存储与数据加密,确保隐私。
💡 提升学习效率,享受便捷智能!
登陆注册 |
设置页面 |
学科聊天助手 |
笔记整理助手 |
AR翻译助手 |
完整功能演示视频 点击查看哔哩哔哩视频 |
通过整合多种技术,LearnGo 提供了强大的学科知识支持,用户可以通过选择对应学科的聊天窗口与该学科助手进行交互。
- Prompt Engineering: 使用少量示例和思维链 (CoT) 技术优化模型响应。
- RAG 技术: 采用 GraphRAG(待定) 和嵌入 (Embedding) 技术进行知识检索。
- OCR 光学文本提取: 利用光学字符识别技术提取上传文档的文本。
- 语音识别: 使用 Apple 的语音框架进行语音输入。
- 文档处理: 利用 PDFKit 进行 PDF 文档的解析。
- 用户可与不同学科的助手互动,例如在博弈论聊天窗口提问【What is Prison Dilemma?】。
- 学科助手会优先匹配已建立的知识库,结合 Prompt Engineering 提供符合用户需求的回答。
- 支持上传 PDF 文件,系统将通过 OCR 提取文本内容并用于问题解答。
- 支持多语言输入。
- 支持本地永久存储聊天记录。
通过微调后的 LLM 生成高质量的学习笔记。
- Fine-Tuning LLM: 利用 150 份精选笔记微调模型,提升生成笔记的质量。
- OCR: 提取上传文档的文本,结合关键词生成笔记。
- Prompt Engineering: 优化笔记的格式,确保输出内容结构清晰。
- 用户可以在课堂上记录琐碎的笔记关键字。
- 课后选择该堂课的资料 PDF 格式文件上传(授课的 PPT 或是电子书)。
- 点击生成就可以整理出十分精美和有条理的笔记。
- 支持多种格式导出,可以导出图片到相册,也可以保存为其他文件。
调用摄像头实时识别物体,并对物体名称(英文)翻译成【繁体中文】与【简体中文】。
- 机器学习模型: MobileNetV2 和 YOLOv3。
- 翻译词典: CC-CEDICT 词典。
前期开发为了方便测试,目前使用的是图片识别,视频识别已经放在前瞻功能之中使用。
点击发音的功能也已经集成但是模拟器中不可用。
- 用户可以选择合适的媒体(目前是照片),在预览框中可见。
- 确认 Scan 后两个模型会分别给出识别到的物体名称(英文)。
- 同时会将 MobileNetV2 识别出的物体名称分别翻译为繁体中文和简体中文。
- 同时点击名称会呈现单词的对应语言发音。(繁中->粤语 简中->普通话)。
- SettingUI: 使用开源组件(GitHub 链接)。
- 登录页面设计: 参考视频教程(YouTube 链接)。
- 用户每次重新打开 App 都需要登录,如果是第一次安装或想共享聊天记录,需要进行注册。注册时需填写 Email、FullName 和 Password。如果检测到本地已有注册的 Email,系统会提示用户直接登录,反之则提示注册成功。
- 在登录界面,如果密码和 Email 不匹配,会有提示登录失败,匹配成功则欢迎用户并在 0.3 秒后跳转至聊天窗口选择页面。
- 登录完成后,用户会看到底部导航栏,包括(SuperChat、SuperNote、SuperScan、Setting),分别对应(基于增强检索生成 (RAG) 的学科知识助手、基于微调 LLM 的智能笔记生成助手、基于实时物体识别与翻译的单词积累助手、设置页面)。点击即可进入相应页面。
- 用户点击 Setting 时可进入设置页面,顶部显示用户信息简介,包括头像、FullName 和 Email。下方有两个按钮【允许通知】和【改变主题】。点击前者可开关通知,后者会弹出小组件,供用户选择【Day】或【Night】主题模式。默认为【Day】主题,切换为【Night】主题后,所有页面配色会适应夜晚使用。页面下方还有【服务条款】、【隐私和安全】、【关于 App】的链接,点击可查看详细信息。
- Few-Shot Prompt Engineering: 提供多个示例以引导 LLM 理解问题的格式和期望回答风格。
- Chain-of-Thought (CoT): 将复杂问题分解为子问题,逐步引导 LLM 提供结构化的回答。
- GraphRAG: 使用知识图谱增强检索,将知识片段作为节点,节点间的关系作为边。
'''但此项技术花费较高,目前待整合。目前主要还是基于Embedding(见下)进行检索。'''
- 嵌入 (Embedding) 技术: 将知识库中的文本段落转换为向量表示,通过余弦相似度进行检索。
- 使用 PDFKit 和 Vision 框架提取上传的文档文本。
- 对复杂文档进行图像预处理,如二值化和去噪。
- 使用 Apple 的语音框架实现语音输入。
- 支持多种不同语言,方便不同地区的用户使用。
目前支持的语言:粤语、英语、普通话(Cantonese、English、Mandarin)
- 实时监听语音识别结果,并将识别的文本经过Prompting整理传递给 LLM 处理。
- 使用 PDFKit 解析 PDF 文件并提取文本内容。
- 支持对标注和注释的处理。
- 导入框架: 在项目中引入
Speech
和AVFoundation
框架。 - 请求权限: 使用
SFSpeechRecognizer.requestAuthorization
请求语音识别权限。 - 创建音频会话: 配置音频会话,优化录音效果。
- 初始化识别请求: 创建
SFSpeechAudioBufferRecognitionRequest
对象并配置音频输入。 - 识别任务的创建: 使用
SFSpeechRecognizer
执行语音识别任务。 - 处理识别结果: 将识别出的文本传递给系统中的输入框。
- 故障处理: 提示用户重新启动识别或调整音噪环境。
⭕️ 未完成 | 🔄 进行中 | ✅ 已完成
- ⭕️ 增加用户自定义学科并由用户上传资料建立个人知识库。
- ⭕️ 对知识库进行更新以支持更多的学科和领域。
- ✅ 提升 OCR 精度,支持更多种类的文档格式。
- 🔄 增加用户自定义笔记模板或风格的功能。
- 🔄 支持更多语种的语音识别和翻译。
如有任何反馈,请发送邮件至 [email protected]
希望这款应用能为您的学习生活带来便捷的体验!
没早八叫我起床干嘛!?
∩∩
(´・ω・)
_| ⊃/(__
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
没事我先睡了哈 ~~~
就是喜欢睡觉 (-_-) zzZ ⊂⌒/ヽ-、__
/⊂_/____ /
 ̄ ̄ ̄ ̄ ̄ ̄ ̄