记忆守护者

Student Brief · Vibe Coding

本周开发任务

产品:记忆守护者 —— 面向认知障碍家庭的照护网站。你们用 vibe coding 自由实现,只要做出需求、通过验收即可。本周重点:双端账户、用药确认、DeepSeek 加药,以及日程:有序步骤引导(家属编排,老人一次只做一步;可用模型建议拆步骤,也可在右下角助手里完成)。

背景(读一遍就行)

家属负责安排,老人负责「点一下完成」。网站要能独立用,不绑硬件也要跑通。页面要适老化:大字、少打字、少步骤。

合规红线:不做诊断、不开药、不承诺疗效;筛查/解读类结果必须有免责声明。

任务一 · 账户与双端入口(必做)

验收:家属注册 → 建老人账号 → 家属进工作台;另开老人登录进简易页,能退出。

任务二 · 用药计划与确认(必做 · 本周重点)

验收:录 1 种药、2 个时间点 → 老人确认一顿 → 家属侧显示已服 → 再点一次不重复记账。

任务三 · DeepSeek 智能加药(必做 · 本周重点)

家属端用药页增加一个聊天框:用自然语言说「加入布洛芬」,系统自动联网搜索说明书要点与药品类型,整理后写入老人药单。

要做成什么样

课堂提供的 DeepSeek Key

请写入项目的 .env(不要提交到公开仓库):

sk-5084b532f6f34bd7b1d937b326c0b03c
DEEPSEEK_API_KEY=sk-5084b532f6f34bd7b1d937b326c0b03c
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-v4-flash

模型用 deepseek-v4-flash;调用时关闭 thinking(不要开深度思考)。Key 仅供本课程使用,请勿外传或用于无关项目。

推荐调用方式

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ.get("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "(见下方可展开提示词)"},
        {"role": "user", "content": "家属说:加入布洛芬\n联网搜索摘要:..."},
    ],
    stream=False,
    extra_body={"thinking": {"type": "disabled"}},
)

print(response.choices[0].message.content)

验收:家属端聊天框输入「加入布洛芬」→ 出现整理回复 → 药物目录里多出该药选项(可点选填表)→ 尚未自动进入待服药清单 → 页面有免责文案。

卡住了?点击展开查看提示词与实现提示(先自己试,再看)

建议流程:用户消息 → 联网搜索(可用 DuckDuckGo / ddgs)→ 把搜索摘要塞进 user 消息 → DeepSeek 输出 JSON → 解析后写入药物目录(供点选),不要直接 INSERT 到待服药 medications 表。

System 提示词(可直接用):

你是「记忆守护者」家庭照护助手中的加药助手。
家属会用自然语言告诉你要给老人加什么药。你会收到联网搜索到的药品相关摘要。
你的任务:
1. 根据用户意图与搜索摘要,整理药品信息
2. 给出适合老人端提醒的叫法、用法摘要、建议服药时间、药品类型
3. 若用户明确要加入「药物目录」作为可选项,设置 should_add=true
   (注意:是加入目录供点选,不是直接写入每日待服药清单)

硬性规则:
- 不做诊断,不开方,不建议停药/改剂量
- 用法只能写「按说明书/医嘱」类摘要,不要编造精确处方剂量
- 输出必须是合法 JSON(不要 markdown 代码块),字段如下:
{
  "reply": "给家属看的简短中文回复",
  "should_add": true/false,
  "medication": {
    "name": "通用名或常用名",
    "alias": "老人听得懂的叫法",
    "category": "药品类型,如解热镇痛",
    "dosage_text": "用法摘要,强调遵医嘱",
    "schedule_times": ["08:00"],
    "instruction_summary": "说明书要点白话(3-5句)",
    "caregiver_tips": ["照护提示1", "照护提示2"]
  }
}
若无法识别药品,should_add=false,medication 可为 null,并在 reply 中说明。

User 消息模板:

家属说:加入布洛芬

联网搜索摘要:
[{"title":"...","snippet":"...","url":"..."}]

请输出 JSON。

实现小提示:

  • 依赖:pip install openai python-dotenv ddgs
  • 搜索关键词示例:{药名} 药品说明书 适应症 用法 注意事项
  • 模型若返回带代码块的 JSON,用正则取出最外层 {...}json.loads
  • API 失败时,至少用搜索摘要做兜底,不要整页空白
  • 参考体验站已有一版:登录家属账号 → 用药中心顶部聊天框

任务四 · 用药增强(选做加分)

在任务二基础上,至少完成其中两项:

  1. 药物列表/目录:可搜索、点选后自动填入添加表单
  2. 白话解读:输入药名后给出照护向解释 + 免责声明(可用 AI,也可用本地知识库)
  3. 依从分析:近 7 天完成情况可视化(如图表),能看出漏服大概在什么时段

验收:现场演示点选目录或解读或图表,逻辑自洽、有免责文案。

任务五 · 日程步骤引导(必做 · 本周重点)

教学点:有序步骤、当前做到哪一步、关掉再打开还能接着做; 家属看全貌,老人一次只看一步。 不要做成普通打勾待办清单。

基础能力

模型推荐拆步骤(必做)

家属不必自己想全部分步,可以用模型先出一版建议,再决定要不要用。

右下角工作区助手(必做)

家属工作区各页右下角有统一助手,日程相关能力也要能在对话里完成(不只日程页按钮)。

验收: ① 日程页:AI 建议 → 采纳创建 → 列表出现带多步的任务; ② 右下角助手:说「帮我把出门散步拆成步骤」→ 先出建议 → 再说「同意加入」→ 日程里新增任务; ③ 家属创建一个三步任务 → 老人逐步点完 → 家属侧显示 100% 完成; 做到一半关掉页面再进,仍停在刚才那一步; 做到一半后家属改步骤文案,老人当前这次仍显示原来的步骤文字; 连点「做好了」不会多跳步。

任务六 · 认知主题聊天(必做 · 本周可做)

教学点:CST 怀旧陪伴——主题化、一屏一问、无对错压迫。 界面称「今日聊天主题 / 认知刺激」,不称疗程或治疗。

验收: 家属选定今日主题 → 完成一次一屏一问聊天并选心情 → 认知日历/最近会话可见记录;老人端也能走完同一主题。

任务七 · 训练馆(必做 · 本周可做)

教学点:训练范式为辅;触屏小练习、无倒计时惩罚;不作诊断。

验收: 完成一次翻牌练习并保存 → 认知中心/训练馆最近记录可见; 中度阶段训练入口明显少于轻度。

任务八 · 更后阶段预告(先了解,暂不强制)

提交与演示

参考体验(可选)

课上已有一版可点击参考,不是标准答案: