OpenAI-Unity 项目介绍
OpenAI-Unity 是一个非官方的 Unity 包,旨在使开发者能够在 Unity 游戏引擎中直接使用 OpenAI 的 API。这个工具包为 Unity 开发人员提供了将 OpenAI 的强大功能集成到他们的游戏和应用程序中的机会。
使用方法
视频教程
为了帮助用户更快上手,提供了专门的 YouTube 视频教程。用户可以通过观看这些教程,详细了解如何在项目中使用 OpenAI-Unity 包。
导入包
要在 Unity 中导入 OpenAI-Unity 包,可以按照以下步骤操作:
- 打开 Unity 2019 或更高版本。
- 导航到
窗口 > 包管理器
。 - 单击右上角的
+
按钮,选择从 Git URL 添加包
。 - 粘贴仓库 URL
https://github.com/srcnalt/OpenAI-Unity.git
,然后单击添加
。
设置 OpenAI 账号
在使用 OpenAI API 前,用户需要拥有一个 OpenAI 账号。可通过以下步骤创建账号并生成 API 密钥:
- 访问
https://openai.com/api
并注册账号。 - 创建账号后,进入
https://beta.openai.com/account/api-keys
。 - 创建一个新的密钥,并进行保存。
保存凭据
为了请求 OpenAI API,用户需要使用 API 密钥和(如适用)组织名称。为避免在 Unity 项目中暴露 API 密钥,推荐将其保存在设备的本地存储中。具体步骤如下:
- 在用户的主目录下创建一个名为
.openai
的文件夹。 - 在
.openai
文件夹中创建一个名为auth.json
的文件。 - 在
auth.json
文件中添加api_key
字段和组织字段(如果适用),然后保存。
文件示例如下:
{
"api_key": "sk-...W6yi",
"organization": "org-...L7W"
}
API 密钥是保密信息,请勿在客户端代码中分享或暴露。
发起请求
用户可以利用 OpenAIApi
类来向 OpenAI API 发起异步请求。所有的方法都是异步的,可以直接从 OpenAIApi
类的实例中访问。例如:
private async void SendRequest()
{
var req = new CreateChatCompletionRequest
{
Model = "gpt-3.5-turbo",
Messages = new List<ChatMessage>()
{
new ChatMessage()
{
Role = "user",
Content = "Hello!"
}
}
};
var res = await openai.CreateChatCompletion(req);
}
对于流请求,用户可以使用 CreateCompletionAsync
和 CreateChatCompletionAsync
方法。
示例项目
该包包含了两个示例场景,可以通过包管理器导入:
- ChatGPT 示例:一个简单的类 ChatGPT 聊天示例。
- DallE 示例:DALL.E 文本到图像生成示例。
已知问题
- WebGL 生成的图像无法显示:由于 OpenAI 图像存储的 CORS 策略,本地 WebGL 构建无法下载图像,需在服务器环境下运行。
- WebGL 构建中的流响应为空:Unity 2020 WebGL 存在一个 bug,导致流响应为空。用户可以尝试更新 Unity 版本。
支持的 Unity 版本
下表展示了支持 WebGL 构建的 Unity 版本:
Unity 版本 | Windows | Linux | MacOS | WebGL | Android | iOS | Oculus 2 |
---|---|---|---|---|---|---|---|
2022.3.x | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ✅ | ✅ |
2021.3.x | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ✅ | ⚠️ |
2020.3.x | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ✅ | ⚠️ |
2019.4.x | ✅ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ⚠️ |
- ✅ = 支持
- ⚠️ = 未测试
- ⛔ = 不支持
如在构建中遇到问题,请及时反馈。
进一步阅读
有关如何使用各种请求参数的详细信息,请参考 OpenAI 官方文档。