Skip to content
← 返回项目

2024 年 6 月的原型 · 已结束

Echo

在 Psyckitchen 期间完成

一个温暖的陪伴者,设计初衷是记得你上次说过的话,让每次聊天都能接着上回继续。

Echo 是 2024 年 6 月的一个原型,现已结束,从来不是临床或诊断服务。本页依据两个私有代码仓库中 2024 年 6 月 8 日至 14 日的代码来介绍它。页面上的插画是为本站绘制的,不是 Psyckitchen 的标志。下面的演示是事先写好的脚本,不调用任何 AI 服务。

Echo 是什么

Echo 的设计定位,是一个陪你聊日常压力、低落情绪和那些不好开口的事的伙伴。按照设定,它说话像一位有心理咨询背景的暖心朋友,回复简短,一次只问一个问题,往下聊之前会先确认自己有没有听懂。

它的特别之处在于记性。没有记忆的聊天机器人,每次对话都得从零开始。Echo 的设计是给每个人留一份简短的资料和过往的聊天记录,这样不用你再讲一遍,它也能问起周四那件事后来怎么样了。

它的人设要求先多听几轮,再给建议。到了合适的时候,再提几种有循证依据的方法,比如认知行为疗法(CBT)里的认知重构,让对方自己挑一个,再陪着一起练习。

它是怎么运作的

每条消息都会在一个小小的 Flask 服务器上走同样的三步。

  1. 1

    聊天

    一条消息到达服务器,服务器先查清楚是谁在说话。

  2. 2

    记忆库

    MongoDB 取出这个人的资料,以及最近最多 100 条消息。

  3. 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