试验组件
目录:
ChatBot(OpenAI ChatGPT聊天机器人)
ChatBot 是一个不可见组件,用于与 AI 聊天的聊天机器人。此版本使用 MIT 运行的代理,该代理又使用 ChatGPT 生成大语言模型。
来自MIT官方的提醒:人们应该小心聊天机器人。他们经常产生虚假结果。根据我的经验,他们总体上是正确的,但细节可能是错误的。
注:此组件对AI伴侣要求最低版本为v2.67 (旧版本请扫码升级:帮助 -> AI伴侣信息),编译为apk则不受限制安装后可正常运行。
- demo程序下载: chatgpt.aia
属性
- 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 服务通信以存储并获取数据。 该组件可以在标签下存储值并检索与标签关联的值。 它还拥有一个监听器,可以在存储值改变时触发事件。
区别 | Firebase数据库 | 网络微数据库 |
---|---|---|
区别在于来自不同应用程序的变量是否会干扰 | 每个应用程序都有其单独的数据存储,因此其他应用程序的变量不会干扰 | 任何应用程序都可以更改值,前提是它使用相同的标签 |
属性
- 开发者桶
- 获取开发者桶(bucket)。
- Firebase令牌
- 获取Firebase访问令牌。
- Firebase URL地址
- 指定 Firebase 的 URL地址。当前默认值是MIT私有 Firebase URL地址,目前选择默认即可。
- 持久化
- 如果为
真
,则变量在离线且应用程序退出时将保留其值。下次应用程序在连接到网络时运行时,值将上传到 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则不受限制安装后可正常运行。
- demo程序下载: AI绘图.aia
属性
- 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,遮罩源,提示)
- 使用给定的描述编辑
遮罩源
。图像的可编辑区域应该是由遮罩源
指示。源可以是画布、图像或字符串代表文件的路径。