Update README.md
Browse files
README.md
CHANGED
@@ -1 +1,89 @@
|
|
1 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# RAG Conversacional com Upload de PDF e Histórico de Chat
|
2 |
+
|
3 |
+
Este projeto implementa um sistema de Recuperação de Informações Aumentada por Geração (RAG) conversacional usando Streamlit, LangChain, e modelos de linguagem de grande escala. O aplicativo permite que os usuários façam upload de documentos PDF, façam perguntas sobre o conteúdo desses documentos, e mantenham um histórico de chat para contexto em conversas contínuas.
|
4 |
+
|
5 |
+
## Autor
|
6 |
+
|
7 |
+
Reinaldo Chaves (reichaves@gmail.com)
|
8 |
+
|
9 |
+
## Características
|
10 |
+
|
11 |
+
- Interface de usuário Streamlit com tema dark
|
12 |
+
- Upload de múltiplos arquivos PDF
|
13 |
+
- Processamento de documentos usando LangChain e ChromaDB
|
14 |
+
- Geração de respostas usando o modelo Gemma2-9b-It da Groq
|
15 |
+
- Embeddings de texto usando o modelo all-MiniLM-L6-v2 do Hugging Face
|
16 |
+
- Histórico de chat para manter o contexto da conversa
|
17 |
+
- Barra lateral com orientações importantes para o usuário
|
18 |
+
|
19 |
+
## Requisitos
|
20 |
+
|
21 |
+
- Python 3.7+
|
22 |
+
- Streamlit
|
23 |
+
- LangChain
|
24 |
+
- ChromaDB
|
25 |
+
- PyPDF2
|
26 |
+
- Transformers
|
27 |
+
- Outras dependências listadas em `requirements.txt`
|
28 |
+
|
29 |
+
## Instalação
|
30 |
+
|
31 |
+
1. Clone este repositório:
|
32 |
+
```
|
33 |
+
git clone https://github.com/seu_usuario/seu_repositorio.git
|
34 |
+
cd seu_repositorio
|
35 |
+
```
|
36 |
+
|
37 |
+
2. Instale as dependências:
|
38 |
+
```
|
39 |
+
pip install -r requirements.txt
|
40 |
+
```
|
41 |
+
|
42 |
+
3. Configure as variáveis de ambiente ou tenha em mãos:
|
43 |
+
- Chave da API Groq
|
44 |
+
- Token da API Hugging Face
|
45 |
+
|
46 |
+
## Uso
|
47 |
+
|
48 |
+
1. Execute o aplicativo Streamlit:
|
49 |
+
```
|
50 |
+
streamlit run app.py
|
51 |
+
```
|
52 |
+
|
53 |
+
2. Abra o navegador e acesse o endereço local mostrado no terminal.
|
54 |
+
|
55 |
+
3. Insira suas chaves de API quando solicitado.
|
56 |
+
|
57 |
+
4. Faça upload de um ou mais arquivos PDF.
|
58 |
+
|
59 |
+
5. Faça perguntas sobre o conteúdo dos documentos na caixa de entrada de texto.
|
60 |
+
|
61 |
+
## Como funciona
|
62 |
+
|
63 |
+
1. **Upload de Documentos**: Os usuários fazem upload de arquivos PDF, que são processados e divididos em chunks menores.
|
64 |
+
|
65 |
+
2. **Criação de Embeddings**: O texto é convertido em embeddings usando o modelo Hugging Face.
|
66 |
+
|
67 |
+
3. **Armazenamento de Vetores**: Os embeddings são armazenados em um banco de dados ChromaDB para recuperação eficiente.
|
68 |
+
|
69 |
+
4. **Processamento de Perguntas**: As perguntas dos usuários são contextualizadas com base no histórico do chat.
|
70 |
+
|
71 |
+
5. **Recuperação de Informações**: O sistema recupera os chunks de texto mais relevantes com base na pergunta.
|
72 |
+
|
73 |
+
6. **Geração de Respostas**: O modelo Gemma2-9b-It da Groq gera uma resposta com base nos chunks recuperados e na pergunta.
|
74 |
+
|
75 |
+
7. **Manutenção do Histórico**: O histórico do chat é mantido para fornecer contexto em conversas contínuas.
|
76 |
+
|
77 |
+
## Avisos Importantes
|
78 |
+
|
79 |
+
- Não compartilhe documentos contendo informações sensíveis ou confidenciais.
|
80 |
+
- As respostas geradas pela IA podem conter erros ou imprecisões. Sempre verifique as informações importantes.
|
81 |
+
- Este projeto é para fins educacionais e de demonstração. Use com responsabilidade.
|
82 |
+
|
83 |
+
## Contribuições
|
84 |
+
|
85 |
+
Contribuições são bem-vindas! Por favor, abra uma issue para discutir mudanças importantes antes de fazer um pull request.
|
86 |
+
|
87 |
+
## Licença
|
88 |
+
|
89 |
+
[MIT License](LICENSE)
|