2024 年 6 月的原型 · 已结束
Echo
在 Psyckitchen 期间完成
一个温暖的陪伴者,设计初衷是记得你上次说过的话,让每次聊天都能接着上回继续。
Echo 是 2024 年 6 月的一个原型,现已结束,从来不是临床或诊断服务。本页依据两个私有代码仓库中 2024 年 6 月 8 日至 14 日的代码来介绍它。页面上的插画是为本站绘制的,不是 Psyckitchen 的标志。下面的演示是事先写好的脚本,不调用任何 AI 服务。
Echo 是什么
Echo 的设计定位,是一个陪你聊日常压力、低落情绪和那些不好开口的事的伙伴。按照设定,它说话像一位有心理咨询背景的暖心朋友,回复简短,一次只问一个问题,往下聊之前会先确认自己有没有听懂。
它的特别之处在于记性。没有记忆的聊天机器人,每次对话都得从零开始。Echo 的设计是给每个人留一份简短的资料和过往的聊天记录,这样不用你再讲一遍,它也能问起周四那件事后来怎么样了。
它的人设要求先多听几轮,再给建议。到了合适的时候,再提几种有循证依据的方法,比如认知行为疗法(CBT)里的认知重构,让对方自己挑一个,再陪着一起练习。
它是怎么运作的
每条消息都会在一个小小的 Flask 服务器上走同样的三步。
1
聊天
一条消息到达服务器,服务器先查清楚是谁在说话。
2
记忆库
MongoDB 取出这个人的资料,以及最近最多 100 条消息。
3
GPT-4o
Echo 的人设、个人资料、聊天记录和新消息一起发给 GPT-4o。一问一答都会存下来,留给下一次。
可穿戴屏幕的设想
Next.js 测试页面分成两块。一块是聊天框,用来检查输入和输出。另一块是一个 300×300 像素的奶油色方块,中间放着一张品牌图片,代表一块可穿戴设备的屏幕。
仓库里没有任何设备端的代码,所以这块屏幕一直停留在设想阶段。
和 Echo 聊两天
点播放,看一段跨越两个晚上的虚构对话。到了第二晚,Echo 会主动提起第一晚聊到的事。
脚本演示,不是真正的 Echo
每一句都是事先写好的。你在这里的任何操作都不会发送到别处。
点“播放第 1 天”,从第一晚开始。
Echo 记下的事
还没有。
原型保存的是一份个人资料和最近最多 100 条消息,每次连同新消息一起发给 GPT-4o。这里的笔记只是一个简化的示意。
幕后
Echo 是我在 Psyckitchen 担任 AI 产品与大语言模型提示词专员(AI Product and LLM Prompt Specialist)期间做的。这一部分只依据两个私有仓库的 git 历史。两个仓库里属于原型阶段的提交都是我做的,时间在 2024 年 6 月 8 日到 14 日之间。
- 时间
- 2024 年 6 月 8 日至 14 日
- 后端
- Flask 和 MongoDB
- 模型
- GPT-4o(OpenAI API)
- 部署
- Azure App Service
- Python
- Flask
- MongoDB
- OpenAI API
- GPT-4o
- Gunicorn
- Azure App Service
- Next.js 14
- React
- Tailwind CSS
Next.js 14 测试页面最先做好,时间是 6 月 8 日和 9 日。页面上有可穿戴面板和聊天框。聊天框接了一个调用 OpenAI 的简单中转接口,代码里留了注释,说以后要换成 Echo 的后端。
后端从 6 月 11 日开始写。它是一个 Flask 应用,在 MongoDB 里为每个人保存一份资料。资料里可以记下称呼、当前的心理和身体状况、爱好和应对方法、个人经历和病史、一份 5P 个案概念化,还有工作、学习和生活方式的情况。和 Echo 的每一句对话也都存在旁边。
6 月 14 日的一次提交把聊天记录加进了每次请求,Echo 能接着上回聊,靠的就是这一步。那时如果没有设置用户名,聊天仍会默认用同一个测试账号,所以按人把记忆分开本应是下一步。
它部署在 Azure App Service 上,用 Gunicorn 启动,旁边也放了一份 Dockerfile。早期有好几次提交都是在反复添加、删除和改名 Azure 的部署流程,为的是让应用顺利启动。Echo 的性格写在一份中文系统提示词里,单独放在一个文件中,改人设不用动代码。
负责任地使用 AI
- Echo 是 2024 年 6 月的一个原型。本页介绍的不是临床服务,聊天机器人也代替不了医生、心理学家或心理咨询师。
- 它的人设还要求在聊天里穿插一些依据 DSM-5(《精神障碍诊断与统计手册》第五版)的温和筛查问题,而且不让对方觉得自己在被诊断。真正的服务只能公开地做筛查,事先征得本人同意,并在临床专业人员的监督下进行。
- 语言模型说起话来很笃定,也照样会出错。聊天机器人说的任何与健康有关的内容,都需要专业人士来把关。
- 有记性的陪伴让人觉得亲切,同时也意味着要保管敏感信息。真正上线的服务需要先征得同意,明确限定保存哪些内容,还要让每个人都能查看和删除自己的记录。
免责声明
Echo 只是一个原型,不是临床或诊断服务,现已结束。它提出的问题,包括参照 DSM-5 风格的筛查问题,从来都不是诊断,也不能代替专业帮助。对于任何依据它的提问或回复做出的决定,我本人和 Psyckitchen 均不承担任何责任。如果你担心自己的心理健康,请咨询全科医生、心理学家或心理咨询师。
现在就想找人聊聊?
如果你在澳大利亚,请拨打 Lifeline 生命热线 13 11 14,全天 24 小时都有人接听。想用普通话或其他语言交流,可以拨打 TIS 口译服务 131 450,请他们帮你接通 Lifeline。紧急情况请拨打 000。如果你不在澳大利亚,请拨打当地的急救电话或心理危机热线。
拨打澳大利亚 Lifeline 生命热线 13 11 14