# AImemo **Repository Path**: rongx563647/aimemo ## Basic Information - **Project Name**: AImemo - **Description**: 基于 Golang 生态构建的智能任务管理系统,采用 Gin 高性能 Web 框架实现后端服务、Gorm 作为对象关系映射(ORM)工具实现数据持久化,前端通过 HTML/CSS/JS 构建响应式交互界面,并集成百度智能云千帆大语言模型(LLM)提供任务规划与决策支持,形成 “任务管理 - 智能分析 - 动态交互” 的全链路解决方案,旨在提升个人与小型团队的任务执行效率与决策科学性。 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 备忘录应用 - README.md ## 一、项目介绍 这是一个 **“AI 自动规划任务”的备忘录应用**,支持用户添加任务后,自动调用百度文心一言 API 生成任务规划(优先级、时间分配)和执行建议,同时能管理任务状态(待执行/执行中/已完成)。 适合零基础学习者入门 **Go 后端开发 + 前后端交互 + AI 接口调用**,核心功能闭环,代码注释详细,跟着步骤就能跑通。 ## 二、技术栈(小白友好版解释) | 技术/工具 | 作用说明(大白话) | |--------------------|-----------------------------------------------------------------------------------| | HTML/CSS/JS | 前端页面:负责展示“添加任务表单”和“任务列表”,用户能输入内容、点击按钮 | | Go(Gin 框架) | 后端核心:接收前端请求(比如“添加任务”)、处理业务逻辑、调用数据库和 AI 接口 | | Gorm | 数据库工具:帮 Go 代码轻松操作 MySQL 数据库(不用写复杂 SQL,用代码就能增删改查) | | MySQL | 数据库:存储任务数据(标题、详情、截止时间、AI 规划等) | | 百度文心一言 API | AI 能力:根据任务信息自动生成“任务规划”和“执行建议”(比如“优先级高,今天完成初稿”) | ## 三、环境准备(小白必看,一步都不能少) ### 3.1 安装 Go 环境(后端运行基础) 1. **下载**:打开 [Go 官网下载页](https://go.dev/dl/),根据系统选择版本(Windows 选 `windows-amd64.msi`,Mac 选 `darwin-amd64.pkg`); 2. **安装**: - Windows:双击安装包,一路“下一步”,注意最后一步勾选“Add Go to PATH”(自动配置环境变量); - Mac:双击安装包,按提示完成安装; 3. **验证**:打开 **命令行(Windows 用 CMD,Mac 用终端)**,输入 `go version`,如果显示 `go version go1.2x.x xxx`(比如 `go1.21.0 windows/amd64`),说明安装成功。 ### 3.2 安装 MySQL 数据库(存储任务数据) 1. **下载**:打开 [MySQL 下载页](https://dev.mysql.com/downloads/mysql/),选择对应系统版本(推荐 8.0 版本); 2. **安装**: - Windows:双击安装包,选择“Developer Default”,一路“下一步”,**记住设置的 root 密码**(比如 `123456`,后续要用到); - Mac:用 DMG 包安装,按提示完成,最后会弹出临时密码,记得复制保存(第一次登录需要改密码); 3. **验证**: - Windows:打开“命令提示符”,输入 `mysql -u root -p`,按回车后输入密码,出现 `mysql>` 提示符,说明登录成功; - Mac:打开“终端”,输入 `mysql -u root -p`,输入密码后出现 `mysql>`,说明成功。 ### 3.3 申请百度文心一言 API 密钥(AI 功能核心) 1. **注册登录**:打开 [百度智能云千帆平台](https://console.bce.baidu.com/qianfan/),用手机号注册并登录; 2. **创建应用**: - 登录后,点击左侧“应用接入”→“创建应用”; - 应用名称随便填(比如“AI 备忘录”),应用描述随便写,点击“创建”; 3. **获取密钥**: - 应用创建后,在“应用列表”中找到刚创建的应用,复制“API Key”和“Secret Key”(后续配置要用到,别弄丢了)。 ### 3.4 安装代码编辑器(可选,推荐 VS Code) 1. **下载**:打开 [VS Code 下载页](https://code.visualstudio.com/),下载对应系统版本; 2. **安装插件**:打开 VS Code,搜索安装以下插件(方便写代码): - “Go”(Go 语言支持); - “HTML CSS Support”(前端样式支持); - “JavaScript and TypeScript Nightly”(JS 支持)。 ## 四、项目获取与目录结构 ### 4.1 获取项目代码 小白推荐直接下载压缩包(不用学 Git): 1. 把项目代码(所有文件)复制到一个文件夹,比如 `C:\Users\你的名字\Desktop\ai-memo`(Windows)或 `~/Desktop/ai-memo`(Mac); 2. 确保目录结构和下面一致(不要改文件夹名字): ``` ai-memo/ # 项目根目录(必须是这个名字) ├── config/ # 配置文件夹(数据库连接) │ └── db.go # 数据库配置文件 ├── model/ # 数据模型文件夹(任务表定义) │ └── task.go # 任务表结构 ├── service/ # 业务服务文件夹(AI 调用) │ └── ai_service.go # AI 接口调用代码 ├── static/ # 前端静态资源(CSS/JS) │ ├── css/ │ │ └── style.css # 页面样式 │ └── js/ │ └── main.js # 前端交互逻辑 ├── templates/ # HTML 模板文件夹(页面) │ └── index.html # 首页(任务表单+列表) ├── go.mod # Go 依赖管理文件 ├── go.sum # Go 依赖版本锁定文件 └── main.go # 后端入口文件(启动服务) ``` ### 4.2 理解目录分工(小白也能懂) | 文件夹/文件 | 作用 | |----------------------|----------------------------------------------------------------------| | config/db.go | 告诉程序怎么连接 MySQL 数据库(比如密码、数据库名) | | model/task.go | 定义“任务”有哪些字段(比如标题、截止时间、AI 规划) | | service/ai_service.go| 调用百度 AI 接口,生成任务规划和建议 | | static/css/style.css | 控制页面好不好看(比如颜色、布局) | | static/js/main.js | 控制页面交互(比如点击“添加任务”按钮后做什么) | | templates/index.html | 页面的“骨架”(表单、列表长什么样) | | main.go | 后端“总指挥”:启动服务、处理前端请求、调用其他模块 | ## 五、关键配置修改(小白重点看,不然跑不起来) 这一步是核心!需要修改 3 个文件中的配置,把“你的信息”填进去: ### 5.1 修改 Go 模块名(适配你的项目路径) 1. 打开项目根目录下的 `go.mod` 文件; 2. 把第一行 `module your-project-path` 改成 `module ai-memo`(和项目根目录名一致); 示例:`module ai-memo`。 ### 5.2 修改数据库配置(连接你的 MySQL) 1. 打开 `config/db.go` 文件; 2. 找到第 15 行左右的 `dsn` 变量,修改 **MySQL 密码**(把 `你的MySQL密码` 换成你安装 MySQL 时设置的密码); 示例:如果你的密码是 `123456`,则改成: ```go dsn := "root:123456@tcp(127.0.0.1:3306)/ai_memo?charset=utf8mb4&parseTime=True&loc=Local" ``` 3. 同时修改文件顶部的导入路径:把 `your-project-path/model` 改成 `ai-memo/model`(和 `go.mod` 的模块名一致); 示例:`import "ai-memo/model"`。 ### 5.3 修改 AI 密钥(调用你的文心一言 API) 1. 打开 `service/ai_service.go` 文件; 2. 找到第 11-12 行的 `APIKey` 和 `SecretKey`,把之前复制的百度 API 密钥填进去; 示例: ```go const ( APIKey = "你的百度API Key" // 比如 "Xb123456abcdefg..." SecretKey = "你的百度Secret Key" // 比如 "Yc789012hijklmn..." AccessTokenURL = "https://aip.baidubce.com/oauth/2.0/token" TextCompletionsURL = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions" ) ``` ### 5.4 修改主程序导入路径(适配模块名) 1. 打开 `main.go` 文件; 2. 把顶部 3 个导入路径中的 `your-project-path` 改成 `ai-memo`; 示例: ```go import ( "net/http" "strconv" "time" "ai-memo/config" // 原来的 your-project-path 改成 ai-memo "ai-memo/model" // 同上 "ai-memo/service" // 同上 "github.com/gin-gonic/gin" ) ``` ## 六、运行项目(小白一步步来) ### 6.1 启动 MySQL 服务(必须先启动,不然数据库连不上) - **Windows**: 1. 按下 `Win + R`,输入 `services.msc`,按回车; 2. 在服务列表中找到“MySQL”(比如“MySQL80”),确保状态是“正在运行”(如果没运行,右键“启动”); - **Mac**: 1. 打开“系统偏好设置”,找到“MySQL”; 2. 点击“Start MySQL Server”,等待状态变成“Running”。 ### 6.2 初始化 Go 依赖(下载需要的工具库) 1. 打开 **命令行/终端**,进入项目根目录: - Windows:输入 `cd C:\Users\你的名字\Desktop\ai-memo`,按回车; - Mac:输入 `cd ~/Desktop/ai-memo`,按回车; 2. 输入以下命令,下载 Gin、Gorm 等依赖(第一次执行会慢一点,耐心等): ```bash go mod tidy ``` - 如果没有报错,说明依赖下载成功。 ### 6.3 启动后端服务 在项目根目录的命令行中,输入以下命令: ```bash go run main.go ``` - 如果看到以下提示,说明服务启动成功: ``` [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] Listening and serving HTTP on :8080 ``` - 注意:不要关闭这个命令行窗口(关闭就停止服务了)! ### 6.4 访问应用(使用浏览器) 1. 打开任意浏览器(Chrome、Edge、Safari 等); 2. 在地址栏输入 `http://localhost:8080`,按回车; 3. 看到“AI 智能备忘录”页面,说明成功了! ## 七、功能测试(小白也能玩明白) ### 7.1 添加任务并生成 AI 规划 1. 在“添加新任务”区域: - 任务标题:输入比如“完成 Go 项目报告”; - 任务详情:输入比如“包含需求分析、代码说明、测试报告,3000 字”; - 截止时间:点击输入框,选择一个未来的时间(比如明天 23:59); 2. 点击“添加任务(AI 自动规划)”按钮,等待 3-5 秒(AI 在生成规划); 3. 弹出“任务添加成功(AI 规划已生成)”提示,页面会自动刷新; 4. 在“我的任务”列表中,就能看到新添加的任务,下面有“AI 规划”和“AI 建议”(比如“优先级:高,今天完成需求分析,明天完成代码说明”)。 ### 7.2 修改任务状态 1. 在任务列表中,找到任务右上角的下拉框(默认是“待执行”); 2. 点击下拉框,选择“执行中”或“已完成”; 3. 状态会实时更新(不用刷新页面),数据库中的状态也会同步修改。 ### 7.3 查看任务列表 - 任务会按“创建时间倒序”排列(最新添加的在最上面); - 如果没有任务,会显示“暂无任务,点击‘添加新任务’开始吧!”。 ## 八、常见问题(小白踩坑指南) ### 问题 1:启动服务时提示“数据库初始化失败:Error 1045 (28000)” - **原因**:MySQL 密码填错了,程序连不上数据库; - **解决**:打开 `config/db.go`,检查 `dsn` 中的密码是否和你安装 MySQL 时设置的一致(比如把 `root:123456` 改成 `root:abc123`)。 ### 问题 2:添加任务时提示“AI调用失败:AI返回错误:18-Invalid API Key” - **原因**:百度 API Key 或 Secret Key 填错了; - **解决**:打开 `service/ai_service.go`,重新复制百度智能云的“API Key”和“Secret Key”,确保没有多输/少输字符。 ### 问题 3:启动服务时提示“bind: address already in use” - **原因**:8080 端口被其他程序占用了; - **解决**:打开 `main.go`,找到最后一行 `r.Run(":8080")`,把 `8080` 改成其他端口(比如 `8081`),然后重启服务,访问时用 `http://localhost:8081`。 ### 问题 4:页面没有样式(文字很乱,没有颜色) - **原因**:前端 CSS/JS 路径配置错了; - **解决**:检查 `main.go` 中的这两行代码是否正确: ```go r.LoadHTMLGlob("templates/*") r.Static("/static", "./static") ``` 确保 `static` 文件夹在项目根目录下,且 HTML 中 `link` 和 `script` 标签的路径是 `/static/css/style.css` 和 `/static/js/main.js`(开头带 `/`)。 ### 问题 5:命令行输入 `go run main.go` 提示“cannot find module providing package ai-memo/config” - **原因**:`go.mod` 的模块名和导入路径不一致; - **解决**:确保 `go.mod` 第一行是 `module ai-memo`,且所有导入路径(如 `ai-memo/config`)中的模块名都是 `ai-memo`。 ## 九、知识点总结(小白也能学到的技术) 做完这个项目,你已经掌握了这些核心知识点,对应项目中的具体代码: | 知识点 | 学到了什么 | 对应代码位置 | |-----------------------|----------------------------------------------------------------------------|-----------------------------| | Go 项目结构规范 | 如何组织后端代码(配置/模型/服务/入口),让代码清晰可维护 | 整个项目目录 | | Gin 框架基础 | 如何用 Gin 搭建 HTTP 服务、定义路由(首页/添加任务/更新状态)、渲染 HTML | main.go 中的 `r := gin.Default()` 和路由定义 | | Gorm 数据库操作 | 如何用 Gorm 连接 MySQL、自动建表、增删改查数据(保存任务、更新状态) | config/db.go、model/task.go、main.go 中的数据库操作 | | HTTP 前后端交互 | 前端如何用 JS 发送 POST 请求(添加任务/更新状态),后端如何接收参数并返回结果 | static/js/main.js 的 `fetch` 调用、main.go 的接口处理 | | AI API 调用 | 如何调用第三方 API(百度文心一言)、获取访问令牌、处理 JSON 响应 | service/ai_service.go 的 `GetAIAdvice` 方法 | | 前端基础(HTML/CSS/JS)| 如何写表单、列表、动态渲染数据、处理按钮点击事件、加载状态 | templates/index.html、static/css/style.css、static/js/main.js | ## 十、功能扩展建议(小白进阶方向) 如果想进一步提升,可以尝试添加这些功能: 1. **任务删除/编辑**:在 `main.go` 中添加 `/task/delete` 和 `/task/edit` 接口,前端增加“删除”按钮和编辑表单; 2. **AI 多轮交互**:在任务详情页加“追问 AI”输入框,支持用户问“如何优化这个任务步骤?”; 3. **到期提醒**:用 Go 的定时任务库(如 `github.com/robfig/cron`),每天检查到期任务,发邮件提醒; 4. **数据导出**:添加“导出任务”按钮,把任务列表导出为 Excel(用 `github.com/xuri/excelize/v2` 库)。 ## 十一、注意事项 1. 不要关闭启动服务的命令行窗口(关闭后服务停止,浏览器无法访问); 2. 项目路径不要有中文(比如不要放在“C:\用户\我的文档\项目\ai-memo”,可能会出问题); 3. 百度 AI 接口有免费额度,超过后需要付费,小白测试用足够了。