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 installdata/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.shNa 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.shPara 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 utilizarpoetry 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.