Racionaliza é um sistema baseado em RAG (Retrieval-Augmented Generation) que responde a perguntas em linguagem natural sobre o acervo patrimonial de uma universidade. Idealizado inicialmente como protótipo acadêmico, ele busca facilitar o reaproveitamento de bens permanentes subutilizados.
O sistema funciona como um chatbot onde o usuário pode consultar:
- Quais bens estão disponíveis
- Onde estão localizados
- Situação atual de uso
A base inicial é simulada, mas a arquitetura já está pronta para escalar com embeddings reais, FAISS e LLMs comerciais via API.
Racionaliza/
├── app_langchain.py # Interface Streamlit com chat
├── backend/
│ ├── rag_engine.py # Função central generate(prompt)
│ ├── fake_embedder.py # Embeddings simulados
│ ├── vector_db.py # Busca semântica com FAISS
│ ├── fake_llm.py # Simulação da LLM (pode ser substituída por Groq/OpenAI)
│ └── fake_data.py # Base textual simulada
├── utils/
│ ├── ui.py # Funções auxiliares de interface (streaming, setup)
├── data/
│ └── exemplo.pdf # (Opcional) PDFs simulados de bens
└── .streamlit/secrets.toml # Configurações de API
- Streamlit
- LangChain
- FAISS (Facebook AI Similarity Search)
- Python 3.10+
git clone https://github.com/seuusuario/racionaliza.git
cd racionaliza
🚀 Configuração e Execução do Projeto (Usando Poetry)
Este projeto utiliza o [Poetry](https://python-poetry.org/) para gerenciar dependências e garantir que todos os colaboradores utilizem o mesmo ambiente, evitando problemas de versão.
Pré-requisitos:
Certifique-se de ter o Python (versão `>=3.13` recomendada) e o `pip` instalados no seu sistema.
### 2. Instalação do Poetry
Instale o Poetry globalmente:
```bash
# Instala o gerenciador de pacotes Poetry
pip install poetry
### 3. Instalação de Dependencias
# Instala todas as dependências no ambiente virtual isolado
python -m poetry install --no-root
### Ativação do ambiente
python -m poetry env activate
### 4. Crie o arquivo .streamlit/secrets.toml:
# .streamlit/secrets.toml
openai_api_key = "sk-..."
groq_api_key = "gsk-..."
### 5. Execute a aplicação
streamlit run app_langchain.py
⸻
📌 Exemplos de Uso
“Quantos projetores estão disponíveis no campus Sobral?”
“Onde estão as cadeiras ergonômicas?”
“Quais equipamentos de TI estão ociosos?”
⸻
🌱 Futuras Expansões
• Integração com banco de dados institucional (SIGE/PATRIMÔNIO)
• Upload e vetorização automática de PDFs reais
• Filtros por campus, tipo e situação
• Painel de visualização dos bens em mapa interativo
⸻
🤝 Contribuindo
Contribuições são bem-vindas! Siga os passos:
1. Fork este repositório
2. Crie uma branch: git checkout -b feature/nome
3. Faça o commit: git commit -m 'Adiciona nova funcionalidade'
4. Envie o push: git push origin feature/nome
5. Abra um Pull Requesta
⸻
📄 Licença
Este projeto é open-source, sob a licença MIT.
⸻
👨💻 Equipe
• Nikelly Santiago da Silva - @nikellysansil
• Lucas Lopes Silva — @lucassilva
• Francisco Lemuel - @sanFranciscoLemuel
• Maria Letícia - @leticiamfrota
• Mauricio Amorim Gurgel do Amaral -
• Camilo Almendra -