Skip to main content
README 从前完整收录的那份关爱圈演示。第 2 到第 4 段是对着一套跑起来的 ./deploy.sh、并且开着 SEED_DEMO_DATA 录的;第 1 段是画的 —— 它讲的是授权那条路,而画出来的东西能拿去和 user/care_circle.py 对照, 录屏不能。README 放了四幕里的三幕,第四幕链到这里。 SEED_DEMO_DATA 默认打开,所以 ./deploy.sh 一跑完,① → ② → ③ 这条链就能走:登录 和浏览种子记录不需要任何 key;第 2、3 段的抽取和第 4 段的提问,走的是前面配的那一 把 key。 1 · 进门。 你用 you@mirobody.ai 登录,看到的是两份记录,不是一份。你自己的: 一年的自测体征,加去年 11 月的一份化验单。mom@mirobody.ai 的形状一样,但那是另一 个人,把记录以只读方式共享给你,而她的体重在涨、睡眠偏短、HbA1c 已经越出范围。同一 个问题,两个答案,而两份记录里只有一份是你的。隔离是你能看见的,不是只能读到的。

一个人如何读到另一个人的健康记录:请求经过 resolve_subject,它要求双方成员关系都已接受、且对方自己打开了 health_access 开关,然后要么返回按请求裁剪过的权限,要么抛出 403一个人如何读到另一个人的健康记录:请求经过 resolve_subject,它要求双方成员关系都已接受、且对方自己打开了 health_access 开关,然后要么返回按请求裁剪过的权限,要么抛出 403

到 1.4.4 之前,这四条只是一张图。现在每一条都由测试当作安全属性钉死,而不是当 作一件好事,因为出货的代码曾经一次性违反了全部四条(见路线图)。 表可以 diff,图不行。 这个开关是一个字段,不是一句承诺:care_circle_members.health_access, NOT NULL DEFAULT 0,在你自己的那一行上。被拉进一个圈子本身不共享任何东西, 由成员自己决定,别人的任何动作都抬不高它。读它的那个检查是抛异常而不是返回一个假 值,所以一条忘了检查的路由给出的是 403,而不是把记录递出去。 examples/06_care_circle_rules.py 能离线打印 整张决策表。 2 · ① 收集。 demo/upload/ 里放着四份种子数据故意没写进库的文件, 所以上传一份不是空操作。它们是四种不同的格式,因为一份健康档案本来就是化验所、诊所 和家里各自产出什么样,它就是什么样: 把一份拖到 Data 页,文件先被原样存下来,可追溯。① 收集只做这一件事,而这个切分很 要紧:化验所说了什么是一个事实,它是什么意思是另一个。

把化验单 PDF 拖到 Data 页;分析物被抽取出来,各自链回来源文件

3 · ② 转译。 几秒之后,里面的分析物变成一条条指标,每一条都链回它被读出来的那 份文件,每一条都带着码:
模型负责读这一页,但轮不到它去编码。解析是对着随包发布的词表查表,离线、结果确定, 查不到就弃答,不猜。 正是那个码,让不同的文件能放在一起读。那份 csv 来自另一家化验所,分析物的写法也不 一样:套餐上印的是 Total Cholesterol-TC,它写的是 Cholesterol, Total,而两者同为 14647-2,所以它们是一条序列,不是两条。单位是这个身份的一部分,而不是被抹平的东西: 胆固醇在 mmol/L 下是 14647-2,在 mg/dL 下是 2093-3,把这件事说出来,才挡得住一条由两 者混起来的趋势悄悄地错。把这两个码归并成一条可比的线是 1.5.0 的 comparability key; 设备那一侧的换算已经在做了, examples/02_standardize_a_reading.py 能离线把 154.5 lb 变成 70.08 kg。 4 · ③ 智能体。 问一句胆固醇怎么变的。agent 会把带着这一项的文件全都找出来,包括 csv 里那个不一样的写法,然后拿它读到的东西作答:
三份文件,三套写法,一条线,每个数字旁边都写着它出自哪一份。同一个问题问到共享的那 份记录上,答案就是另一个人的。

问自己的体检结果;agent 把两次抽血都画出来,注明每个数字来自哪份文件,并读出趋势

同一个问题问到共享记录上;agent 从一份你只能查看的记录里作答

这就是一次坐下来跑完的整条链:一份文件进去,一条带码的指标出来,一个 agent 在它上面 作答。C · T · A,每一阶段都单独可见,而不是嘴上说说。 所有数值都是生成的,这里没有一份文件描述真实的人,种子数据也不需要联网、不需要 key。 要让一套部署存真实数据,把 SEED_DEMO_DATA 设成 false。 demo/README.md 说明每份文件是什么、怎么重建;抽取这一步对这些 指标还没有做到的事,写在 docs/roadmap.md 里,而不是在这里含糊过去。