一个非正式的统一软件包,可让您直接在Unity游戏引擎中使用OpenAI API。
您可以在此YouTube播放列表中找到有关如何在此软件包中使用此软件包的专用视频教程。
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50ID08FCJO

要导入包裹,请按照以下步骤:
Window > Package Manager+按钮,然后Add package from git URLAdd要使用OpenAI API,您需要拥有一个OpenAI帐户。请按照以下步骤创建一个帐户并生成API密钥:
要向OpenAI API提出请求,您需要使用API密钥和组织名称(如果适用)。为了避免在Unity项目中暴露您的API密钥,您可以将其保存在设备的本地存储中。
为此,请执行以下步骤:
C:UserUserName for Windows或~ for Linux或Mac).openai文件夹中创建一个名为auth.json的文件{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
}创建实例时,您也可以将API键传递到OpenAIApi CTOR中,但是再次不建议这样做!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;重要的是:您的API密钥是一个秘密。请勿与他人共享,也不要在任何客户端代码(例如浏览器,应用程序)中公开它。如果您使用OpenAI进行生产,请确保在服务器端运行它,其中可以从环境变量或密钥管理服务中牢固地加载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方法。这些方法将通过OnResponse回调将请求的Stream属性设置为true和返回响应。在这种情况下,文本响应存储在聊天完成中Choices字段的Delta属性中。
var req = new CreateChatCompletionRequest {
Model = " gpt-3.5-turbo " ,
Messages = new List < ChatMessage >
{
new ChatMessage ( )
{
Role = " user " ,
Content = " Write a 100 word long short story in La Fontaine style. "
}
} ,
Temperature = 0.7f ,
} ;
openai . CreateChatCompletionAsync ( req ,
( responses ) => {
var result = string . Join ( " " , responses . Select ( response => response . Choices [ 0 ] . Delta . Content ) ) ;
Debug . Log ( result ) ;
} ,
( ) => {
Debug . Log ( " completed " ) ;
} ,
new CancellationTokenSource ( )
) ;该软件包包括两个示例场景,您可以通过软件包管理器导入:
看不到WebGL构建中的图像结果:由于Local WebGL构建中OpenAI映像存储的CORS策略,您将获得生成的映像的URL,但是直到您将其从服务器上的Localhost运行,它将使用Unitywebrequest下载。
流中的响应只是WebGL构建中的空白: Unity 2020 WebGL具有一个错误,其中流响应返回空。您可以更新并尝试使用较新版本的Unity。
下表显示了WebGL构建的支持的统一版本:
| Unity版本 | 视窗 | Linux | macos | WebGl | 安卓 | ios | Oculus 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2021.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2020.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2019.4.x | ✅ |
| ✅=支持 | ⛔=不支持 |
请报告您遇到的任何构建问题。
有关如何使用各种请求参数的更多信息,请参阅OpenAI文档:https://platform.openai.com/docs/api-reference