Un paquete de unidad no oficial que le permite usar la API de OpenAI directamente en el motor Unity Game.
Puede encontrar tutoriales de video dedicados sobre cómo usar este paquete en esta lista de reproducción de YouTube.
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzzzeq50id08fcjo

Para importar el paquete, siga estos pasos:
Window > Package Manager+ y seleccione Add package from git URLAddPara usar la API de OpenAI, debe tener una cuenta de OpenAI. Siga estos pasos para crear una cuenta y generar una clave API:
Para hacer solicitudes a la API de OpenAI, debe utilizar su clave API y el nombre de la organización (si corresponde). Para evitar exponer su clave API en su proyecto Unity, puede guardarla en el almacenamiento local de su dispositivo.
Para hacer esto, siga estos pasos:
C:UserUserName para Windows o ~ para Linux o Mac)auth.json en la carpeta .openai{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
} También puede pasar su llave API a OpenAIApi CTOR al crear una instancia de ella, pero nuevamente, ¡no se recomienda esto!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;IMPORTANTE: Su clave API es un secreto. No lo comparta con otros ni lo exponga en ningún código del lado del cliente (por ejemplo, navegadores, aplicaciones). Si está utilizando OpenAI para la producción, asegúrese de ejecutarlo en el lado del servidor, donde su clave API se puede cargar de forma segura desde una variable de entorno o un servicio de administración de claves.
Puede usar la clase OpenAIApi para realizar solicitudes de async en la API de OpenAI.
Todos los métodos son asíncronos y se puede acceder directamente desde una instancia de la clase OpenAIApi .
Aquí hay un ejemplo de cómo hacer una solicitud:
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 ) ;
} Para hacer una solicitud de flujo, puede usar los métodos CreateCompletionAsync y CreateChatCompletionAsync . Estos métodos van a establecer la propiedad Stream de la solicitud a true y devolver las respuestas a través de una devolución de llamada de ONRSponse. En este caso, las respuestas de texto se almacenan en la propiedad Delta del campo Choices en la finalización del chat.
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 ( )
) ;Este paquete incluye dos escenas de muestra que puede importar a través del Administrador de paquetes:
No puedo ver el resultado de la imagen en las compilaciones de WebGL: debido a la política CORS del almacenamiento de imágenes Operai en las construcciones de WebGL locales, obtendrá la URL de la imagen generada, sin embargo, no se descargará utilizando UnityWebRequest hasta que lo ejecute de Localhost, en un servidor.
La respuesta transmitida está en blanco en WebGL Build: Unity 2020 WebGL tiene un error donde las respuestas de transmisión regresan vacías. Puede actualizar e intentar con una versión más nueva de Unity.
La siguiente tabla muestra las versiones de Unity compatibles para las compilaciones de WebGL:
| Versión de la unidad | Windows | Linux | Macosa | Webgl | Androide | IOS | Oculus 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2021.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2020.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2019.4.x | ✅ |
| ✅ = compatible | ⛔ = no compatible |
Informe cualquier problema que encuentre con compilaciones.
Para obtener más información sobre cómo usar los diversos parámetros de solicitud, consulte la documentación de OpenAI: https://platform.openai.com/docs/api- reference