6291| 7
|
[教程] 【AI2+AI】ChatGPT App |
本帖最后由 szjuliet 于 2023-7-24 00:24 编辑 视频教程:(视频有点长,进行了章节分割,可点击进度条快速跳转到相应的内容) 英文版测试截图 中文版测试截图(回答的是不是很有爱,所以角色的设定非常重要!): 讯飞的语音识别把Python识别成了“开展”,但是ChatGPT还是回答正确! ChatGPT App难度:中级 让智慧的世界触手可及你是否想过如何创建自己的 ChatGPT 应用程序,让你无论身在何处,都可以进入充满有用信息的世界?在本教程中,你将使用 MIT App Inventor 构建一个简单的应用程序,允许用户连接到 ChatGPT、提出问题并进行对话。 创作教程项目概要在本教程中,你将使用MIT app Inventor构建一个简单的应用程序,允许用户连接到ChatGPT,提出问题并进行对话。 该应用程序将允许用户首先定义一个系统角色,以便ChatGPT将根据分配给它的角色进行响应。例如,如果用户将系统角色定义为: “你是一个幼儿园老师,以4岁孩子的水平解释一切。” 然后让ChatGPT“解释大BAOZHAO理论”,其回答将与一个4岁孩子的理解相匹配。 图形用户界面 (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 来创建迷人的视觉效果。 你还有什么很酷的想法? |
3.85 KB, 下载次数: 26
售价: 1 创造力 [记录]
项目初始文件及插件
本帖最后由 szjuliet 于 2023-7-23 23:52 编辑 重要提示: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,又可以愉快的薅羊毛了。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed