reichaves commited on
Commit
55d01fd
·
unverified ·
1 Parent(s): 4486d87

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +56 -56
README.md CHANGED
@@ -14,25 +14,25 @@ pinned: false
14
  [![Hugging Face Spaces](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/reichaves/Chatbot-with-MaritacaAI-for-PDFs)
15
  [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://chatbotmaritacaai-jkiyzmcjcuvduw5dzymwu5.streamlit.app/)
16
 
17
- 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 da [MaritacaAI](https://www.maritaca.ai/) - startup brasileira focada em especializar modelos de linguagem para certos domínios e idiomas - especializada no Português Brasileiro. 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.
18
 
19
- ## Autor
20
 
21
  Reinaldo Chaves ([email protected])
22
 
23
- ## Características
24
 
25
- - Interface de usuário Streamlit com tema dark e layout responsivo
26
- - Upload e processamento de múltiplos arquivos PDF
27
- - Processamento de documentos usando LangChain e FAISS
28
- - Geração de respostas usando o modelo sabia-3 da Maritaca AI especializado em Português do Brasil
29
- - Embeddings de texto usando o modelo all-MiniLM-L6-v2 do Hugging Face
30
- - Histórico de chat persistente para manter o contexto da conversa
31
- - Barra lateral com orientações importantes para o usuário
32
- - Contagem de tokens por resposta
33
- - Formatação especial para documentos jurídicos e pedidos LAI
34
 
35
- ## Requisitos
36
 
37
  - Python 3.7+
38
  - Streamlit
@@ -41,79 +41,79 @@ Reinaldo Chaves ([email protected])
41
  - PyPDF2
42
  - MaritalkAI
43
  - HuggingFace Embeddings
44
- - Outras dependências listadas em `requirements.txt`
45
 
46
- ## Instalação
47
 
48
- 1. Clone este repositório:
49
  ```
50
  git clone https://github.com/reichaves/chatbotmaritacaai.git
51
  cd chatbotmaritacaai
52
  ```
53
 
54
- 2. Instale as dependências:
55
  ```
56
  pip install streamlit langchain langchain_huggingface maritalk faiss-cpu tenacity cachetools
57
  ```
58
 
59
- 3. Configure as chaves de API necessárias:
60
- - Chave da API Maritaca AI (https://plataforma.maritaca.ai/)
61
- - Token da API Hugging Face (https://huggingface.co/docs/hub/security-tokens)
62
 
63
- ## Uso
64
 
65
- 1. Execute o aplicativo Streamlit:
66
  ```
67
  streamlit run app.py
68
  ```
69
 
70
- 2. Abra o navegador e acesse o endereço local mostrado no terminal.
71
- 3. Insira suas chaves de API quando solicitado.
72
- 4. Faça upload de um ou mais arquivos PDF.
73
- 5. Faça perguntas sobre o conteúdo dos documentos na caixa de entrada de texto.
74
 
75
- ## Como funciona
76
 
77
- 1. **Upload de Documentos**: Os usuários fazem upload de arquivos PDF, que são processados e divididos em chunks menores.
78
- 2. **Criação de Embeddings**: O texto é convertido em embeddings usando o modelo all-MiniLM-L6-v2 do Hugging Face.
79
- 3. **Armazenamento de Vetores**: Os embeddings são armazenados em um banco de dados FAISS para recuperação eficiente.
80
- 4. **Processamento de Perguntas**: As perguntas dos usuários são contextualizadas com base no histórico do chat.
81
- 5. **Recuperação de Informações**: O sistema recupera os chunks de texto mais relevantes com base na pergunta.
82
- 6. **Geração de Respostas**: O modelo sabia-3 da Maritaca AI gera uma resposta em Português do Brasil com base nos chunks recuperados e na pergunta.
83
- 7. **Manutenção do Histórico**: O histórico do chat é mantido para fornecer contexto em conversas contínuas.
84
 
85
- ## Funcionalidades Especiais
86
 
87
- - Formatação especial para análise de documentos jurídicos
88
- - Processamento detalhado de documentos da Lei de Acesso à Informação (LAI)
89
- - Sistema de cache para melhor performance
90
- - Tratamento de erros robusto
91
- - Interface adaptativa que mantém o contexto da conversa
92
 
93
- ## Avisos Importantes
94
 
95
- - Não compartilhe documentos contendo informações sensíveis ou confidenciais
96
- - As respostas geradas pela IA podem conter erros ou imprecisões
97
- - Sempre verifique as informações com as fontes originais
98
- - Este projeto é para fins educacionais e de demonstração
99
- - Use com responsabilidade e em conformidade com as políticas de uso das APIs
100
 
101
- ## Contribuições
102
 
103
- Contribuições são bem-vindas! Por favor:
104
- 1. Faça um fork do projeto
105
- 2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
106
- 3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
107
- 4. Push para a branch (`git push origin feature/AmazingFeature`)
108
- 5. Abra um Pull Request
109
 
110
- ## Licença
111
 
112
  [MIT License](LICENSE)
113
 
114
- ## Citação
115
 
116
- Se você usar este projeto em sua pesquisa ou aplicação, por favor cite:
117
 
118
  ```
119
  @software{chatbot-maritacaai-pdfs,
 
14
  [![Hugging Face Spaces](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/reichaves/Chatbot-with-MaritacaAI-for-PDFs)
15
  [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://chatbotmaritacaai-jkiyzmcjcuvduw5dzymwu5.streamlit.app/)
16
 
17
+ This project implements a conversational Retrieval-Augmented Generation (RAG) system using Streamlit, LangChain, and large language models from [MaritacaAI](https://www.maritaca.ai/) - a Brazilian startup focused on specializing language models for specific domains and languages - specialized in Brazilian Portuguese. The application allows users to upload PDF documents, ask questions about their content, and maintain a chat history for context in ongoing conversations.
18
 
19
+ ## Author
20
 
21
  Reinaldo Chaves ([email protected])
22
 
23
+ ## Features
24
 
25
+ - Streamlit user interface with dark theme and responsive layout
26
+ - Upload and processing of multiple PDF files
27
+ - Document processing using LangChain and FAISS
28
+ - Answer generation using MaritacaAI's sabia-3 model specialized in Brazilian Portuguese
29
+ - Text embeddings using Hugging Face's all-MiniLM-L6-v2 model
30
+ - Persistent chat history to maintain conversation context
31
+ - Sidebar with important user guidelines
32
+ - Token count per response
33
+ - Special formatting for legal documents and FOI (Freedom of Information) requests
34
 
35
+ ## Requirements
36
 
37
  - Python 3.7+
38
  - Streamlit
 
41
  - PyPDF2
42
  - MaritalkAI
43
  - HuggingFace Embeddings
44
+ - Other dependencies listed in `requirements.txt`
45
 
46
+ ## Installation
47
 
48
+ 1. Clone this repository:
49
  ```
50
  git clone https://github.com/reichaves/chatbotmaritacaai.git
51
  cd chatbotmaritacaai
52
  ```
53
 
54
+ 2. Install dependencies:
55
  ```
56
  pip install streamlit langchain langchain_huggingface maritalk faiss-cpu tenacity cachetools
57
  ```
58
 
59
+ 3. Configure the necessary API keys:
60
+ - Maritaca AI API key (https://plataforma.maritaca.ai/)
61
+ - Hugging Face API token (https://huggingface.co/docs/hub/security-tokens)
62
 
63
+ ## Usage
64
 
65
+ 1. Run the Streamlit application:
66
  ```
67
  streamlit run app.py
68
  ```
69
 
70
+ 2. Open your browser and access the local address shown in the terminal.
71
+ 3. Enter your API keys when prompted.
72
+ 4. Upload one or more PDF files.
73
+ 5. Ask questions about the documents' content in the text input box.
74
 
75
+ ## How it Works
76
 
77
+ 1. **Document Upload**: Users upload PDF files, which are processed and split into smaller chunks.
78
+ 2. **Embedding Creation**: The text is converted into embeddings using Hugging Face's all-MiniLM-L6-v2 model.
79
+ 3. **Vector Storage**: Embeddings are stored in a FAISS database for efficient retrieval.
80
+ 4. **Question Processing**: User questions are contextualized based on chat history.
81
+ 5. **Information Retrieval**: The system retrieves the most relevant text chunks based on the question.
82
+ 6. **Answer Generation**: MaritacaAI's sabia-3 model generates an answer in Brazilian Portuguese based on the retrieved chunks and question.
83
+ 7. **History Maintenance**: Chat history is maintained to provide context in ongoing conversations.
84
 
85
+ ## Special Features
86
 
87
+ - Special formatting for legal document analysis
88
+ - Detailed processing of Freedom of Information (FOI) documents
89
+ - Cache system for better performance
90
+ - Robust error handling
91
+ - Adaptive interface that maintains conversation context
92
 
93
+ ## Important Notices
94
 
95
+ - Do not share documents containing sensitive or confidential information
96
+ - AI-generated responses may contain errors or inaccuracies
97
+ - Always verify information with original sources
98
+ - This project is for educational and demonstration purposes
99
+ - Use responsibly and in compliance with API usage policies
100
 
101
+ ## Contributions
102
 
103
+ Contributions are welcome! Please:
104
+ 1. Fork the project
105
+ 2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
106
+ 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
107
+ 4. Push to the branch (`git push origin feature/AmazingFeature`)
108
+ 5. Open a Pull Request
109
 
110
+ ## License
111
 
112
  [MIT License](LICENSE)
113
 
114
+ ## Citation
115
 
116
+ If you use this project in your research or application, please cite:
117
 
118
  ```
119
  @software{chatbot-maritacaai-pdfs,