Giter Club home page Giter Club logo

torricelli-arandas / disaster-response-coordinator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from victorverdoodt/disaster-response-coordinator

0.0 0.0 0.0 221 KB

O 'Disaster Response Coordinator' é um sistema interativo baseado em inteligência artificial para coordenação e suporte em situações de desastre. Utiliza a API do Gemini para facilitar a comunicação entre vítimas e serviços de emergência, integrando-se ao Sistema Integrado de Informações sobre Desastres v3.

C# 73.09% CSS 15.18% HTML 8.88% Dockerfile 2.85%

disaster-response-coordinator's Introduction

Disaster Response Coordinator

O 'Disaster Response Coordinator' é um sistema interativo baseado em inteligência artificial para coordenação e suporte em situações de desastre. Utiliza a API do Gemini para facilitar a comunicação entre vítimas e serviços de emergência, integrando-se ao Sistema Integrado de Informações sobre Desastres v3. Um diferencial significativo deste sistema é que o diálogo acontece por meio do WhatsApp, uma plataforma amplamente utilizada, tornando o pedido por ajuda muito mais acessível. Essa integração garante que mais pessoas possam alcançar assistência de forma rápida e eficiente em momentos críticos.

Imersão em Inteligência Artificial - 2ª Edição (Alura)

Tecnologias Utilizadas

logo gemini logo aspire logo redis logo .NET

Frameworks e APIs:

  • .NET 8, .NET Aspire, Blazor
  • Redis, Google Places, Google Geo, ViaCep
  • WhatsApp Cloud API, Gemini, Paraquemdoar.com.br

Configuração e Execução

Pré-requisitos:

  • Instale o .NET 8 e Docker. Verifique com dotnet --version.
  • Configure o Aspire no seu ambiente .NET.

Iniciar o Projeto:

  • Atualize appsettings.json no diretório API com as chaves necessárias.
  • Execute AppHost para iniciar Redis, backend e frontend.

Características e Funcionalidades

Interações e Interfaces:

  • Chat de Testes: Interface de usuário otimizada para interação via browser para execução de testes sem configuração do Whatsapp.
  • Contexto Persistente: Redis com IChatCacheService para manter o estado das conversas.

Integrações Externas:

  • Informações sobre Desastres: Integração com S2iD v3 para dados em tempo real.
  • Localização: Uso de Google Places e Google Geo para identificar hospitais e locais seguros.
  • Logística: Consulta de endereços pelo CEP com ViaCep.

Serviço de Chat

O ChatService é o coração da interação do usuário no "Disaster Response Coordinator". Este serviço gerencia a comunicação entre os usuários e o sistema, utilizando várias APIs e serviços para fornecer respostas precisas e oportunas durante emergências.

Funcionalidades do Serviço

O ChatService implementa a interface IChatService e realiza múltiplas funções críticas:

Inicialização e Gestão de Conversas

  • StartChat: Inicia uma nova conversa ou retoma uma existente usando um identificador único (GUID). Configura o diálogo inicial com o usuário e prepara o sistema para responder a consultas baseadas em localização e emergência.

Consultas Específicas

  • GetCurrentAddress: Localiza um endereço via CEP utilizando o serviço ViaCep.
  • GetAvailableShelters: Encontra hospitais e abrigos próximos baseando-se nas coordenadas obtidas pelo serviço IGeocodingService.
  • GetDonationPlaces: Procura locais seguros para fazer doações com base em palavras-chave através do serviço IBenfeitoriaService.

Processamento de Emergências

  • GetDesasters: Analisa o risco de desastres em uma localidade específica combinando informações do usuário com dados de desastres obtidos pelo serviço IS2iDService.

Armazenamento e Caching

  • Utiliza IDistributedCache para armazenar informações que são frequentemente acessadas, como códigos de desastres (Cobrades), reduzindo a carga sobre as APIs externas e acelerando a resposta do sistema.

Integrações Externas

  • GeminiClient: Utilizado para construir e gerenciar conversas AI-driven.
  • Google Places e Google Geo: Para a identificação precisa de locais específicos como hospitais e outros pontos de interesse.

Exemplo de Uso

O método SendMessage demonstra a interação com o usuário:

  • Recebe uma mensagem de um usuário e um GUID opcional.
  • Inicia ou continua a conversa.
  • Processa a mensagem através do GeminiClient usando opções de conclusão definidas.
  • Salva a conversa atualizada no cache para garantir persistência e contexto.

Estratégias de Caching

  • Cobrades: Dados sobre categorias de desastres são cacheados e atualizados periodicamente para garantir a eficiência e a relevância das informações fornecidas aos usuários em situações de emergência.

Contribua

  1. Clone o repositório.
  2. Crie uma branch para sua feature.
  3. Faça alterações.
  4. Envie um pull request.

Agradecemos seu apoio ao "Disaster Response Coordinator". Juntos, fazemos a diferença!

Autor e Links

Galeria

ImagemGitHub

disaster-response-coordinator's People

Contributors

victorverdoodt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.