Infraestrutura

Esta página tem como objetivo apresentar a arquitetura utilizada na aplicação por meio de um diagrama e explicação das decisões tomadas durante o desenvolvimento. A arquitetura foi projetada utilizando apenas técnicas ensinadas na disciplina, sem recorrer a modelos que abstraem todo o processamento de linguagem natural.

Arquitetura

Arquitetura

A aplicação é dividida em duas partes principais: o cliente, responsável pela interação com o usuário, e o servidor, que gerencia a lógica e a comunicação com a base de dados.

Cliente

A decisão foi tomada para que o reconhecimento de voz ocorra no lado do cliente, minimizando o tráfego de dados para o servidor. A comunicação entre cliente e servidor é feita via requisições HTTP utilizando JSON.

Base de Dados

O banco de dados foi populado previamente com leis e regulamentos por meio de um processo de seeding. Isso inclui a vetorização dos dados e seu armazenamento em um banco de dados vetorial, permitindo buscas eficientes por similaridade.

Esse modelo de armazenamento evita a necessidade de processamento intenso a cada requisição, tornando as consultas mais ágeis e eficientes.

Servidor

O servidor é responsável pelo processamento e manipulação dos dados. O fluxo de execução inclui: