VECTOR DATABASE Plugin para Unreal Engine 5
Este plug -in adiciona um tipo de banco de dados de vetor simplificado ao Unreal Engine 5, projetado com projetos em mente.
Aviso: trabalho em andamento
Isso ainda está em um estado inicial, portanto, não se surpreenda se você sofrer falhas. Estou fazendo esse plug -in para alguns projetos específicos, mas achei que seria bom compartilhá -lo. Se você experimentar e tiver problemas, sinta -se à vontade para abrir um novo problema com qualquer informação de log que possa ser útil.
Instalação
Este repositório inclui todo o projeto (UE 5.4) que estou usando para testar e desenvolver este plug -in. Você não precisa clonar todo esse projeto. Para instalar o plug -in, siga estas etapas:
- Faça o download da pasta Plugins/VectorSearch e coloque -a na pasta Plugins do seu projeto (crie isso se não existir)
- Neste momento, você pode tentar abrir o projeto. Há uma chance de que já funcione.
- Clique com o botão direito do mouse no seu arquivo .uproject e clique em 'Gere o Visual Studio Project Arches'
- Abra a solução do projeto (arquivo .sln) e construa o projeto, verifique se não há erros de compilação
- Se você tiver algum problema de compilação, publique o login de compilação na guia
- Abra seu projeto e pesquise 'banco de dados vetorial' em um gráfico de plano para ver as funções disponíveis
Este guia de instalação pressupõe que você tenha um projeto C ++, pois não consegui testar a compilação deste plug -in em um projeto de plano. Se você possui um projeto de plano, pode criar rápida e facilmente um projeto C ++ em branco e fazer a compilação lá, acredito que copiar/colar desse projeto funcionaria.
Como funciona?
- Usando o nó 'Criar novo banco de dados vetorial', você pode inicializar um novo banco de dados de vetor e salvar uma referência a ele como uma variável.
- Usando esse objeto como alvo, você pode usar os nós 'Adicionar entrada ao banco de dados vetorial' para adicionar uma entrada (e sua matriz de carros alegóricos de vetor correspondente) de qualquer tipo de dados (o plug-in atualmente suporta string, objeto e estruturas de estrutura pode conter a maioria dos tipos variáveis, no entanto, as entradas de sequência e objetos realmente existem apenas para simplicidade em alguns casos de uso)
- Para recuperar entradas do banco de dados, você pode usar os nós 'Get Top N Matches'. Eles abordam o objeto Vector Database, um vetor (matriz de carros alegóricos) e um valor 'n' (a quantidade de correspondências para retornar). Esses nós calculam então as entradas principais N no banco de dados, com base na distância vetorial de cada entrada do vetor de entrada.
- O 'Get Top N Struct Matches' possui uma saída curinga, para recuperar sua estrutura, conecte um setter variável ou uma estrutura de uma estrutura de um loop e, em seguida, conecte o para cada entrada de matriz de loop à saída do curinga 'Get Top N Struct Matches'-o tipo de pino deve atualizar automaticamente.
- Há também um 'Get Detalhado N MOCHES NO TOPS', que retornará uma estrutura que contém o vetor de cada entrada encontrado, a distância e, em seguida, um objeto de invólucro de onde seu valor pode ser obtido das funções puras fornecidas (exceto estruturas, que têm uma função impura que toma em toda a estrutura de saída como sua entrada)
- Todas as funções 'Get Top N Matches' consideram apenas entradas de banco de dados vetorial com um vetor que corresponde às dimensões do vetor de entrada e com os tipos de entrada que correspondem ao tipo de nó. Isso ocorre porque os bancos de dados vetoriais são agnósticos do tipo de dados- você pode colocar qualquer número ou combinação de seqüências, objetos ou estruturas em um banco de dados (com vetores de dimensões diferentes também, se você quiser) e ele não é considerado um número de entradas, que não é considerado um número de entradas relevantes para que você seja relevante (se você passa em um vetor de 700, como o vetor. Há uma ligeira penalidade em fazer isso, pois as funções do getter ainda precisam iterar em todas as entradas da matriz, independentemente de você querer ou não considerá -las.
- Para remover as entradas de um banco de dados, você pode usar a entrada 'Remover entrada do nó do banco de dados do vetor' que recebe um vetor de entrada e remove qualquer correspondência. Se o bremoveallocurências estiver definido como true. Em seguida, qualquer entrada com um vetor correspondente será removida. Há também uma entrada de flutuação 'Removação', que, se definida como algo acima de 0, removerá quaisquer correspondências dentro (ou a) que a distância fornecida do vetor de entrada.
- Além disso, existem nós puros para obter a contagem de entrada no banco de dados (bem como nos nós do getter separado para obter contagem de entradas de string, contagem de entrada de objetos e contagem de entrada de estruturas).
Gerando vetores
Atualmente, este plug -in possui uma função de plano 'Gereate OpenAi incorporando' que recebe uma entrada de string, bem como uma estrutura que contém o ponto final da API, o modelo e a chave da API, e faz uma solicitação de API ao endpoint especificada (após o Formato de API de incorporação do OpenAI) e retorna o resultado como uma matriz de Floats prontos para serem usados no VECTRATASE.