OpenAI 组件 | 加速 OpenAI API 在项目中的集成

在当今这个快节奏的技术世界中,将 OpenAI 的功能集成到项目中已经成为一种趋势。OpenAI 提供了一系列强大的自然语言处理 API。然而,集成这些 API 的过程复杂且耗时,通常需要大量精力和专业知识。为了简化集成过程,我们开发了 OpenAI 组件,该组件功能强大,可以简化 OpenAI API 在项目中的集成。

本文主要介绍开发者如何借助 OpenAI 组件轻松地将 OpenAI 的功能添加至项目中,而无需关注实现细节。
本文主要由三个部分组成。第一部分为“ESP 组件注册器 (ESP Component Registry)”,介绍如何将合适的组件添加至 ESP-IDF 项目。第二部分重点介绍“OpenAI 组件”的详细信息。最后一部分介绍“ESP-BOX ChatGPT” 例程的更新。
ESP 组件注册器
ESP 组件注册器是一个开源组件平台,拥有大量的开源组件,可以为您的物联网项目提供强大的推动力。您只需进行快速搜索和点击,就可以轻松获得所需组件,并快速集成至 IDF 项目中。这种高效的集成方式可以加快项目开发周期,让您专注于开发更具突破性的物联网解决方案,无需操心繁杂的设置步骤。

步骤如下所示:
在 ESP 组件注册器找到您需要的组件。
阅读文档和更新日志,确定所需的组件版本 。
在终端中运行以下命令,将组件集成到您现有的项目中(注意:运行命令前,请修改组件名称和版本)。
OpenAI 组件
为了向开发者提供尽可能多的 OpenAI API 功能,我们开发了简单但强大的 ESP-IDF 组件。该组件支持多种 OpenAI 功能(文件操作和微调 (fune-tuning) 功能除外),并且 API 文档详尽,可帮助开发者快速上手。
使用示例
第一步是实例化对象,并提供安全的“API 密钥”作为参数。OpenAPI 密钥可以通过 OPENAI 网站获得。要获得 OpenAI 服务,必须先创建一个帐户,购买令牌,获取唯一的 API 密钥。
创建 OpenAI 对象后,代码调用 chatCompletion API 来设置设置必要的参数,发送一条消息(表明这不是最后一条消息),并获取生成的响应,供下一步使用或处理。
同样,创建 OpenAI 对象后,代码调用 audioTranscriptionCreate API 来设置必要的参数,如音频文件和语言,然后开始转录音频,最后获取转录结果,供下一步使用或处理。
如需探索更多 API 及其功能,请参阅文档。
ESP-BOX ChatGPT 例程
相比于旧版本,更新版的 ESP-BOX ChatGPT 示例集成了 OpenAI 组件。有关具体的开发细节,请阅读博客。请注意,在新版本中,我们使用 esp_tinyuf2 组件将 Wi-Fi 和 OpenAI 密钥存储在非易失性存储器(NVS)中,这种方法更加安全。
在初始启动阶段,执行第一个二进制文件后,用户需输入安全凭证,如 Wi-Fi 和 OpenAI 密钥。一旦输入凭证,系统即会重新启动,然后 ChatGPT 二进制文件就会接管控制权。该文件借助在初始启动阶段中提供的安全凭证来实现 ChatGPT 的功能。大致流程请见下图。

此外,用户还可以使用 ESP-Launchpad 尝试新版的 ESP-BOX ChatGPT 例程,该方法不需要在本地编译项目,可以更加方便地体验例程中新增的功能。
相关链接
OpenAI
https://platform.openai.com/docs/api-reference
OpenAI 组件
https://github.com/espressif/esp-iot-solution/tree/master/components
ESP 组件注册器
https://components.espressif.com
OpenAI API
https://platform.openai.com/docs/api-reference
组件
https://components.espressif.com/components/espressif/openai
文档
https://docs.espressif.com/projects/espressif-esp-iot-solution/zh_CN/latest/ai/openai.html
OPENAI
https://openai.com
旧版本
https://github.com/espressif/esp-box/tree/0924e7bc2cad50d3d7ca4b0f91eef7da6934d5e6/examples/chatgpt_demo
更新版
https://github.com/espressif/esp-box
esp_tinyuf2
https://components.espressif.com/components/espressif/esp_tinyuf2?from_wecom=1
ESP-Launchpad
https://espressif.github.io/esp-launchpad/?flashConfigURL=https%3A%2F%2Fraw.githubusercontent.com%2Fespressif%2Fesp-box%2Fmaster%2Flaunch.toml