10055| 0
|
[教程] 【AI2+AI】手机诊疗机器人Therapist Bot |
一个傻傻的人机对话app 教程地址:https://appinventor.mit.edu/explore/resources/ai/therapist-bot 手机诊疗 机 器 人手机上的app会是你的下一个治疗师吗? 有时我们仅仅需要说说自己的感受。(去医院)治疗有帮助,但不是所有人都能得到或负担得起。手机上的app可以做到诊疗吗? YR Media的朋友在他们的新闻报道中报道了使用人工智能为治疗机器人赋能的应用,你的下一个治疗师会是你的手机吗? 使用本指南制作自己的诊疗机器人。 手机诊疗机器人(难度:中级)1. 项目介绍该项目是著名程序ELIZA的简化版本,ELIZA程序由麻省理工学院的Joseph Weizenbaum教授于1960年代初期在麻省理工学院开发。这个机器人程序与用户进行“对话”,机器人模仿心理治疗的非定向风格。在最初由美国咨询心理学家卡尔·罗杰斯(Carl Rogers)于1940年代开发的非定向心理治疗中,治疗师并不参与为患者提供专家意见,也不提供对话指导,而是通过积极倾听和提问,使患者能够了解自身的困境并找到他们自己的康复方法。 2. 项目介绍:聊天示例下面是诊疗机器人BOT与用户进行交流的可能顺序: USER: my father hates me BOT: Why do you say that your father hates you USER: he always favors my brother BOT: You seem to think that he always favors your brother USER: my mother and I are very close BOT: Can you explain why your mother and you are very close USER: she helps me with my school work BOT: Please tell me more USER: bye BOT: Be well. Have a nice day! BOT:你好! 我希望你今天一切都好。 我能为你做什么? 患者:我爸爸讨厌我 BOT:为什么你说你爸爸讨厌你 患者:他总是喜欢我的兄弟 BOT:你似乎认为他总是喜欢你的兄弟 患者:我和妈妈关系非常好 BOT:你能解释一下为什么你和母亲非常亲密吗? 患者:她帮助我完成学校作业 BOT:请告诉我更多 患者:再见 BOT:好的。 祝你今天愉快! 3. 项目介绍:应答语言结构当用户输入一条语句时,BOT会以以下两种方式之一进行应答: 使用随机选择的措辞,如“Please tell me more”; 或通过更改用户陈述中的某些关键字(如“我”和“我的”变成“你”和“你的”)并将其附加到随机选择的限定词上。 例如“I always loved my sister.”。 当有资格预审的人改变后变成“Can you explain why you always loved your sister?”
4. 用户界面(1)现在开始构建用户界面(UI)。 这是最终界面的外观。 要将屏幕1中的所有内容水平居中,请将其AlignHorizontal属性更改为“居中”。 将ScreenOrientation属性更改为“ Portrait”,然后单击以检查Scrollable属性。 5. 用户界面(2)首先添加BOT的图片。 拖放一个Image组件 6. 用户界面(3)接下来创建“治疗日志”记录用户评论和BOT反应。 拖放一个TextBox组件 如下所示更改TextBox 组件的属性,请特别注意红色框中指示的属性。 7. 用户界面(4)接下来拖放一个HorizontalArrangement组件 设置该组件的属性,如下所示 8. 用户界面(5)最后将TextBox组件 将组件分别重命名为“UserTextBox”和“ SubmitButton”。 如下所示更改TextBox组件的属性。 将Button组件的文本属性更改为“Submit”。 根据需要调整其Width,BackgroundColor和Shape属性。 9. 逻辑设计现在切换到逻辑设计为用户界面(UI)提供功能,赋予BOT一些智能。 10. 初始化创建一个名为hedges的变量,这个变量是一个包含三个可能语句的列表:
你可以在列表中添加更多语句。 这也是后面“扩展应用”选项卡中的建议之一。 11. 初始化创建一个名为qualifiers的变量,它包含了三个可能的问句列表,这些问句位于用户输入句子的用户更改版本之前:
由于问句会在程序生成的答复之前,所以要在问句列表中每个问句末尾添加空格。 你可以在列表中添加更多问句。 实际上,这是下面“扩展你的应用”选项卡中的建议之一。
12. 字典数据结构计算机科学中的字典是一种数据结构,用于存储键值对,就像存储单词及单词的定义的真实字典一样。 与现实世界中的字典不同,计算机科学中使用的字典数据结构可以保存与任意值关联的任意键。 这些键和值几乎可以是任何东西:字母、单词、多单词字符串、数字以及所有这些的混合组合。 13. 替换字典创建一个名为replacements的变量作为键值对的字典,指示在BOT响应用户的回答时应如何进行人员替换。 注意,这些替换将第一人称更改为第二人称,反之亦然。 你也可以将这些第二人称替代词添加到第一人称替代词中。实际上,这是下面“扩展你的应用”标签中的建议之一。
14. Screen1初始化Screen1初始化时显示一条欢迎消息在治疗日志上,例如“Hello there. I hope you are well today. What can I do for you?” 。 先编写代码。 如果陷入困境并想要一些提示,可以参看下面的提示。
15. "替换所有"代码块(1)在这个项目中,要完成的最关键的任务之一是正确转换用户的语句,将第一人称代词替换为第二人称代词等。这个任务很庞大,但是我们有一个replace all替换所有代码块。 这个功能强大的文本块需要替换字典的映射输入和一个句子作为文本输入(例如,用户键入的文本)。 还需要选择一个优先顺序:默认的最长字符串优先顺序或字典顺序。 16. "替换所有"代码块(2)要了解每个顺序首选项的效果,请检查以下情况。 在第一种情况下,首选顺序是字典顺序。 在下面的句子中: "you knew it yourself" 单词"yourself"中包含字符串"you"。 因为"you"在字典中首先出现,并用"I"代替,所以“yourself”变为“Irself” ,因此产生的句子毫无意义: "I knew it Irself"。 (颜色用于强调) 17. 替换所有代码块(2)但是如果选择最长的字符串排序第一,则较长的字符串"yourself"会首先被替换为"myself" ,然后将较短的字符串"you"替换为"I",从而对"you knew it yourself"进行"I knew it myself"这样有意义地替换。 (颜色用于强调) 因此更好的做法是使用字符串的长度来排序。这会让上下文更有意义。 首先在句子中查找字典中最长的键,如果找到则将其替换,然后找到第二个最长的键将其替换,依此类推。 在上下文中使用字典顺序你有什么好的想法? 18. reply Procedure应答程序定义一个名为reply的过程,有一个输入作为参数,返回一个句子:
编写程序。如果陷入困境以下是提示。 对于有返回值的过程,选择右边的代码块: 要在过程中添加一个输入参数,请使用设置齿轮: 你可能还会发现带返回值的if then else很有用,返回值与常规的if then else代码块相似,但允许根据满足的条件返回不同的值。
19. Submit Button提交按钮当用户按下“Submit”按钮时:
编写程序。如果陷入困境以下是提示。 可以通过设置齿轮添加更多的套接字到连接块:
20. 测试App祝贺你,你已经创建了第一个会聊天的人工智能自主机器人。 注意:在测试期间,你可能会意识到机器人可以使用很多改进。下面“扩展你的app”提供一些启发。 进一步的探索
你有什么更好的创意... |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed