【AI2+AI】ChatGPT App

2023-07-199393
精华项目
AI 快速预览详细 收起
本教程介绍了如何使用MIT App Inventor构建一个简单的ChatGPT应用程序。通过定义系统角色,用户可以与ChatGPT进行对话,获取丰富的知识和智慧。项目中使用了语音识别、TextToSpeech和ChatBot组件。适合6-8年级和9-12年级的学生。


视频教程:(视频有点长,进行了章节分割,可点击进度条快速跳转到相应的内容)

英文版测试截图
【AI2+AI】ChatGPT App图3

中文版测试截图(回答的是不是很有爱,所以角色的设定非常重要!):
【AI2+AI】ChatGPT App图4

讯飞的语音识别把Python识别成了“开展”,但是ChatGPT还是回答正确!【AI2+AI】ChatGPT App图5
【AI2+AI】ChatGPT App图2

【AI2+AI】ChatGPT App图1

ChatGPT App

难度:中级
课程类型:教程
主题:计算机科学
年级水平: 6-8,9-12
资源 URL: ChatGPT 应用程序

让智慧的世界触手可及

你是否想过如何创建自己的 ChatGPT 应用程序,让你无论身在何处,都可以进入充满有用信息的世界?在本教程中,你将使用 MIT App Inventor 构建一个简单的应用程序,允许用户连接到 ChatGPT、提出问题并进行对话。

创作教程

项目概要

在本教程中,你将使用MIT app Inventor构建一个简单的应用程序,允许用户连接到ChatGPT,提出问题并进行对话。

该应用程序将允许用户首先定义一个系统角色,以便ChatGPT将根据分配给它的角色进行响应。例如,如果用户将系统角色定义为:

“你是一个幼儿园老师,以4岁孩子的水平解释一切。”

然后让ChatGPT“解释大BAOZHAO理论”,其回答将与一个4岁孩子的理解相匹配。

(注:[size=13.3333px]Big Bang翻译过来的中文被屏蔽,所以用BAOZHAO替代)

图形用户界面 (GUI)

在这个项目中,你将获得一个即将完成的 GUI(请在附件中下载)。

你认为每个组件的功能是什么? 许多组件可能是不言自明的。 但是,ListView 是你显示用户与 ChatGPT 的对话的位置。

从媒体Media抽屉中先拖放一个 SpeechRecognizer 组件,接下来拖放一个 TextToSpeech 组件。

然后,从Experimental抽屉中拖放一个 ChatBot 组件。

你的工作区和组件面板添加了三个如下所示的不可见组件:

编写GUI 功能代码(1)

单击Blocks按钮进入Blocks编辑器。

你只需使用 ChatBot 组件的 4 个基本积木块即可完成本 ChatBot 应用程序的所有细节。 因此,首先拖出这些积木块并准备好部署。 你能猜出每个积木块的作用吗?

现在可以开始了。初始化全局变量 chatList 为空列表。这是将聊天消息作为列表条目保存的变量。

编写GUI 功能代码(2)

回想一下,当你在整个程序中多次使用一段代码时,最好将其“分解” — 也就是说,将其定义为一个过程,以便简化代码并使其更易于维护(例如,如果由于错误而需要编辑某些内容,则可以在一个地方修复它,而不是在整个程序中进行修复)。

创建一个过程 processMessage,它接受两个输入:speaker文本。对于给定的对话实例,speaker是“AI”或“User”,文本将是给定消息的文本。该过程将形成如下所示的文本

User解释一下大BAOZHAO理论

将speaker(“用户”)与文本(“解释大BAOZHAO理论”)拼接,中间用“:”(冒号-空格)隔开。这个新文本将被添加到 chatList中,然后该过程将用新添加的文本更新ListView。请注意,ListView将以相反的顺序显示用户和AI之间的聊天,这样更容易阅读,最近的对话总是在最顶部。

编写GUI 功能代码(3)

单击 SystemRoleButton 时,将 ChatBot System 属性分配给用户在 SystemRoleTextBox 中指定的角色。 chatList 中的第一个条目应该指示分配的系统角色。 例如:

User:你是幼儿园老师,以4岁孩子的水平讲解一切

分配系统角色后,清除 SystemRoleTextBox 中的任何文本,并使包含所有系统角色分配组件的 VerticalArrangement 不可见。

注意:不要忘记在两个连接块中的“You are a”后面添加一个空格。

编写GUI 功能代码(4)

当用户按下 TalkButton 时,SpeechRecognizer 应捕获用户的语音并将其发送给 Google 进行分析:

当从 Google 收到语音文本时,应用程序将在聊天中创建下一行。 例如:

User:解释一下大BAOZHAO理论

还包括将此文本作为问题发送到 ChatGPT 的代码:

编写GUI 功能代码(5)

当 ChatGPT 返回响应时,应将新消息添加到 ListView,例如:

AI:大BAOZHAO理论就像很久以前发生的一次真正的大**……

并使 TextToSpeech 组件大声读出此响应。

编写GUI 功能代码(6)

最后,当用户单击 ResetConversationButton 时,重置对话,将变量 chatList 设置为空列表,清除 ListView,并使承载系统角色分配组件的 VerticalArrangement 可见。

测试应用程序

现在,通过扫描 AI2 Companion 生成的二维码来测试你的应用程序。 给系统一个有趣的角色,并向 ChatGPT 询问一些问题。 例如:

User:你是一个用打油诗来回答每一个问题的莎士比亚演员

User:解释一下鸡为什么过马路

请注意,除非你使用自己的 OpenAI API 密钥,否则你可以向 ChatGPT 提出的问题数量是有限的。 在撰写本教程时,此限制约为 10,000 个令牌,其中一个令牌大约是一个单词,其中包括 ChatGPT 对你的回复。

恭喜! 你刚刚创建了一个功能强大的应用程序,只需按一下按钮即可与 ChatGPT 聊天,并获取丰富的知识和智慧。

免责声明:在评估 ChatGPT 的响应时始终使用常识,并注意,与任何计算机系统一样,ChatGPT 可能会失败。

项目拓展

如何使用 chatGPT 应用程序充当非指导性治疗师,指导你解决与心理健康相关的问题? 你可能还喜欢重温基于 1960 年代 Eliza 项目的经典(机器学习之前)人工智能项目 Therapist Bot( 【AI2+AI】手机诊疗机器人)。

你如何使用该App与你合作为说唱歌曲或诗句创建一些小节?

ChatGPT 可以为你提供有关时事的信息吗? 是否存在某些 ChatGPT 没有编程实现的话题?  ChatGPT 是否会明显向你提供虚假信息? 你可以找到哪些例子来说明 ChatGPT 的局限性? 探索 ChatGPT 的其他限制和失败。

获取你自己的 OpenAI API 密钥,这样你可以与 ChatGPT 进行的对话数量不受限制。

ChatBot 组件允许你通过 Provider 属性访问除默认 ChatGPT API 之外的聊天机器人 API。 一个例子是 Google 的 PaLM。 探索这些选项。

探索新的 ImageBot 组件,它使用 DALL-E 的生成式 AI 来创建迷人的视觉效果。

你还有什么很酷的想法?





ChatBot_Starter.rar

3.85 KB, 下载次数: 35

售价: 1 创造力  [记录]

项目初始文件及插件

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
腿毛利小五郎
腿毛利小五郎
这个好,这个好
派大星ym
派大星ym
666666666666666
派大星ym
派大星ym
.。。。
阿布001
阿布001
6666666666
9mm
9mm
非常棒!
szjuliet
szjuliet
作者
重要提示:AI伴侣一定要更新到2.67版本及以上。这个App使用了Experimental里的ChatBot组件,在国内是可以正常访问的,无需辅助上网。但自己App Inventor账号下创建的APP可以向 ChatGPT 提出的问题数量是有限的,大概为 10,000 个单词, ChatGPT 对你的回复也包含在这个数量内的。如果想要进行更多的对话,可以使用自己的OpenAI API 密钥(登录https://openai.com/ ,点击Api,点击生成新的ApiKey),复制密钥后在Chatbot的ApiKey里设置就可以了。当然,使用ApiKey是要收费的。所以,即使每个账号下只有10000个单词,也能够体验几个问题了。而且code.appinventor.mit.edu有个好的地方是可以免账号,所以额度用完之后再生成一个code重新导入aia生成一个新的app,又可以愉快的薅羊毛了。
Amos Young
Amos Young
666,确实很酷
- 没有更多了 -