Uso de LLM em Sistemas PBX Asterisk para Triagem em Serviços de Emergência

Sobre o trabalho:

O meu Trabalho de Conclusão de Curso é sobre a utilização de Large Language Models (LLMs) para triagem de emergências, em específico de ligações telefônicas para emergência, como o uso do tridigíto 190/192/193, que hoje são separados e enviam para setores diferentes mas no ambiente do trabalho são unificados sob o único número 190.

O ambiente de testes é feito com base no servidor em nuvem, hospedado pela Oracle Cloud, no qual apresenta telefonia gerenciada pela aplicação PBX open source Asterisk. A ligação é processada pelo plano de discagem que integra scripts de Speech-To-Text e APIs de LLM para processar a entrada e direcionar a ligação para o setor responsável. Todos os pontos são armazenados em um banco de dados relacional local por meio da aplicação PosgreSQL.

Changelog

  • v1.00 (10/10/2025)
    • Implementado sistema de Retrieval-Augmented Generation (RAG) na alimentação de instruções ao prompt da LLM.
    • Foram criadas diversas novas tabelas no banco de dados para armazenamento e relação entre os dados da ligação.
    • A tabela RAG_Database armazena os textos e regras em vetores de 384 dimensões.
    • O script da LLM agora faz a conversão em vetor, comparação por Distância Cosseno e inserção dos textos e vetores no banco.
    • Foram feitos ajustes em todos os áudios no fluxo de chamadas para melhor informar o local e guiar os comandos.
    • Modificação significativa de todo o plano de discagem.
    • A pesquisa agora pergunta para qual setor o usuário deveria ter sido direcionado em caso negativo, e atualiza na database do RAG com o setor correto para evitar novos erros em contextos similares.
    • O banco de dados inicial do RAG foi de diversas diretrizes sob as quais a LLM deve se basear para tomar decisão enquanto a base de dados é pequena.
    • Alteração total da parte gráfica do site em html para melhor apresentar o objetivo do projeto, guia e ramais disponíveis.
  • v0.80 (30/09/2025)
    • Aumento do período que o canal permanece aberto para captação de voz de 10 para 15 segundos.
    • Voz começa a ser captada a partir do áudio inicial
    • Gravação da ligação para análise futura dos dados coletados.
  • v0.75 (26/09/2025)
    • Protótipo Inicial de Triagem para Serviços de Emergência.
    • Captação por voz via SST do Google.
    • Processamento do texto pelo GPT 4o-mini.
    • Direcionamento para o setor especifico dentre Médicos/Bombeiros/Policia.
    • Inserção dos dados de atendimento no banco PostgreSQL.

Roadmap:

  • Criação de um script STT próprio.
  • Reconhecimento de voz durante mais partes do fluxo.
  • Reconhecimento de endereços via RAG.
  • Reconhecimento de trotes.
  • Reconhecimento do estado emotivo da voz.
  • Interação total via voz.

Guia de Uso

Para testar o sistema do projeto, basta realizar o seguinte procedimento:

  1. Escolha um ramal dentro do range 1901-1910, conforme sua disponibilidade na aba "Ramais" acima. O domínio é no ip: 136.248.80.236.
  2. Registre o ramal em um aplicativo de softphone de sua preferência. A senha está disponível aqui.
  3. Após registrar o ramal, dique 190.
  4. Após o áudio inicial fale sua emergência. Exemplo: "Incêndio na rua abacaxi do mar 7891".
  5. Depois disso, siga o fluxo conforme informado nos áudios.
  6. Ao final será feita uma pesquisa para saber se você foi direcionado para o local correto. Peço que responda corretamente pois essa informação será realimentada ao banco de dados da LLM

A seguir segue o fluxo técnico do funcionamento do sistema:

Em breve...

Status dos Ramais

A lista abaixo apresenta os ramais disponibilizados no contexto da Central de Triagem 190