O Oráculo é um assistente inteligente baseado em RAG (Retrieval-Augmented Generation) desenvolvido com Python e Streamlit. Ele permite que você converse e tire dúvidas com base no conteúdo de diversos tipos de documentos e fontes da internet, utilizando modelos de linguagem de ponta (LLMs).
- Múltiplas Fontes de Dados: Carregue conteúdo de diferentes origens para alimentar o conhecimento do assistente:
- Sites: Extração inteligente de conteúdo web (com rotação de User-Agent e retry).
- YouTube: Transcrição automática de vídeos (suporte a Português).
- Arquivos: Suporte para PDF, CSV e TXT.
- Múltiplos Provedores de IA:
- Groq: Llama 3.1, Mixtral, Gemma 2.
- OpenAI: GPT-4o, GPT-4o-mini, o1-preview/mini.
- Memória de Conversação: O assistente lembra do contexto da conversa atual.
- Interface Amigável: Construída com Streamlit, fácil de configurar e usar.
- Python 3.10 ou superior
- Pip (gerenciador de pacotes)
-
Clone o repositório:
git clone https://github.com/lipelou/oraculo.git
-
Crie e ative um ambiente virtual (recomendado):
python -m venv venv # Linux/Mac source venv/bin/activate # Windows .\venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
Para iniciar o Oráculo, execute o seguinte comando no terminal:
streamlit run app.pyA aplicação será aberta automaticamente no seu navegador padrão (geralmente em http://localhost:8501).
-
Menu Lateral:
- Upload de Arquivos: Escolha o tipo de fonte (Site, YouTube, PDF, etc.) e forneça a URL ou faça o upload do arquivo.
- Seleção de Modelos: Escolha entre Groq ou OpenAI, selecione o modelo desejado e insira sua API Key.
- Nota: As chaves não são salvas permanentemente por segurança.
-
Inicializar:
- Clique no botão "Inicializar Oráculo" para processar o documento e configurar o assistente.
-
Conversar:
- Use o campo de chat para fazer perguntas sobre o conteúdo carregado. O Oráculo usará as informações do documento para responder.
app.py: Arquivo principal da aplicação Streamlit (Interface e Lógica de Chat).loaders.py: Módulo responsável pelo carregamento e processamento de diferentes tipos de documentos.requirements.txt: Lista de dependências do projeto.
- Streamlit - Interface Web
- LangChain - Framework de LLM e RAG
- Groq - Inferência de alta velocidade
- OpenAI - Modelos GPT
Este projeto está sob a licença MIT. Sinta-se à vontade para usar e modificar.