Unreal Engine의 벡터 데이터베이스 플러그인 5
이 플러그인은 청사진을 염두에두고 설계된 Unreal Engine 5에 단순화 된 벡터 데이터베이스 유형을 추가합니다.
경고 : 진행중인 작업
이것은 여전히 초기 상태에 있으므로 충돌이 발생하면 놀라지 마십시오. 나는 특정 프로젝트를 위해이 플러그인을 직접 만들고 있지만 공유하는 것이 좋을 것이라고 생각했습니다. 시도해보고 문제를 경험하면 도움이 될 수있는 로그 정보로 새로운 문제를 자유롭게 열어주십시오.
설치
이 repo에는이 플러그인을 테스트하고 개발하는 데 사용중인 전체 프로젝트 (UE 5.4)가 포함되어 있습니다. 이 전체 프로젝트를 복제 할 필요는 없습니다 . 플러그인을 설치하려면 다음 단계를 따르십시오.
- 플러그인/Vectorsearch 폴더를 다운로드하여 프로젝트의 플러그인 폴더에 배치하십시오 (존재하지 않으면 작성).
- 이 시점에서 프로젝트를 개설하려고 시도 할 수 있습니다. 이미 작동 할 가능성이 있습니다.
- .uproject 파일을 마우스 오른쪽 버튼으로 클릭하고 'Visual Studio Project 파일 생성'을 클릭하십시오.
- 프로젝트 솔루션 (.SLN 파일)을 열고 프로젝트를 구축하고 컴파일 오류가 없는지 확인하십시오.
- 컴파일 문제가 발생하면 문제 탭에서 빌드 로그를 게시하십시오.
- 가용 함수를 확인하려면 프로젝트를 열고 Blueprint 그래프에서 '벡터 데이터베이스'를 검색하십시오.
이 설치 안내서는 청사진 프로젝트 에서이 플러그인을 컴파일하는 것을 테스트 할 수 없었기 때문에 C ++ 프로젝트가 있다고 가정합니다. 청사진 프로젝트가 있다면 빈 C ++ 프로젝트를 빠르고 쉽게 만들고 편집을 할 수 있습니다. 해당 프로젝트의 복사/붙여 넣기가 효과가 있다고 생각합니다.
어떻게 작동합니까?
- '새 벡터 데이터베이스 만들기'노드를 사용하여 새 벡터 데이터베이스를 초기화 한 다음이를 변수로 저장할 수 있습니다.
- 이 객체를 대상으로 사용하면 '벡터 데이터베이스에 항목 추가'노드를 사용하여 모든 데이터 유형의 항목 (및 해당 벡터 -AN 플로트 배열)을 추가 할 수 있습니다 (플러그인은 현재 문자열, 객체 및 구조물 항목을 지원하지만 Structs는 대부분의 가변 유형을 포함 할 수 있지만 일부 사용 사례에서는 문자열과 객체 항목이 실제로 존재할 수 있습니다).
- 데이터베이스에서 항목을 검색하려면 '상단 N 경기'노드를 사용할 수 있습니다. 이들은 벡터 데이터베이스 개체, 벡터 (플로트 배열) 및 'n'값 (반환 할 일치량)을 취합니다. 그런 다음이 노드는 입력 벡터로부터 각 항목의 벡터 거리를 기반으로 데이터베이스의 상단 N 항목을 계산합니다.
- 'get top n struct matches'에는 와일드 카드 출력이 있습니다. 구조물을 다시 가져 오기 위해 각 루프마다 가변 세터 또는 구조체 브레이커를 연결 한 다음 각 루프 배열 입력에 대해 '상단 n 구조체 일치'와일드 카드 출력에 연결합니다. 핀 유형은 자동으로 업데이트해야합니다.
- 또한 발견 된 각 입력의 벡터, 거리, 그리고 값이 공급 된 순수 함수에서 값을 얻을 수있는 래퍼 객체를 포함하는 구조물을 반환하는 '상세한 상단 n 경기'도 있습니다 (스트리트 제외, 전체 출력 구조물을 입력으로 취하는 불순한 기능을 갖는)
- 모든 'Top N Matches'함수는 입력 벡터의 치수와 일치하는 벡터와 노드 유형과 일치하는 벡터 데이터베이스 항목 만 고려합니다. 벡터 데이터베이스가 데이터 유형이기 때문에 문자열, 객체 또는 문자열의 숫자 또는 조합을 데이터베이스에 넣을 수 있으며 (원하는 경우 다른 치수의 벡터도 포함하고) GET 기능은 700 차원 벡터에서만 통과 할 경우에만 통과하는 경우에만 사용되기 때문에 작동합니다. Getter 함수는 당신이 고려하고 싶은지 여부에 관계없이 배열의 모든 항목을 반복해야한다는 점 에서이 작업에 약간의 형벌이 있습니다.
- 데이터베이스에서 항목을 제거하려면 입력 벡터를 사용하고 일치를 제거하는 '벡터 데이터베이스에서 항목 제거'노드를 사용할 수 있습니다. Bremovealloccurences가 True로 설정된 경우. 그런 다음 일치하는 벡터가있는 모든 항목이 제거됩니다. 또한 'removallange'float 입력도 있습니다.이 입력은 0 이상으로 설정되면 입력 벡터로부터 거리가 주어진 일치를 제거합니다.
- 또한 데이터베이스에서 입력 카운트를 얻기위한 순수한 노드가 있습니다 (문자열 입력 카운트, 객체 입력 카운트 및 Struct Entry Count를 얻기위한 별도의 Getter 노드).
벡터 생성
현재이 플러그인에는 문자열 입력을 취하는 'OpenAI INTEDDING'BLUEPRINT 함수와 API 엔드 포인트, 모델 및 API 키를 포함하는 구조물이 있으며 API가 지정된 엔드 포인트 (OpenAI 임베딩 API 형식에 따라)에 API 요청을 작성하고 벡터 데이터베이스 기능에 사용할 수 있도록 준비된 수상의 배열로 반환합니다.