https://github.com/nathadriele/acmr-rag-rename-mbausp
Trabalho de Conclusão de Curso do MBA em Data Science e Analytics da USP/ESALQ, turma 2023. Desenvolve um sistema de recuperação da informação baseado em LLMs e RAG, aplicado à lista RENAME de medicamentos essenciais. O protótipo utiliza embeddings, bancos vetoriais e LangChain, com avaliação realizada pelo framework RAGAS.
https://github.com/nathadriele/acmr-rag-rename-mbausp
all-minilm-l6-v2 analytics chunking data-science gemma-2-9b-it genai groq langchain langchain-agent llama3 llm mixtral-8x7b pinecone postgresql rag ragas rename scraping streamlit usp
Last synced: 4 months ago
JSON representation
Trabalho de Conclusão de Curso do MBA em Data Science e Analytics da USP/ESALQ, turma 2023. Desenvolve um sistema de recuperação da informação baseado em LLMs e RAG, aplicado à lista RENAME de medicamentos essenciais. O protótipo utiliza embeddings, bancos vetoriais e LangChain, com avaliação realizada pelo framework RAGAS.
- Host: GitHub
- URL: https://github.com/nathadriele/acmr-rag-rename-mbausp
- Owner: nathadriele
- Created: 2025-05-08T14:16:18.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-05-14T16:01:54.000Z (5 months ago)
- Last Synced: 2025-06-01T14:17:38.520Z (5 months ago)
- Topics: all-minilm-l6-v2, analytics, chunking, data-science, gemma-2-9b-it, genai, groq, langchain, langchain-agent, llama3, llm, mixtral-8x7b, pinecone, postgresql, rag, ragas, rename, scraping, streamlit, usp
- Homepage:
- Size: 1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ACMR – IA de Consulta de Medicamentos da RENAME
Trabalho de Conclusão de Curso – MBA USP/ESALQ (Data Science & Analytics) • Domínio: Saúde Pública / Medicamentos Essenciais • Última atualização: maio 2025
## Visão Geral
ACMR é um protótipo de Generation‑Augmented Retrieval (RAG) que responde perguntas sobre os 534 medicamentos presentes na Relação Nacional de Medicamentos Essenciais (RENAME) do SUS, combinando LLMs de código aberto com busca vetorial para oferecer respostas rápidas, contextualizadas e transparentes. O pipeline captura o PDF oficial da RENAME, extrai, limpa e fragmenta o texto, gera vetores semânticos e disponibiliza consulta via chat construído em Streamlit.

**Figura: Fluxograma de representação do sistema RAG de medicamentos RENAME.**
## Objetivos
1. Investigar a eficácia de arquiteturas RAG na recuperação de informações médicas não estruturadas.
2. Facilitar o acesso de pacientes, estudantes e profissionais a dados críticos de medicamentos, reduzindo barreiras do documento PDF extenso e semiestruturado.
3. Avaliar o sistema com o framework RAGAS, usando as métricas context_precision, context_recall, faithfulness e answer_relevancy.
## Tecnologias Principais
| Camadas | Ferramentas |
| --------------- | --------------------------------- |
| Modelos de Linguagem | Mixtral‑8x7B · Gemma‑2‑9B · Llama 3 |
| Embeddings | all-MiniLM-L6-v2 |
| Banco Vetorial | LangChain, RAGAS |
| Frameworks | Pinecone |
| API de Inferência | Groq Cloud APIs |
| Interface | Streamlit |
| Armazenamento | PostgreSQL |
| Ambiente de Dev | Python 3.10 · VS Code · Jupyter/Colab |## Pipeline de Cinco Etapas
1. **Formação do dataset:** obtenção e organização do PDF RENAME.
2. **Limpeza & padronização:** revisão de textos e normalização de bulas e lista.
3. **Vetorização & armazenamento:** criação de ~16 k chunks e indexação com métrica de cosseno no Pinecone.
4. **Recuperação & geração:** montagem do fluxo LangChain que reformula perguntas (Gemma‑2‑9B), recupera contexto e gera respostas (Mixtral‑8x7B).
5. **Avaliação:** aplicação do RAGAS sobre conjunto sintético de perguntas/respostas.
## Resultados de Avaliação
| Métrica | Pontuação Média |
| --------------- | --------------------------------- |
| Precisão do Contexto | 0,93 |
| Recall do Contexto | 0,87 |
| Fidelidade | 0,83 |
| Relevância da Resposta | 0,63 |As métricas indicam alta precisão e recall de contexto, sugerindo boa capacidade de localizar trechos relevantes. A fidelidade mantém consistência factual; já a relevância das respostas revela espaço para refinamentos no modelo gerador.

**Figura: Avaliação das métricas para várias perguntas geradas no sistema.**
## Como Executar Localmente
### 1. Clone o repositório
```
$ git clone git@github.com:nathadriele/acmr-rag-rename-mbausp.git
```### 2. Crie o ambiente
```
$ python -m venv .venv && source .venv/bin/activate
``````
$ pip install -r requirements.txt
```### 3. Configure suas credenciais
```
$ export PINECONE_API_KEY=SEU_TOKEN
``````
$ export GROQ_API_KEY=SEU_TOKEN
```### 4. Execute a interface

**Figura: Interface de usuário do sistema de consulta de medicamentos RENAME.**
--------------------------------------------------------

**Figura: Interface do usuário com pergunta, reformulação da pergunta e resposta.**
```
$ streamlit run src/app_streamlit.py
```Obs: a primeira execução fará a vetorização e pode levar alguns minutos.
## Autoria & Orientação
Me. Nathalia Adriele de Lima – MBA em Data Science & Analytics, USP/ESALQ
Dr. Felipe Pinto da Silva – Orientador
**Caso utilize este trabalho em pesquisas acadêmicas, cite da seguinte forma:**
```
@misc{lima2024rag,
title = {RAG: Avaliação de um sistema de recuperação da informação de medicamentos RENAME baseado em LLMs},
author = {Lima, Nathalia Adriele de and Silva, Felipe Pinto da},
year = {2024},
note = {MBA USP/ESALQ, Trabalho de Conclusão de Curso}
}
```