Este projeto consiste em uma API para recuperação da informação de dados não estruturados. Este repositório está dividido atualmente em 3 módulos:
- Indexação dos dados: Enquanto o pipeline de processamento e indexação está em desenvolvimento, temos scripts para indexar coleções no ambiente de testes e também amostra dos dados para indexar localmente na sua máquina. Para mais informações, acesse o diretório indexer.
- API de busca: Parte principal deste projeto responsável por todo a interação com os dados não estruturados. Está disponibilizado em forma de uma API REST para que seja possível integrar com qualquer sistema. Para ter acesso a todos os endpoints e seus parametros, acesse: http://127.0.0.1:8000/services/swagger-ui
- Interface para a API: Interface temporária para mostrar e testar o uso da API. Para tal, acesse: http://127.0.0.1:8000/aduna
Há duas formas de se instanciar o projeto, sendo elas a versão automática ou manual, descritas a seguir.
- Baixe este projeto na sua máquina
- Crie um ambiente virtual:
python -m venv venv
- Ative o ambiente virtual:
source venv/bin/activate
- Atualize sua versão do
pip
:pip install -U pip
- Execute o comando:
./install.sh
. Ele irá:- Instalar todas as dependências do sistema
- Caso o
ElasticSearch
não esteja disponível, irá baixá-lo e o iniciar (se já não estiver ativo) - Indexar o corpus de exemplo, caso já não esteja indexado
- No final da execução da
etapa 4
, no terminal, aparecerá a opção de criação de usuário, necessário para usar o sistema.
-
Baixe este projeto na sua máquina e baixe a versão mais recente do Elasticsearch
-
Suba uma instância do ElasticSearch com uma amostra dos índices. Para isso siga as instruções descritas em indexer.
-
Para rodar a API é necessário instalar as dependências do projeto. Para tal, entre na pasta search_engine e rode:
pip install -r requirements.txt
Se ficar muito lento, rode:
pip install --use-deprecated=legacy-resolver -r requirements.txt
-
Navegue até a pasta search_engine/mpmg e faça uma cópia do arquivo "settings.template.py" com o nome de "settings.py". Altere alguns diretórios e senhas caso necessário.
-
Crie um usuário para acessar a interface da API. Será necessário informar qual tipo de cliente o nome usuário será, por meio de
api_client_name
. Digiteprocon
ougsi
, de acordo com suas necessidades. Navegue até o diretório search_engine e rode:python manage.py createsuperuser
Para acessar a nossa versão da interface ou API do sistema:
- Rode o servidor:
python manage.py runserver
- Acesse o link http://localhost:8000/aduna para acessar a nossa versão da interface do sistema.
- Caso esteja interessado apenas na API, acesse http://localhost:8000/services/swagger-ui/, para ver a documentação.
-
M05.6 - Ranqueamento de entidades -
M05.7 - Aprendizado de ranqueamento
-
M05.8 - Contextualização interativa (sessões)
-
M05.9 - Contextualização extratural (KBs)
-
M05.10 - Indexação de novas coleções