유니티(Unity)에서 AI 음성 질의응답 (Open AI API) 서비스 구현

반응형

유니티(Unity)에서 AI 음성 질의응답 (Open AI API) 서비스 구현

유니티에서 OpenAI API를 활용하여 사용자 질문(음성)에 대한 응답 서비스(STT, LLM, TTS) 간단 구현방법
예제에서는 OpenAI의 공식 API( RESTful API)를 유니티 환경에서 편리하게 호출할 수 있도록 래핑된(Wrapper) 비공식 SDK를 활용합니다(서비스 구현에 Open AI 계정 및 API 키 필요)

RageAgainstThePixel, A Non-Official OpenAI Rest Client for Unity ,UPM
https://github.com/RageAgainstThePixel/com.openai.unity

 

GitHub - RageAgainstThePixel/com.openai.unity: A Non-Official OpenAI Rest Client for Unity (UPM)

A Non-Official OpenAI Rest Client for Unity (UPM). Contribute to RageAgainstThePixel/com.openai.unity development by creating an account on GitHub.

github.com

또는 OpenUPM에서 배포
https://openupm.com/packages/com.openai.unity/

 

해당 SDK는 OpenAI 의 RESTful API를 사용할 수 있는 간단한 C# .NET 클라이언트 라이브러리인 OpenAI-DotNet에 기반합니다.
https://rageagainstthepixel.github.io/OpenAI-DotNet/README.html
https://github.com/OkGoDoIt/OpenAI-API-dotnet

 

 

유니티 프로젝트 세팅 순서

1)프로젝트 설정(Package Manager)에서 OpenUPM 패키지 레지스트리를 추가합니다.

Name - OpenUPM
URL - https://package.openupm.com
Scope(s) -

com.openai

com.utilities

 

2)패키지 관리자(PackageManager)의 My Registries에서 OpenUPM 레지스트리를 확인할수있습니다. OpenAI 패키지를 설치합니다(서명되지않은 패키지로 경고 메시지를 표시함)

 

3)프로젝트의 패키지(Packages)에서 정상적으로 설치된것을 확인할수있습니다.

 

4)샘플 에셋을 다운로드하려면 Open AI 패키지의 Samples에서 에셋을 가져오기(import) 및 추가합니다. 

 

5)프로젝트에서 샘플 씬 및 에셋을 확인할수있습니다.

 

 

인증(Authentication)을 위한 API 키를 제공하는 4가지 방법

API를 초기화할때 인증을위해 OpenAIAuthentication 를 사용하며 API 키(Key)를 제공하는 4가지 방법이있습니다
1-OpenAIClient를 생성할때 명시적으로 전달(생성자를 통해 키를 직접 전달)
2-키를 OpenAIConfiguration 구성 에셋에 지정(ScriptableObject)
(이 파일은 소스 코드 관리 시스템에 커밋할 경우 다른 사용자가 API 키를 볼 수 있으므로 주의해야 함)
3-키를 구성파일(.openai 또는 .json)에서 불러오기
기본적으로 현재 디렉터리에 존재하는 구성파일에서 API 키 로드를 시도
Json 형식
{
  "apiKey": "sk-aaaabbbbbccccddddd",
  "organizationId": "org-yourOrganizationId",
  "projectId": "proj_yourProjectId"
}
OpenAIAuthentication 함수를 호출하여 지정된 경로에서 직접 로드
var api = new OpenAIClient(new OpenAIAuthentication().LoadFromPath("path/to/your/file.json"));
4-시스템환경변수 사용

 

OpenAIConfiguration 구성 에셋에 API Key를 지정한 방법

6)프로젝트에서 에셋의 Resources 폴더에 OpenAIConfiguration 에셋을 생성합니다.

 

7)OpenAIConfiguration 에셋에 Api Key를 입력합니다.

Open AI 플랫폼(platform)에서 API key 발급하고 크레딧 충전하기

https://learnandcreate.tistory.com/3128

 

8)샘플 씬에서 대화형 OpenAIClient 구현 스크립트에 OpenAIConfiguration에셋을 참조합니다.

 

9)샘플 씬에는 기본적인 대화를 위한 입력 및 출력 UI가 세팅되어있습니다.

 

10)게임을 실행하고 사용자 텍스트 및 질문을 입력하면 응답을 생성 및 출력합니다.

 

 

기타

한글 지원 텍스트 
글꼴 ttf 파일 준비 및 유니티가져오기,  textmeshpro 에셋 생성
캔버스 input field에 에셋 할당
private TextMeshProUGUI AddNewTextMessageContent(Role role)
텍스트 관련 함수 코드수정
textMesh.font = fonts;

반응형

댓글

Designed by JB FACTORY