Student Brief · Vibe Coding
本周开发任务
产品:记忆守护者 —— 面向认知障碍家庭的照护网站。你们用 vibe coding 自由实现,只要做出需求、通过验收即可。本周重点:双端账户、用药确认、DeepSeek 加药,以及日程:有序步骤引导(家属编排,老人一次只做一步;可用模型建议拆步骤,也可在右下角助手里完成)。
背景(读一遍就行)
家属负责安排,老人负责「点一下完成」。网站要能独立用,不绑硬件也要跑通。页面要适老化:大字、少打字、少步骤。
合规红线:不做诊断、不开药、不承诺疗效;筛查/解读类结果必须有免责声明。
任务一 · 账户与双端入口(必做)
- 首页任何人都能看,不强制登录
- 家属注册 / 登录 与 老人登录 分开入口
- 家属登录后创建老人账号(姓名、用户名、密码、认知阶段)
- 不要做邀请码
- 登录后显示「你好,XXX」(XXX = 老人姓名)
- 老人端要有退出
验收:家属注册 → 建老人账号 → 家属进工作台;另开老人登录进简易页,能退出。
任务二 · 用药计划与确认(必做 · 本周重点)
- 家属能添加药品:药名、老人叫法、用法、每天多个时间点(如 08:00 / 20:00)
- 老人端今日药单:大按钮「吃过了」,可「今天跳过」
- 家属端能看到已吃 / 待吃 / 漏服;允许家属代确认
- 同一顿重复点确认,不能记成两顿(幂等)
- 超时未确认,打开页面后应能结算为漏服
验收:录 1 种药、2 个时间点 → 老人确认一顿 → 家属侧显示已服 → 再点一次不重复记账。
任务三 · DeepSeek 智能加药(必做 · 本周重点)
家属端用药页增加一个聊天框:用自然语言说「加入布洛芬」,系统自动联网搜索说明书要点与药品类型,整理后写入老人药单。
要做成什么样
- 家属登录后,在用药页能看到加药聊天框
- 发送类似「加入布洛芬 / 帮老人加阿司匹林」的话
- 后端调用 DeepSeek V4 Flash(关闭深度思考,优先速度)
- 先联网搜索药品说明书相关信息,再交给模型整理
- 模型输出药名、老人叫法、药品类型、用法摘要、建议服药时间
- 确认意图后,自动添加到该家庭的药物目录(可点选的选项),而不是直接写入待服药清单
- 家属再从目录点选,确认时间后才加入正式药单
- 界面必须有免责声明:仅供照护参考,不能替代医嘱
课堂提供的 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 失败时,至少用搜索摘要做兜底,不要整页空白
- 参考体验站已有一版:登录家属账号 → 用药中心顶部聊天框
任务四 · 用药增强(选做加分)
在任务二基础上,至少完成其中两项:
- 药物列表/目录:可搜索、点选后自动填入添加表单
- 白话解读:输入药名后给出照护向解释 + 免责声明(可用 AI,也可用本地知识库)
- 依从分析:近 7 天完成情况可视化(如图表),能看出漏服大概在什么时段
验收:现场演示点选目录或解读或图表,逻辑自洽、有免责文案。
任务五 · 日程步骤引导(必做 · 本周重点)
教学点:有序步骤、当前做到哪一步、关掉再打开还能接着做; 家属看全貌,老人一次只看一步。 不要做成普通打勾待办清单。
基础能力
- 家属能创建日程任务,并把一件事拆成有顺序的多步(例如:准备午饭 → 洗手 → 拿碗 → 盛饭)
- 家属看板能看到:今天有哪些事、每件事做到第几步、整体完成进度;最好能看到本周大概完成情况
- 老人端一次只显示当前这一步,大按钮「做好了」「跳过」;可选「再说一遍」朗读当前步骤
- 老人可以「先不做了」,稍后再「继续」;继续后仍停在离开时的那一步
- 关掉页面或换设备再打开,进度不能丢,要接着上次继续
- 必须按顺序做:不能跳过中间步骤直接完成后面的步
- 同一按钮连点两次,不能把进度多推一步(重复确认要安全)
- 任务已经开始做了之后,家属再去改步骤文字,老人今天正在做的这一次不应突然变成新文案(今天这次按开始时的步骤继续)
- 家属可以代完成某一步、整件做完,或重置今天的进度
- 家属看得到全部步骤和进度;老人只能看到当前一步——两边看的是同一份进度数据
模型推荐拆步骤(必做)
家属不必自己想全部分步,可以用模型先出一版建议,再决定要不要用。
- 在日程页填写一件事(如「准备午饭」)后,能点「AI 建议拆步骤」
- 模型返回:简短说明 + 建议标题 + 有序步骤列表(可顺带建议时间、类型)
- 建议只展示给家属看,不能自动写入日程
- 家属可以「填入表单再改」或「采纳建议并创建」;采纳后任务真正出现在日程列表里
- 采纳失败时(例如网络问题),建议内容还在,不要整段消失让人以为没传进去
右下角工作区助手(必做)
家属工作区各页右下角有统一助手,日程相关能力也要能在对话里完成(不只日程页按钮)。
- 用户说「帮我把准备午饭拆成步骤」时,助手先给出建议步骤,先不创建
- 用户明确说「就按这个创建 / 同意加入」后,助手再写入日程
- 助手还能查今日进度、代完成当前步 / 整件、重置今日进度(权限按角色)
- 助手知道当前在哪个页面,回答要贴合当前场景;不做诊断、不开药
验收: ① 日程页:AI 建议 → 采纳创建 → 列表出现带多步的任务; ② 右下角助手:说「帮我把出门散步拆成步骤」→ 先出建议 → 再说「同意加入」→ 日程里新增任务; ③ 家属创建一个三步任务 → 老人逐步点完 → 家属侧显示 100% 完成; 做到一半关掉页面再进,仍停在刚才那一步; 做到一半后家属改步骤文案,老人当前这次仍显示原来的步骤文字; 连点「做好了」不会多跳步。
任务六 · 认知主题聊天(必做 · 本周可做)
教学点:CST 怀旧陪伴——主题化、一屏一问、无对错压迫。 界面称「今日聊天主题 / 认知刺激」,不称疗程或治疗。
- 有主题库(建议 ≥20 个):怀旧、节日、家乡味道、老物件等
- 家属可在认知中心查看今日主题、设为今日、生成本周主题
- 聊天页
/app/chat:暖场 → 一屏一问(开放 / 选择 / 是否)→ 结束选心情 - 中途可先结束;再进能继续未完成会话
- 老人端大字入口「聊天」,少打字、大按钮选项
- 结果页有免责声明:仅供参考,不能替代医师评估
验收: 家属选定今日主题 → 完成一次一屏一问聊天并选心情 → 认知日历/最近会话可见记录;老人端也能走完同一主题。
任务七 · 训练馆(必做 · 本周可做)
教学点:训练范式为辅;触屏小练习、无倒计时惩罚;不作诊断。
- 训练馆页列出题型;至少包含:翻牌、舒尔特、找数字、补谚语、反义词、方位、词序、简化色字
- 连续做错自动降难度;无倒计时惩罚
- 老人端「玩一玩」可进入;中度阶段默认只保留少量温和题型
- 练习结果写入记录,日历上能看到「练过」
验收: 完成一次翻牌练习并保存 → 认知中心/训练馆最近记录可见; 中度阶段训练入口明显少于轻度。
任务八 · 更后阶段预告(先了解,暂不强制)
- 筛查、告警、周报
- 怀旧相册 / 歌单与主题联动
- 出门/购物清单等
提交与演示
- 能跑起来的网站地址或本地演示
- 按「验收」路径现场点一遍:账户 → 用药确认 → DeepSeek 加药 → 日程 AI 建议采纳 / 右下角助手拆步创建 → 老人三步做完 → 认知主题一屏一问 → 训练馆翻牌一次
- 不限技术栈;推荐参考课上仓库,也允许从零做
参考体验(可选)
课上已有一版可点击参考,不是标准答案: