打造自己的AI个人学习助手
我最近订阅了ByteByteGo的新闻通讯,以了解更多关于软件架构设计和编程的知识。在其中一封通讯中,他们讨论了一个开源AI技术栈(详见下文)。
该技术栈简化了每一层的需求,并提供了多个关键组件的例子。这些包括前端、嵌入式和检索增强生成(RAG)库、后端、模型访问、数据存储和检索,以及最后的开源大型语言模型(LLMs)本身。
为了挑战自己并获得AI技术栈的实际经验,我决定设计并构建自己的AI项目。我对AI的了解仅限于在线阅读和使用工具如Cursor和GitHub Copilot,因此这个项目将是一个机会,通过创建一个核心包含AI的完全功能系统来加深对AI的理解。
我在Google Cloud Platform(GCP)上构建系统的经验非常丰富,但作为技能测试的一部分,我计划使用Amazon Web Services(AWS)来托管这个系统。我打算利用无服务器函数、计算服务和数据库存储等组件。在前端方面,我的经验有限——仅限于大学项目中使用Python的Django框架和基本的HTML/CSS/JavaScript。尽管如此,我还是很兴奋地探索我能创造出什么,或许可以得到我忠实的编程伙伴的帮助……当然就是ChatGPT了。
学习的最佳方式之一是通过构建。带着这种理念,这里是我的项目想法、我将使用的科技栈以及实现它的计划。
1、项目构想:AI自学导师
该项目的目标是创建一个AI导师,旨在促进自学。该平台允许用户上传他们的学习材料,然后处理这些材料以生成简洁的摘要。这些摘要将以简单易用的仪表板形式呈现。此外,该平台还将提供问答风格的小测验,以加强用户对材料的理解并提升学习体验。
为了扩展项目,超越最初的最小可行产品(MVP),我设想添加以下功能:
- 跟踪小测验进度和结果分数随时间的变化。
- 引入游戏化元素,如成就和连胜,以激励持续学习。
2、核心成功指标
以下指标将定义项目的成功:
- 高效的材料总结:用户可以上传学习材料并在几秒钟内收到准确的摘要。
- 实时响应:用户可以就材料提问并立即获得相关答案。
- 准确的信息检索:系统可靠地检索并提供上下文相关的精确信息,利用嵌入式实现精准结果。
3、核心技术栈
LLM:使用开源LLM回答问题、创建测验并提供文本摘要。通过HuggingFace,我可以利用预训练的摘要和问题生成模型。
向量数据库:使用AWS RDS和pgvector存储和检索学习材料嵌入。RDS还将用于存储账户信息、问答信息和文本摘要。
前端:交互式学习界面将使用Next.js构建,并通过AWS S3和AWS CloudFront托管。网站将允许用户上传新资料,提供一个仪表板查看您的摘要,并通过AI生成的学习测验跟踪您的进度。
GraphQL:使用AWS AppSync托管的GraphQL管理内容创建和从后端检索。
对象存储:结合AWS S3和AWS Lambda用于存储和处理用户资料,并在AWS RDS中存储解析后的嵌入。
4、计划
以下是构建项目各部分的计划:
4.1 后端:核心AI逻辑
目标:实现使用开源LLM在AWS上托管的AI驱动的摘要和问答系统。
任务
- 使用AWS RDS和pgvector嵌入学习材料。
- 在EC2实例上托管问答功能的LLM,并从RDS检索相关文档嵌入使用相似性搜索。
- 在同一EC2实例上,使用HuggingFace模型进行文本摘要。
主要成果:摘要和问答的API端点。
4.2 数据存储:S3(简单存储服务)
目标:高效存储上传的学习材料。
任务
- 配置S3桶以存储原始材料文件。
- 使用S3触发器和AWS Lambda处理上传的文件。
- 将处理后的数据存储在RDS中。
主要成果:文件存储和处理管道。
4.3 前端:Next.js应用程序
目标:构建用户友好的界面,用于上传材料、提问和查看摘要。
任务
- 表单用于将材料上传到S3。
- 通过仪表板查看上传的材料和摘要。
- 用户的问答界面。
主要成果:功能齐全的上传页面、问答部分和摘要显示。
4.4 API:GraphQL集成
目标:在前端和后端之间启用结构化数据交换。
任务
- 定义GraphQL查询和变异的模式。
- 实现后端解析器进行摘要和问答。
- 通过AWS AppSync公开GraphQL。
主要成果:功能齐全的GraphQL API。
4.5 监控与告警
目标:跟踪系统性能和使用情况以优化成本。
任务
- 配置CloudWatch以监控系统CPU和内存使用及网络流量。
- 设置AWS预算的成本监控。
- 实现组件故障和异常使用模式的告警。
主要成果:资源使用情况的告警和报告。
5、结束语
这个副项目是一项雄心勃勃的任务,我对它带来的许多学习机会感到兴奋。通过利用我在GCP开发方面的现有技能和更广泛的经验,我有信心构建出一个功能性的最小可行产品(MVP)。
随着项目的进展,我计划记录我的旅程并分享见解,所以请继续关注我在Medium上的更多内容。对于那些有兴趣深入代码或进一步探索项目的读者,所有详细信息将在我的个人GitHub上找到。
原文链接:Building my own AI Personal Learning Assistant
汇智网翻译整理,转载请标明出处