Skip to content

pudimKBM/DisasterAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Disaster Response Agent Chat 🆘

Este projeto implementa um agente de chat interativo para fornecer assistência e informações relacionadas a situações de desastre. A interface do usuário é construída com Streamlit, e o agente backend utiliza LangGraph e modelos de linguagem da OpenAI (via Azure) para processar as consultas dos usuários, buscar informações e fornecer respostas relevantes.

Integrantes

  • Antônio Libarato RM558014
  • Renan de França Gonçalves RM558413
  • Thiago Almança RM558108

Visão Geral

O "Disaster Response Agent" é projetado para:

  1. Entender a Situação do Usuário: Classifica o perfil do usuário (por exemplo, vítima, morador preocupado, familiar) para adaptar a comunicação.
  2. Buscar Informações:
    • Consulta uma base de conhecimento interna para informações já processadas.
    • Realiza buscas na internet (usando Tavily Search) para obter dados atualizados ou informações não presentes na base interna.
    • Adiciona novas informações encontradas na internet à base de conhecimento interna para uso futuro.
  3. Interagir com o Usuário: Fornece respostas e orientações através de uma interface de chat amigável.
  4. Mostrar Transparência: Exibe o processo de pensamento do agente, incluindo as ferramentas que pretende usar e os resultados parciais.

Funcionalidades Principais

  • Interface de Chat Interativa: Desenvolvida com Streamlit para fácil interação.
  • Histórico de Conversa: Mantém o histórico da conversa para cada sessão do usuário.
  • Classificação de Perfil de Usuário: O agente tenta identificar o tipo de usuário para personalizar a assistência.
  • Busca em Base de Conhecimento Interna: Prioriza a busca por informações já existentes e processadas.
  • Busca na Internet em Tempo Real: Utiliza Tavily Search para informações atuais ou não encontradas internamente.
  • Aprendizado Contínuo (Simples): Resultados de buscas na internet são adicionados à base de conhecimento interna.
  • Streaming de Respostas: As respostas e o status do agente são atualizados em tempo real na interface.
  • Integração com LLM (Azure OpenAI): Utiliza modelos de linguagem avançados para compreensão e geração de texto.
  • Uso de Ferramentas (Tools): O agente pode decidir usar ferramentas como busca interna ou busca na web.

Tecnologias Utilizadas

  • Python 3.x
  • Streamlit: Para a interface web interativa.
  • LangGraph: Para construir o fluxo lógico do agente.
  • LangChain: Para componentes de LLM, ferramentas, prompts e gerenciamento de estado.
  • Langchain-OpenAI: Para integração com os modelos da OpenAI (especificamente Azure OpenAI).
  • Langchain-Community: Para ferramentas como TavilySearchResults e embeddings HuggingFaceEmbeddings.
  • Tavily Search API: Para busca na internet.
  • Sentence-Transformers: Para gerar embeddings localmente (modelo all-MiniLM-L6-v2).
  • Dotenv: Para gerenciamento de variáveis de ambiente.

Pré-requisitos

  • Python 3.8 ou superior.
  • Acesso a um endpoint do Azure OpenAI e uma chave de API.
  • Uma chave de API da Tavily Search.

Configuração e Instalação

  1. Clone o Repositório (Opcional): Se você baixou os arquivos, pule esta etapa. Caso contrário:

    git clone <url-do-seu-repositorio>
    cd <nome-do-repositorio>
  2. Crie um Ambiente Virtual (Recomendado):

    python -m venv venv
    source venv/bin/activate  # No Windows: venv\Scripts\activate
  3. Instale as Dependências: Certifique-se de que o arquivo angent.py (ou um requirements.txt se você criar um) esteja no mesmo diretório ou instale as bibliotecas manualmente:

    pip install -U streamlit langgraph langchain langchain_openai langchain_community tavily-python python-dotenv sentence-transformers
  4. Configure as Variáveis de Ambiente: Crie um arquivo chamado .env na raiz do projeto com o seguinte conteúdo, substituindo pelos seus valores:

    TAVILY_API_KEY="sua_chave_tavily_aqui"
    AZURE_OPENAI_ENDPOINT="seu_endpoint_azure_openai_aqui"
    AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="nome_do_seu_deployment_chat_aqui"
    OPENAI_API_VERSION="2024-02-15-preview" # Ou a versão que você está usando
    # OPENAI_API_KEY="sua_chave_openai_aqui" # Se não estiver usando Azure, descomente e configure

    Nota: O código em angent.py está configurado para usar AzureChatOpenAI. Se você pretende usar a API padrão da OpenAI, precisará ajustar a inicialização do llmClient em angent.py.

Como Executar

Após a configuração e instalação das dependências, execute o aplicativo Streamlit:

streamlit run app_streamlit.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages