UnityゲームエンジンでOpenai APIを直接使用できる非公式のUnityパッケージ。
このYouTubeプレイリストでこのパッケージを使用する方法に関する専用のビデオチュートリアルを見つけることができます。
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50id08fcjo

パッケージをインポートするには、次の手順に従ってください。
Window > Package Managerに移動します+ボタンをクリックして、 Add package from git URLを選択しますAddをクリックします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メソッドを使用できます。これらのメソッドは、リクエストのStreamプロパティをtrueに設定し、Ressponseコールバックを介して応答を返すようになります。この場合、テキスト応答は、チャット完了時に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 ( )
) ;このパッケージには、パッケージマネージャーを介してインポートできる2つのサンプルシーンが含まれています。
WebGLのビルドでの画像の結果が表示されません。ローカルWebGLビルドでOpenAI画像ストレージのCORSポリシーにより、生成された画像のURLが取得されますが、サーバー上のLocalHostから実行するまでUnityWebRequestを使用してダウンロードされません。
ストリーミングされた応答はWebGLビルドでは空白です: Unity 2020 WebGLには、ストリーム応答が空に戻るバグがあります。 Unityの新しいバージョンを更新して試してみることができます。
次の表は、WebGLビルドのサポートされているUnityバージョンを示しています。
| Unityバージョン | Windows | 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