개발툴/Unity

Unity에서 ChatGPT 사용하기

가든_ 2023. 10. 24. 00:59

설정하기

1. https://github.com/srcnalt/OpenAI-Unity에서 https 링크 복사 후 Unity 상단 메뉴 -> Window -> PackageManager -> +버튼 -> Add package from git url에 붙여 넣기

2. 사용자 -> 원하는 사용자 폴더 -> .openai 이름의 폴더 만들기 -> auth.json 만들기

3. auth.json을 열어서 아래처럼 붙여넣기 

{
    "api_key": " ",
    "organization": " "
}
  • 유니티 상에서도 할 수 있지만, 그대로 노출이 되기 때문에 보안에 취약하다.
  • private OpenAIApi openAI = new OpenAIApi(apikey,organization); 이런식으로 가능

4. https://openai.com/product 로그인 후 https://platform.openai.com/account/api-keys 에서 Create new secret key 누르고 나온 키를 api_key에 적기

  • api_key는 한번만 보여주기 때문에 따로 잘 저장하기!

5. organization은 https://platform.openai.com/account/org-settings 의 Organization ID 적기


사용하기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OpenAI;

public class ChatGPTManager : MonoBehaviour
{
    private OpenAIApi openAI = new OpenAIApi();
    private List<ChatMessage> messages = new List<ChatMessage>();

    public async void AskChatGPT(string newText)
    {
        ChatMessage newMessage = new ChatMessage();
        newMessage.Content = newText; // 보내는 메세지
        newMessage.Role = "user"; // 보내는 사람

        messages.Add(newMessage);

        CreateChatCompletionRequest request = new CreateChatCompletionRequest();
        request.Messages = messages; // 보내는 메세지
        request.Model = "gpt-3.5-turbo"; // 사용하는 요금제

        var response = await openAI.CreateChatCompletion(request);

        if(response.Choices != null && response.Choices.Count > 0)
        {
            var chatResponse = response.Choices[0].Message;
            messages.Add(chatResponse);

            Debug.Log(chatResponse.Content);
        }
    }
}