这是一个基于 FastAPI 的记忆管理系统后端,支持记忆的收集、整理、关联与检索,以及反思引导功能。
- Python 3.9+
- FastAPI
- PostgreSQL
- Redis
- FAISS
- Python 3.9+
- PostgreSQL 12+
- Nginx
- 操作系统:Ubuntu 20.04/22.04 LTS
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装必要工具
sudo apt install -y python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools python3-venv git nginx
# 安装 PostgreSQL
sudo apt install -y postgresql postgresql-contrib
# 切换到 postgres 用户
sudo -u postgres psql
# 创建数据库和用户
CREATE DATABASE memory_db;
CREATE USER memory_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE memory_db TO memory_user;
# 退出 PostgreSQL
\q
部署完成后,可以通过以下地址访问 API 文档:
- Swagger UI:
http://your_domain/docs
- ReDoc:
http://your_domain/redoc
memory_backend/ ├── app/ │ ├── api/ # API 路由 │ ├── core/ # 核心配置 │ ├── db/ # 数据库模型和工具 │ ├── services/ # 业务逻辑 │ └── utils/ # 工具函数 ├── tests/ # 测试文件 ├── alembic/ # 数据库迁移 ├── .env # 环境变量 └── requirements.txt # 依赖包
-
基础信息
-
id: UUID 主键
-
user_id: 关联用户ID
-
memory_type: 记忆类型
- TIMELINE: 时间轴记录
- CORE_FOCUS: 核心关注点
- DREAM_TRACK: 梦想追踪
- QUICK_NOTE: 快速记录
-
content: 记忆内容
-
tags: 标签数组
-
时间轴功能
- timeline_time: 时间点
- is_preset: 是否预设时间点
-
核心关注点
- focus_type: 关注点类型
- CHANGE: 今日改变
- EXTERNAL_EXPECT: 外部期待
- SELF_EXPECT: 个人期待
- IMPORTANT: 重要事项
- focus_type: 关注点类型
-
梦想追踪
- dream_id: 关联的梦想ID
- progress_value: 进度值
-
快速记录
- voice_url: 语音文件URL
- template_id: 使用的模板ID
-
-
分析信息
- emotion_score: 情绪分析结果
- vector: 语义向量表示
- 基础信息
- id: UUID 主键
- user_id: 关联用户ID
- title: 梦想标题
- description: 详细描述
- target_date: 目标日期
- target_value: 目标值
- current_value: 当前进度
- 创建数据库
createdb memory_db
- 环境变量配置(.env)
POSTGRES_SERVER=localhost
POSTGRES_USER=your_user
POSTGRES_PASSWORD=your_password
POSTGRES_DB=memory_db
系统使用 SQLAlchemy 的会话管理机制:
# 在 API 路由中使用数据库会话
@app.get("/memories/")
def read_memories(db: Session = Depends(get_db)):
memories = db.query(Memory).all()
return memories
特点:
- 自动连接池管理
- 自动会话清理
- 支持事务管理
- 内置连接健康检查
配置参数:
- pool_pre_ping: 启用连接健康检查
- echo: 在调试模式下打印 SQL 语句
- autocommit: 默认关闭自动提交
- autoflush: 默认关闭自动刷新
- 时间轴框架
- 预设基本时间点(起床、三餐、就寝等)
- 简单点击或拖拽即可标记
- 可选择性添加简短备注
- 核心关注点(每日必填)
- 今日改变(What changed)
- 外部期待(Expected from others)
- 个人期待(My expectations)
- 重要事项(What really matters)
- 梦想追踪区
- 固定展示区域显示长期目标
- 记录与梦想相关的每日进展
- 可视化展示距离目标的进度
- 快速记录功能
- 语音输入
- 快捷短语
- 标签系统
- 模板功能
- 特别前端要求(需要后端配合):
- 界面要简洁,突出重要内容
- 日常事项尽量用选择/点击方式完成
- 重点关注"改变"和"期待"
- 让用户容易看到自己的进步和距离目标的距离
-
第一阶段:基础认证功能(已完成 ✅)
- 用户注册
- 用户登录
- JWT认证
- 基础CRUD操作
-
第二阶段:记忆管理(进行中)
- Memory模型关联
- 时间轴功能
- 核心关注点功能
- 重要事项管理
- 时间投入跟踪
- 其他关注点类型
-
第三阶段:目标追踪(待实现)
- Dream模型关联
- 进度追踪功能
- 模板功能
-
第四阶段:高级功能(待实现)
- LLM集成
- 情感分析
- 关联分析
- 认证相关
# 用户注册
POST /api/v1/auth/register
Content-Type: application/json
{
"email": "[email protected]",
"username": "username",
"password": "password123"
}
# 用户登录
POST /api/v1/auth/login
Content-Type: application/x-www-form-urlencoded
[email protected]&password=password123
- 记忆管理
# 创建记忆
POST /api/v1/memories/
Authorization: Bearer {token}
Content-Type: application/json
{
"content": "记忆内容",
"memory_type": "quick_note",
"tags": ["标签1", "标签2"]
}
# 获取记忆列表
GET /api/v1/memories/
Authorization: Bearer {token}
# 获取记忆详情
GET /api/v1/memories/{memory_id}
Authorization: Bearer {token}
# 更新记忆
PATCH /api/v1/memories/{memory_id}
Authorization: Bearer {token}
Content-Type: application/json
{
"content": "更新的内容",
"tags": ["新标签"]
}
# 删除记忆
DELETE /api/v1/memories/{memory_id}
Authorization: Bearer {token}
- 重要事项管理
# 创建重要事项
POST /api/v1/core-focus/important
Content-Type: application/json
{
"content": "任务内容",
"target_minutes": 240,
"date": "2024-01-11",
"tags": ["标签1", "标签2"],
"description": "详细说明"
}
# 查看每日重要事项
GET /api/v1/core-focus/important/daily?date=2024-01-11
# 开始重要事项活动
POST /api/v1/core-focus/important/{matter_id}/start
Content-Type: application/json
{
"content": "活动说明"
}
# 结束重要事项活动
POST /api/v1/core-focus/important/{matter_id}/end
Content-Type: application/json
{
"content": "完成说明"
}
# 查看重要事项活动历史
GET /api/v1/core-focus/important/{matter_id}/activities
# 创建项目目录
mkdir -p ~/memory_backend
cd ~/memory_backend
# 克隆项目
git clone <项目地址> .
git checkout deploy # 切换到部署分支
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
创建 .env
文件并配置以下变量:
# 数据库配置
POSTGRES_SERVER=localhost
POSTGRES_USER=memory_user
POSTGRES_PASSWORD=your_password
POSTGRES_DB=memory_db
# JWT配置
SECRET_KEY=your-secret-key-here
ACCESS_TOKEN_EXPIRE_MINUTES=1440 # 24小时
# 其他配置
SQL_DEBUG=false
# 执行数据库迁移
alembic upgrade head
创建服务文件:
sudo nano /etc/systemd/system/memory_backend.service
配置内容:
[Unit]
Description=Memory Backend
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=~/memory_backend
Environment="PATH=~/memory_backend/venv/bin"
ExecStart=~/memory_backend/venv/bin/gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker -b unix:/tmp/memory_backend.sock
[Install]
WantedBy=multi-user.target
server {
listen 80;
server_name your_domain.com; # 替换为实际域名
location / {
proxy_pass http://unix:/tmp/memory_backend.sock;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# 启动后端服务
sudo systemctl start memory_backend
sudo systemctl enable memory_backend
# 启动 Nginx
sudo systemctl restart nginx
# 应用日志
sudo journalctl -u memory_backend
# Nginx 日志
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
cd /var/www/memory_backend
git pull
source venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
sudo systemctl restart memory_backend
完成了重要事项功能的开发:
- 支持创建重要事项并设置目标时间
- 实现与时间轴活动的关联
- 提供活动历史查询接口
- 支持完成度实时计算
- 优化了活动记录格式
- 添加了格式化时间显示
- 实现了活动标签继承 完成部署测试:
- 部署到腾讯云