一個非正式的統一軟件包,可讓您直接在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