App Inventor 2 试验组件

« 返回首页

试验组件

目录:

  1. ChatBot
  2. Firebase数据库
  3. ImageBot

ChatBot(OpenAI ChatGPT聊天机器人)

ChatBot 是一个不可见组件,用于与 AI 聊天的聊天机器人。此版本使用 MIT 运行的代理,该代理又使用 ChatGPT 生成大语言模型。

来自MIT官方的提醒:人们应该小心聊天机器人。他们经常产生虚假结果。根据我的经验,他们总体上是正确的,但细节可能是错误的。

注:此组件对AI伴侣要求最低版本为v2.67 (旧版本请扫码升级:帮助 -> AI伴侣信息),编译为apk则不受限制安装后可正常运行。

属性

ApiKey
ChatGPT 的 ApiKey,由用户提供。如果提供,我们将使用它来代替聊天代理服务中的 API 密钥。

注意:我们不将其作为属性在“界面设计”视图中提供,应在“程序设计”视图中使用代码块设置。最好使用文本块中的模糊文本对嵌入在打包应用程序中的密钥提供一些保护(但不是完美的保护)。

如果提供你自己从 OpenAI 获取的 ApiKey,则不受 MIT 施加的限制。不过,为了方便轻松访问这些组件,如果没有获取ApiKey,那么将会使用MIT获取的ApiKey。由于这需要花钱,因此目前每天的使用次数受到限制。 注意:如果您打包应用程序并分发它,则您应用程序的所有使用都将受到相同的配额限制。 如果您希望分发使用这些服务的应用程序,建议使用MIT的 ApiKey 进行测试,但最终发布时使用你自己的 ApiKey。

模型
设置要使用的模型的名称。留空将使用提供商设置的默认模型,目前,模型供将来使用,不执行任何操作。
提供商
设置要使用的提供商的名称,默认值是chatgpt。请参阅 https://appinv.us/chatbot 了解当前支持的提供商列表。

除了ChatGPT,你还可以选择 Google 的 PaLM 大语言模型。要使用 PaLM,请将“提供商”属性设置为“palm”(注意,全部小写)。但是,Google 对谁可以使用 PaLM 有限制,如果你获得自己的 ApiKey 则不受任何限制。

系统值
赋予 ChatGPT 的系统值,它用于设定对话的基调,例如:“你是一个有趣的人。”
访问令牌
要使用的 MIT 访问令牌,默认会自动填写此内容值,不需要更改它。

默认情况下,令牌是无法访问MIT代理服务器的,如需有效令牌请参照《App Inventor 2 使用MIT代理的组件访问令牌的获取方法》

ApiKey的申请以及它与访问令牌的关系请参考《App Inventor 2 如何接入ChatGPT:国内访问OpenAI的最佳方式》

事件

出现错误(响应代码,响应文本)
当执行期间发生错误时,将运行 出现错误 事件处理,例如是否超过使用配额,或者某些ChatGPT 或 PaLM 发出的其他错误。

https://appinv.us/chatbot 了解最新信息。

获取响应(响应文本)
指示请求已完成并已返回数据的事件(来自 ChatBot 的输出)。

方法

对话(question)
向聊天机器人询问问题,连续的对话将记住先前对话中的信息,使用 重置对话 方法重置开始新的对话。
重置对话()
重置当前对话,聊天机器人在回复时会忘记之前的任何对话。

Firebase数据库

Firebase 组件与 Web 服务通信以存储并获取数据。 该组件可以在标签下存储值并检索与标签关联的值。 它还拥有一个监听器,可以在存储值改变时触发事件。

更多信息

FirebaseDB vs TinyWebDB 区别

区别 Firebase数据库 网络微数据库
区别在于来自不同应用程序的变量是否会干扰 每个应用程序都有其单独的数据存储,因此其他应用程序的变量不会干扰 任何应用程序都可以更改值,前提是它使用相同的标签

属性

开发者桶
获取开发者桶(bucket)。
Firebase令牌
获取Firebase访问令牌。
Firebase URL地址
指定 Firebase 的 URL地址。当前默认值是MIT私有 Firebase URL地址,目前选择默认即可。
持久化
如果为 ,则变量在离线且应用程序退出时将保留其值。下次应用程序在连接到网络时运行时,值将上传到 Firebase。这对于在未连接到网络时收集数据的应用程序非常有用。

注意:

  • 追加值删除第一项 在离线时无法正常工作,它们需要网络连接。

  • 如果你在任何 Firebase 组件、任何屏幕上设置 持久化, 它使所有屏幕上的所有 Firebase 组件保持不变。这是 Firebase 底层库的限制。

项目桶
获取项目桶(bucket)。

事件

数据改变时(标签,)
表示 Firebase 中的数据已更改。

使用已更新的标签和值启动事件。

Firebase错误时(消息)
表示与 Firebase 的通信发出错误信号。
第一项已删除时()
删除第一项 函数触发的事件。参数“值”是列表中第一个对象,现在已被删除。
以获得值时(标签,)
表示 获取值 请求已成功。
收到标签列表时()
当我们收到已知标签列表时触发事件。与 获取标签列表 函数一起使用。

方法

追加值(标签,待追加值)
以原子(Atomic)方式将值附加到列表末尾。如果两个设备同时使用此功能,两个设备都会被追加并且不会丢失数据。
清除标签(标签)
要求 Firebase 清除(删除或设置为“null”)给定标签。
获取标签列表()
获取此应用程序的标签列表。完成后,将使用已知标签列表触发 收到标签列表时 事件。
获取值(标签,无标签时返回值)
获取值 要求 Firebase 获取存储在给定标签下的值。

如果标签下没有存储值,它将把 “无标签时返回值” 传递给事件 以获得值时

删除第一项(标签)
返回列表的第一个元素并自动删除它。如果两个设备同时使用此功能,一个将获取第一个元素,另一个将获取第二个元素,如果没有可用元素,则会出现错误。当元素可用时,将触发删除第一项事件。
存储值(标签,待存储值)
要求 Firebase 将给定值存储在给定标签下。
取消身份验证()
从 Firebase 取消身份验证。

Firebase 会跟踪共享首选项中缓存中的凭据,只要这些凭据有效,它就会重复使用这些凭据。 鉴于我们获取的 Firebase令牌有效期较长,这实际上将是永久的。 Shared_prefs 在应用程序更新后仍然存在,并且根据设备上备份的配置方式,它可能在应用程序删除和重新安装后仍然存在。

通常这不是问题,但是如果我们更改使用的凭据,例如应用程序作者从一个 Firebase 帐户切换到另一个帐户,或者使他们的 firebase.secret 无效,则此缓存的凭据无效,但将继续使用,这将导致错误。

此函数允许我们取消身份验证,从而丢弃缓存的凭据。下次需要身份验证时,我们将使用当前的 Firebase令牌 并获取新的凭据。

ImageBot(OpenAI 绘图机器人)

ImageBot 是一个不可见组件,它使用 DALL-E 2 创建和编辑图像。你必须通过在块中设置其 ApiKey 属性,为此组件提供您自己的 OpenAI API 密钥。

注:此组件对AI伴侣要求最低版本为v2.67 (旧版本请扫码升级:帮助 -> AI伴侣信息),编译为apk则不受限制安装后可正常运行。

属性

ApiKey
指定用于向 ImageBot 进行身份验证的 ApiKey。
反转遮罩
指定用于编辑的蒙版是否应反转其 Alpha 通道。
图像大小
指定生成图像的大小。 可以是 256、512 或 1024 之一。
访问令牌
要使用的 MIT 访问令牌,默认会自动填写此内容值,不需要更改它。

默认情况下,令牌是无法访问MIT代理服务器的,如需有效令牌请参照《App Inventor 2 使用MIT代理的组件访问令牌的获取方法》

事件

出现错误(responseCode,responseText)
该事件将在处理过程中发生错误时运行,例如:忘记提供 API 密钥或服务器过载等。
图像创建完成(fileName)
当 ImageBot 成功创建图像时,将运行此事件。
图像编辑完成(fileName)
当 ImageBot 成功编辑图像时,将运行此事件。

方法

创建图像(description)
使用给定的描述创建图像。
编辑图像(source,description)
使用给定的描述编辑源图像。图像的可编辑区域应具有透明的Alpha值,源可以是 Canvas 组件、Image 组件或字符串代表文件的路径。
使用遮罩编辑图像(imageSource,遮罩源,提示)
使用给定的描述编辑 遮罩源。图像的可编辑区域应该是由 遮罩源 指示。源可以是画布、图像或字符串代表文件的路径。