반응형
유니티 C# ChatGPT 연동하는 방법 간단 구현 코드 예시
먼저 OpenAI 웹사이트에서 API 키를 발급받아야 합니다. OpenAI API 키 발급 페이지에 접속하여 회원가입 후 API 키를 발급받습니다.
코드 작성
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using Newtonsoft.Json.Linq;
public class OpenAIChat : MonoBehaviour
{
// OpenAI API 키를 입력하세요
private string apiKey = "YOUR_OPENAI_API_KEY";
// OpenAI API URL 설정
private string apiUrl = "https://api.openai.com/v1/engines/davinci-codex/completions";
// 시작할 때 호출되는 함수
void Start()
{
// 예시로 사용할 프롬프트
string prompt = "Translate the following English text to French: 'Hello, how are you?'";
// 요청을 보내는 코루틴 시작
StartCoroutine(SendRequest(prompt));
}
// OpenAI API에 요청을 보내는 함수
IEnumerator SendRequest(string prompt)
{
// 새로운 웹 요청 생성
UnityWebRequest request = new UnityWebRequest(apiUrl, "POST");
// JSON 페이로드 생성
JObject payload = new JObject
{
{ "prompt", prompt },
{ "max_tokens", 60 }
};
// JSON 페이로드를 바이트 배열로 변환
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(payload.ToString());
// 요청 헤더 설정
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", "Bearer " + apiKey);
// 요청을 보내고 응답을 기다림
yield return request.SendWebRequest();
// 요청 결과 확인
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{
Debug.LogError("Error: " + request.error);
}
else
{
// JSON 응답 파싱
JObject jsonResponse = JObject.Parse(request.downloadHandler.text);
string responseText = jsonResponse["choices"][0]["text"].ToString();
Debug.Log("Response: " + responseText);
}
}
}
반응형