Vec4ensics é uma ferramenta desenvolvida em Python para indexação, pesquisa semântica e avaliação de documentos, suportando múltiplos modelos de embeddings e integração com datasets personalizados.
- Instalar o Poetry:
pipx install poetry
- Instalar as dependências do projeto:
poetry install
data/wiki_dataset_generation/
: Scripts para gerar ficheiros da Wikipedia e converter para formatos Office.validation/
: Scripts para testes e avaliação de modelos.vec4ensics/
: Código principal da ferramenta.
Para extrair artigos da Wikipedia de um ficheiro .zim
e converter para formatos Office (PDF, DOCX, PPTX, XLSX):
poetry run bash data/wiki_dataset_generation/run_full_conversion.sh
Na pasta validation/
existem vários scripts para testar e avaliar os modelos:
- Testes de tempo de indexação:
poetry run bash validation/run_indexation_time_tests.sh
- Testes com datasets anotados:
poetry run bash validation/run_labeled_dataset_tests.sh
- Testes de modelos com dataset SPICED:
poetry run bash validation/run_spiced_model_tests.sh
Para indexar documentos e realizar pesquisas semânticas, utilizar o comando principal:
poetry run vec4ensics index \
--dir <diretório_dos_ficheiros> \ # Diretório com os ficheiros a indexar
--out <diretório_de_saida> \ # Diretório para os ficheiros gerados e índice FAISS
--gpu 0 \ # Número do dispositivo GPU (0 para CPU)
--model <nome_do_modelo> # Nome do modelo de embeddings a utilizar
poetry run vec4ensics index --dir <diretório_dos_ficheiros> --out <diretório_de_saida> --gpu 0 --model <nome_do_modelo>
poetry run vec4ensics search \
--type <document|sentence|document-threshold> \ # Tipo de pesquisa: documento, frase ou threshold
--query "<texto_da_pesquisa>" \ # Texto da pesquisa
--out <diretório_de_saida> \ # Diretório onde está o índice FAISS
--num-results 10 \ # Número de resultados a apresentar
--csv <ficheiro_resultados.csv> \ # Caminho para exportar os resultados em CSV
--gpu 0 # Número do dispositivo GPU (0 para CPU)
poetry run vec4ensics search --type <document|sentence|document-threshold> --query "<texto_da_pesquisa>" --out <diretório_de_saida> --num-results 10 --csv <ficheiro_resultados.csv> --gpu 0
--similarity-threshold <valor> # Similaridade mínima para considerar uma frase (apenas para document-threshold)
--sum-threshold <valor> # Soma mínima de similaridades para aceitar um documento (apenas para document-threshold)
Os parâmetros podem ser ajustados conforme necessário para otimizar a pesquisa e os resultados.