유니티에서 OpenAI GPT 맞춤형 질의응답 구현(Responses API, 벡터스토어)

반응형

유니티에서 OpenAI GPT 맞춤형 질의응답 구현(Responses API, 벡터스토어)

벡터스토어(Vector Store)와 File Search Tool을 활용한 RAG 기반 Q&A
유니티에서 OpenAI GPT를 활용한 질의응답 서비스를 구현할때 Responses API와 벡터 스토어(Vector Store) 및 file search 도구를 활용하면 외부 인프라 구축 없이 빠르게 RAG(검색 증강 생성) 시스템을 구현할 수 있습니다.

개발자는 파일만 업로드하면 되며 텍스트 추출, 청크 분할, 임베딩 벡터 변환 및 저장은 OpenAI 서버가 백엔드에서 자동으로 처리합니다.

 

예제에서는 OpenAI의 공식 API( RESTful API)를 유니티 환경에서 편리하게 호출할 수 있도록 래핑된(Wrapper) 비공식 SDK(RageAgainstThePixel, com.openai.unity)를 활용하였습니다.
유니티(Unity)에서 AI 음성 질의응답 (Open AI API) 서비스 구현

 

벡터 스토어에 검색 대상이 될 문서 파일(PDF, TXT 등) 업로드 및 임베딩
1)Open AI 플랫폼의 대시보드(dashboard) 페이지로 이동합니다.
https://platform.openai.com/home

 

OpenAI Platform

 

platform.openai.com

 

2)현재 프로젝트에서 Storage 의 벡터 스토어(Vector Stores) 로 이동하여 새로운 벡터스토어를 생성합니다(create)

 

3)벡터스토어 이름을 입력하고 저장합니다.

 

4)하단에서 add files를 클릭합니다.

 

5)준비한 문서 텍스트 파일(PDF, TXT 등)을 업로드합니다.

 

6)예제에서는 맞춤형 질의응답을 위한 질문과 답변 문장 텍스트를 준비하였습니다.

 

7) attach를 클릭하면 해당 문서를 벡터스토어에 연결합니다(attach)

 

8)벡터스토어의 ID를 복사합니다.

 

 

유니티 Responses API에서 벡터 스토어 연결

9)유니티 Responses 샘플 예제에서 툴리스트에  file search 도구를 추가하고 생성한 벡터스토어 ID를 파라미터로 전달합니다.

File Search Tool 는  Vector Store를 활용하는 검색 인터페이스를 의미합니다.

ResponsesBehaviour 스크립트 Awake 함수에서 assistantTools.Add(new FileSearchTool("id"));

 

10)Responses 요청을 생성할때 FileSearchTool을 포함한 전체 툴리스트(assistantTools)를 전달합니다.
var request = new CreateResponseRequest(textInput: userInput, conversationId: conversation, tools: assistantTools, model: Model.GPT5_Nano);

 

11)모델이 질문을 받으면 벡터 스토어에서 연관 문서를 검색한 결과를 반영하여 답변합니다.

 

 

Assistant API 관련

기존의 Assistant API는 지원 중단(deprecation)
https://developers.openai.com/api/docs/deprecations

기존 Assistant API 에서는 FileSearchTool을 다음과 같이 추가
var fileSearchTool = new FileSearchTool("vs_your_vector_store_id");
tools: new List<Tool>
        {
                   Tool.GetOrCreateTool(openAI.ImagesEndPoint, nameof(ImagesEndpoint.GenerateImageAsync)),
            fileSearchTool 
        },

 


Open AI API
https://developers.openai.com/api/reference/overview

벡터스토어
https://platform.openai.com/storage/vector_stores

기타
https://discussions.unity.com/t/how-to-reduce-latency-with-gpt-unity-requests/949183/2


https://community.openai.com/t/how-to-reduce-latency-with-gpt-unity-requests/803087/2

반응형

댓글

Designed by JB FACTORY