Version: 0.9.17.dev.260414

后端:无
前端:无
仓库:
1.更新了readme
This commit is contained in:
Losita
2026-04-14 23:03:52 +08:00
parent 863cba4e4e
commit b72e202822

View File

@@ -1,10 +1,14 @@
# 时伴 SmartMate
> 越用越懂你的成长型 AI 排程伙伴 · 面向大学生的陪伴式日程管理平台
# 1 项目概览
## 1.1 总体介绍
专门面向大学生/高执行力人群设计的日程平台并且接入对话式AI实现了AI的功能调用实现在和AI对话的过程中灵活编排日程。
时伴SmartMate是面向大学生的 AI 排程伙伴。通过自然语言对话管理课表与任务,更能在一次次交流中记住你的习惯、偏好和生活节奏——**越用越懂你,越排越贴心。**
除了大规模编排任务的场景,本项目还包括日程提醒、AI驱动的"小事随口记"等功能,做到:**一个平台,包揽生活大小事。**
核心能力包括:大规模智能排程、基于课表的任务编排、AI 驱动的"小事随口记"以及跨会话的长期记忆积累——做到:**一个伙伴,包揽生活大小事。**
本项目采用前后端分离设计,并且有一个**完整的工业化设计链路**:写功能-墨刀画页面-根据页面写接口-写后端-写前端(AI)。
@@ -40,6 +44,10 @@
当你在空闲时(做完你的大主线之后),亦或是休息时间打开本项目,一眼就能看到这几个队列的事情,然后你就可以看心情选择做哪个,然后做完之后一划就完事。
> **问题5** 每次打开 AI 助手,都要重新告诉它"我周三有课"、"我更喜欢早上学数学"。传统工具对你没有记忆,每次都从零开始,永远是个陌生人。
**本项目带来的解决方案5** 时伴内置长期记忆系统,会在对话中自动抽取并积累关于你的事实与偏好(课程、习惯、目标等)。下次对话时自动召回相关记忆注入上下文,跨会话延续对你的了解,且支持全链路优雅降级——记忆检索失败不阻断正常对话。
## 1.3 项目实现的功能
1. **对用户目前时间尺度的适应。**
@@ -70,6 +78,8 @@
至于后者,由于后者为动态任务,所以用户需要手动去"最近已完成任务"的清单里面选择该任务然后恢复,此时任务会自动回到未安排状态。目前暂不支持课程的撤回,课程方面的改动目前仅支持删除,其它操作后续考虑开发。
10. **长期记忆积累。** 系统在对话中自动抽取用户相关事实与偏好,跨会话召回并注入对话上下文,实现"越用越懂你"的个性化体验。支持结构化检索 + 向量召回双路召回,全链路优雅降级。
# 2 产品逻辑与设计
## 2.1 业务流程图
@@ -268,7 +278,7 @@ CREATE TABLE `users`
## 5.1 技术栈
| **分类** | **选用技术** | **在 SmartFlow-Agent 中的应用场景** |
| **分类** | **选用技术** | **在时伴中的应用场景** |
| ----------------- | ---------------- | ------------------------------------------------------------ |
| **Web 框架** | **Gin** | 负责全站 API 的路由分发,处理任务增删改查及智能排程的请求。 |
| **持久层数据库** | **MySQL 8.0** | 存储用户、任务、课表及日程运行图Schedules的核心数据。 |
@@ -541,8 +551,41 @@ flowchart TD
T --> Z
```
## 5.5 长期记忆系统
时伴的长期记忆系统采用**同步读 + 异步写**架构,确保对话体验不被记忆写入拖慢。
### 写路径(异步)
```
用户消息 → 聊天落库(同事务写 Outbox) → Kafka 投递 memory.extract.requested 事件
→ 幂等入队 memory_jobs → Worker 抢占执行 → LLM 抽取事实
→ 去重决策(ADD/UPDATE/DELETE/NONE) + UUID 映射防幻觉 → 持久化 memory_items
```
关键设计:
1. **Outbox 保证不丢消息**:聊天持久化与事件投递在同一事务内,失败整体回滚,由 Outbox 重试。
2. **去重决策状态机**LLM 对抽取的事实判断是新增、更新、删除还是跳过,避免重复记忆。
3. **UUID 映射**:为每条记忆分配唯一 IDLLM 引用时必须使用该 ID防止幻觉篡改。
### 读路径(同步)
```
用户消息到达 → injectMemoryContext → 结构化检索(按用户/类别过滤)
+ 向量召回(Milvus) → 重排序 → 拼接为 pinned block 注入 Prompt → LLM 生成回复
```
关键设计:
1. **双路召回**:结构化检索保证精确匹配,向量召回覆盖语义关联,两者合并后重排序取 Top-K。
2. **优雅降级**:记忆检索失败时不阻断主对话链路,仅降级为无记忆模式,不影响正常功能。
3. **访问时间刷新**:被召回的记忆会更新最近访问时间,热点记忆更不容易被淘汰。
# 6 前端实现
PS:当前前端进度大幅度落后于后端,将在后端闭环跑通后开始维护。
## 6.1 当前前端技术栈与工程约定
当前前端位于 `frontend/` 目录,已经落地为一个可独立运行的 Vue 单页应用。