Skip to content

A RAG Chatbot that uses information about college professors as context to help users search for docents and their academic contributions. Project developed during college

Notifications You must be signed in to change notification settings

murilx/unesp-rag-chatbot

Repository files navigation

RAG Chatbot

Projeto desenvolvido por Murilo Magiolo Geraldini Projeto orientado por Denis Henrique Pinheiro Salvadeo

Nota: Infelizmente, por falta de conhecimento na época e limitações de tempo este repositório não está tão organizado quanto poderia. Em algum período alguns commits não foram feitos e por isso grande parte do código está compilado no commit af73957.

No futuro é possível que isso mude

Este projeto consiste na criação de um chatbot que utiliza Inteligências Artificiais (IAs) generativas para facilitar a consulta de projetos, dissertações, artigos e informações sobre docentes de uma universidade. O principal objetivo é oferecer uma solução eficiente para que agentes externos, como empresas e instituições de diversos setores como agronegócio, infraestrutura, inteligência artificial, entre outros possam apresentar suas necessidades e, com a ajuda do chatbot, receber recomendações personalizadas de especialistas na universidade capazes de propor soluções para seus desafios.

O chatbot será alimentado por uma técnica chamada Retrieval-Augmented Generation (RAG), que aprimora a precisão e confiabilidade das IAs generativas ao integrá-las com informações externas ao modelo. A principal fonte de dados externa prevista para o projeto será a plataforma Lattes dos docentes, com a possibilidade de expansão para incluir informações do site da universidade, o seu repositório de dissertações e o conteúdo completo dos artigos acadêmicos publicados.

A ideia básica de um processo clássico de RAG consiste em dividir documentos em trechos menores (denominados chunks), que por meio de um algoritmo transformador baseado em LLM gera vetores numéricos que comprimem o contexto todo do trecho (gera os embeddings), que serão armazenados em um banco de dados. A consulta do usuário (query) segue o seguinte processo: primeiramente, o mesmo algoritmo de geração de embeddings anterior é aplicado para gerar os embeddings correspondentes à questão do usuário. Depois, uma busca por trechos relevantes é executada comparando os embeddings da query e de trechos armazenados no banco de dados, retornando os mais relevantes. Estes trechos formarão o contexto para que um LLM gerador de texto, analisando a questão e o contexto, retorne uma resposta em linguagem natural para o usuário.

Algumas ferramentas existentes devem auxiliar na geração do chatbot, como é o caso da API Langchain, prevista inicialmente para ser utilizada neste trabalho que permite a construção de fluxos complexos de processamento de linguagem natural, combinando diferentes modelos, APIs e fontes de dados em uma única cadeia ou pipeline.

Como executar o programa

  • Crie um ambiente virtual python -m venv venv
  • Inicie o ambiente virtual source venv/bin/activate
  • Baixe os pacotes necessários python -m pip install -r requirements.txt
  • Execute a aplicação com streamlit run chat_frontend.py

About

A RAG Chatbot that uses information about college professors as context to help users search for docents and their academic contributions. Project developed during college

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages