Un package d'unité non officiel qui vous permet d'utiliser l'API OpenAI directement dans le moteur Unity Game.
Vous pouvez trouver des tutoriels vidéo dédiés pour utiliser ce package dans cette liste de lecture YouTube.
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50id08fcjo

Pour importer le package, suivez ces étapes:
Window > Package Manager+ button and select Add package from git URLAddPour utiliser l'API OpenAI, vous devez avoir un compte OpenAI. Suivez ces étapes pour créer un compte et générer une clé API:
Pour faire des demandes à l'API OpenAI, vous devez utiliser votre clé API et le nom de votre organisation (le cas échéant). Pour éviter d'exposer votre clé API dans votre projet Unity, vous pouvez l'enregistrer dans le stockage local de votre appareil.
Pour ce faire, suivez ces étapes:
C:UserUserName for Windows or ~ for Linux or Mac)auth.json in the .openai folder{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
} You can also pass your API key into OpenAIApi ctor when creating an instance of it but again, this is not recommended!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;IMPORTANT: Your API key is a secret. Ne le partagez pas avec d'autres et ne l'exposez pas dans un code côté client (par exemple, navigateurs, applications). Si vous utilisez OpenAI pour la production, assurez-vous de l'exécuter du côté du serveur, où votre clé API peut être en toute sécurité à partir d'une variable d'environnement ou d'un service de gestion de clé.
You can use the OpenAIApi class to make async requests to the OpenAI API.
All methods are asynchronous and can be accessed directly from an instance of the OpenAIApi class.
Voici un exemple de la façon de faire une demande:
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 ) ;
} To make a stream request, you can use the CreateCompletionAsync and CreateChatCompletionAsync methods. These methods are going to set Stream property of the request to true and return responses through an onResponse callback. In this case text responses are stored in Delta property of the Choices field in the Chat Completion.
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 ( )
) ;Ce package comprend deux exemples de scènes que vous pouvez importer via le gestionnaire de packages:
Can't See the Image Result in WebGL Builds: Due to CORS policy of OpenAI image storage in local WebGL builds you will get the generated image's URL however it will not be downloaded using UnityWebRequest until you run it out of localhost, on a server.
Streamed Response is just blank in WebGL Build: Unity 2020 WebGL has a bug where stream responses return empty. Vous pouvez mettre à jour et essayer avec une version plus récente d'Unity.
Le tableau suivant montre les versions d'unité prise en charge pour les versions WebGL:
| Version d'unité | Fenêtre | Linux | Macos | Webgl | Androïde | Ios | Oculus 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2021.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2020.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2019.4.x | ✅ |
| ✅ = pris en charge | ⛔ = non pris en charge |
Veuillez signaler tous les problèmes que vous rencontrez avec les builds.
Pour plus d'informations sur la façon d'utiliser les différents paramètres de demande, veuillez vous référer à la documentation OpenAI: https://platform.openai.com/docs/api-reference