Um pacote de unidade não oficial que permite usar a API OpenAI diretamente no mecanismo de jogo da Unity.
Você pode encontrar tutoriais em vídeo dedicados sobre como usar este pacote nesta lista de reprodução do YouTube.
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50id08fcjo

Para importar o pacote, siga estas etapas:
Window > Package Manager+ e selecione Add package from git URLAddPara usar a API OpenAI, você precisa ter uma conta OpenAI. Siga estas etapas para criar uma conta e gerar uma chave da API:
Para fazer solicitações à API OpenAI, você precisa usar sua chave da API e nome da organização (se aplicável). Para evitar expor sua chave da API em seu projeto de unidade, você pode salvá -lo no armazenamento local do seu dispositivo.
Para fazer isso, siga estas etapas:
C:UserUserName para Windows ou ~ para Linux ou Mac)auth.json na pasta .openai{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
} Você também pode passar sua chave da API para OpenAIApi Ctor ao criar uma instância, mas, novamente, isso não é recomendado!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;IMPORTANTE: Sua chave da API é um segredo. Não o compartilhe com outras pessoas ou exponha-o em qualquer código do lado do cliente (por exemplo, navegadores, aplicativos). Se você estiver usando o OpenAI para produção, execute -o no lado do servidor, onde sua tecla API pode ser carregada com segurança de uma variável de ambiente ou serviço de gerenciamento de chaves.
Você pode usar a classe OpenAIApi para fazer solicitações assíncronas à API do OpenAI.
Todos os métodos são assíncronos e podem ser acessados diretamente a partir de uma instância da classe OpenAIApi .
Aqui está um exemplo de como fazer uma solicitação:
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 fazer uma solicitação de fluxo, você pode usar os métodos CreateCompletionAsync e CreateChatCompletionAsync . Esses métodos vão definir a propriedade Stream da solicitação para true e retornar respostas por meio de um retorno de chamada de resposta. Nesse caso, as respostas de texto são armazenadas na propriedade Delta do campo Choices na conclusão do bate -papo.
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 pacote inclui duas cenas de amostra que você pode importar através do gerenciador de pacotes:
Não consigo ver o resultado da imagem em compilações WebGL: Devido à política do CORS do armazenamento de imagem OpenAI nas compilações locais do WebGL, você receberá o URL da imagem gerada, mas não será baixado usando o UnityWebRequest até que você o corra do host local, em um servidor.
A resposta transmitida está apenas em branco no WebGL Build: Unity 2020 WebGL tem um bug em que as respostas do fluxo retornam vazias. Você pode atualizar e tentar com uma versão mais recente do Unity.
A tabela a seguir mostra as versões da unidade suportadas para compilações WebGL:
| Versão da unidade | Windows | Linux | Macos | Webgl | Android | IOS | Oculus 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2021.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2020.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2019.4.x | ✅ |
| ✅ = suportado | ⛔ = não suportado |
Por favor, relate todos os problemas que você encontrar nas compilações.
Para obter mais informações sobre como usar os vários parâmetros de solicitação, consulte a Documentação do Openai: https://platform.openai.com/docs/api-reference