Unity 게임 엔진에서 OpenAI API를 직접 사용할 수있는 비공식 Unity 패키지.
이 YouTube 재생 목록 에서이 패키지를 사용하는 방법에 대한 전용 비디오 자습서를 찾을 수 있습니다.
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50id08fcjo

패키지를 가져 오려면 다음 단계를 따르십시오.
Window > Package Manager 로 이동하십시오+ 버튼을 클릭하고 Add package from git URL 선택하십시오.Add 클릭하십시오OpenAI API를 사용하려면 OpenAI 계정이 있어야합니다. 다음 단계에 따라 계정을 만들고 API 키를 생성하십시오.
OpenAI API에 요청하려면 API 키 및 조직 이름 (해당되는 경우)을 사용해야합니다. Unity 프로젝트에서 API 키를 노출하지 않도록 장치의 로컬 스토리지에 저장할 수 있습니다.
이렇게하려면 다음을 수행하십시오.
C:UserUserName windows 용 또는 linux 또는 mac의 경우 ~ ).openai 폴더에서 auth.json 이라는 파일을 만듭니다{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
} 인스턴스를 생성 할 때 API 키를 OpenAIApi CTor로 전달할 수도 있지만 다시 권장하지 않습니다!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;중요 : API 키는 비밀입니다. 다른 사람과 공유하거나 클라이언트 측 코드 (예 : 브라우저, 앱)에 노출하지 마십시오. 생산에 OpenAI를 사용하는 경우 환경 변수 또는 키 관리 서비스에서 API 키를 안전하게로드 할 수있는 서버 측에서 실행하십시오.
OpenAIApi 클래스를 사용하여 OpenAI API에 비동기 요청을 할 수 있습니다.
모든 방법은 비동기식이며 OpenAIApi 클래스의 인스턴스에서 직접 액세스 할 수 있습니다.
다음은 요청을하는 방법의 예입니다.
private async void SendRequest ( )
{
var req = new CreateChatCompletionRequest
{
Model = " gpt-3.5-turbo " ,
Messages = new List < ChatMessage > ( )
{
new ChatMessage ( )
{
Role = " user " ,
Content = " Hello! "
}
}
} ;
var res = await openai . CreateChatCompletion ( req ) ;
} 스트림 요청을하려면 CreateCompletionAsync 및 CreateChatCompletionAsync 메소드를 사용할 수 있습니다. 이러한 방법은 요청의 Stream 속성을 true 로 설정하고 OnResponse 콜백을 통해 응답을 반환합니다. 이 경우 텍스트 응답은 채팅 완료시 Choices 필드의 Delta 속성에 저장됩니다.
var req = new CreateChatCompletionRequest {
Model = " gpt-3.5-turbo " ,
Messages = new List < ChatMessage >
{
new ChatMessage ( )
{
Role = " user " ,
Content = " Write a 100 word long short story in La Fontaine style. "
}
} ,
Temperature = 0.7f ,
} ;
openai . CreateChatCompletionAsync ( req ,
( responses ) => {
var result = string . Join ( " " , responses . Select ( response => response . Choices [ 0 ] . Delta . Content ) ) ;
Debug . Log ( result ) ;
} ,
( ) => {
Debug . Log ( " completed " ) ;
} ,
new CancellationTokenSource ( )
) ;이 패키지에는 패키지 관리자를 통해 가져올 수있는 두 가지 샘플 장면이 포함되어 있습니다.
WebGL 빌드에서 이미지 결과를 볼 수 없습니다. 로컬 WebGL 빌드에서 OpenAI 이미지 저장의 CORS 정책으로 인해 생성 된 이미지의 URL을 얻을 수 있지만 서버에서 LocalHost에서 실행할 때까지 UnityWebRequest를 사용하여 다운로드하지 않습니다.
WebGL 빌드에서 스트리밍 된 응답이 비어 있습니다. Unity 2020 WebGL에는 스트림 응답이 비어있는 버그가 있습니다. 최신 버전의 Unity로 업데이트하고 시도 할 수 있습니다.
다음 표는 WebGL 빌드의 지원되는 Unity 버전을 보여줍니다.
| Unity 버전 | 창 | 리눅스 | 마코스 | Webgl | 기계적 인조 인간 | iOS | 오큘 러스 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2021.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2020.3.x | ✅ | ✅ | ✅ | ✅ | |||
| 2019.4.x | ✅ |
| ✅ = 지원 | ⛔ = 지원되지 않습니다 |
빌드와 관련된 문제를보고하십시오.
다양한 요청 매개 변수를 사용하는 방법에 대한 자세한 내용은 OpenAi 문서를 참조하십시오 : https://platform.openai.com/docs/api-Reference