Unity에서 ChatGPT 사용하기

2023. 10. 24. 00:59·개발툴/Unity

설정하기

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);
        }
    }
}

 

'개발툴 > Unity' 카테고리의 다른 글

Reflex 실습 - UniRx와 Reflex를 활용한 간단한 카운터 만들기  (0) 2023.12.18
Reflex (Github Readme 번역)  (1) 2023.12.18
Unity Tilemap을 이용해서 원하는 크기의 격자맵 그리기  (0) 2023.09.30
IL2CPP  (0) 2023.09.30
Null 레퍼런스 예외 해결방법  (0) 2023.07.28
'개발툴/Unity' 카테고리의 다른 글
  • Reflex 실습 - UniRx와 Reflex를 활용한 간단한 카운터 만들기
  • Reflex (Github Readme 번역)
  • Unity Tilemap을 이용해서 원하는 크기의 격자맵 그리기
  • IL2CPP
가든_
가든_
  • 가든_
    Code Garden
    가든_
  • 전체
    오늘
    어제
    • 글 목록 (60)
      • 프로그래밍 언어 (11)
        • JAVA (0)
        • C++ (2)
        • C# (9)
      • 개발툴 (24)
        • Visual Studio (0)
        • Visual Studio Code (1)
        • Eclipse (1)
        • Unity (19)
        • Unreal (0)
        • Spring (1)
        • SpringBoot (0)
        • Vue (2)
      • 디자인 패턴 (6)
      • 백엔드 (4)
        • MySQL (1)
        • Servlet (3)
      • 프론트엔드 (4)
        • HTML (3)
        • CSS (0)
        • Javascript (1)
      • 알고리즘 (10)
        • 공식 (3)
        • 백준 (6)
        • SW Expert Academy (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구조적 UML 다이어그램
    chatGPT
    ()=>
    Proxy 패턴
    다이어그램 그리기
    UniRX
    행동 UML 다이어그램
    클래스 어댑터
    스택
    c#
    DI
    Unity
    상태공간트리
    Java
    FixedUpdate
    Abstract Factory 패턴
    런타임 상수
    오브젝터 어댑터
    RDBM
    MVC
    컴파일 상수
    Reflex
    Adapter 패턴
    swea2112
    구조패턴
    SetTile
    Factory 패턴
    HTML
    Adaptee
    12738
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
가든_
Unity에서 ChatGPT 사용하기
상단으로

티스토리툴바