GTUtor: Sistema de bate-papo dinâmico com vários assuntos
GTUtor é um sistema de tutoria inteligente projetado especificamente para alunos da Universidade Tecnológica de Gujarat (GTU). Ele combina o poder do Gemini Pro AI do Google com um sistema de conhecimento baseado em documentos para fornecer respostas precisas e conscientes do contexto em vários assuntos.
Características
- Suporte multiassunto : crie e gerencie vários assuntos com bases de conhecimento independentes
- ? Integração de documentos : carregue documentos PDF ou forneça URLs para aprimorar a base de conhecimento
- Interface de bate-papo inteligente : sistema de conversação dinâmica com rastreamento de histórico
- ? Respostas baseadas no contexto : combina conhecimento de documentos com os recursos do Gemini Pro
- Gerenciamento de banco de dados : ferramentas integradas para gerenciar bancos de dados de documentos para cada assunto
- ? Focado na GTU : adaptado especificamente para o currículo e cursos da GTU
- ? Armazenamento persistente : salva automaticamente históricos de bate-papo e dados de assuntos
- ? Funcionalidade de cópia : cópia fácil de perguntas e respostas
Instalação
- Clone o repositório:
git clone https://github.com/pruthakjani5/GTUtor.git
cd gtutor
- Crie um ambiente virtual e ative-o:
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivate
- Instale as dependências necessárias:
pip install -r requirements.txt
- Crie um arquivo
.env
na raiz do projeto e adicione sua chave de API Gemini:
GEMINI_API_KEY=your_api_key_here
Se você precisar de uma nova configuração sem o banco de dados de teste e bate-papos anteriores, exclua a pasta "gtutor_data", executando app.py criará uma nova.
Dependências Necessárias
- iluminado
- solicitações
- pypdf
- google-generativoai
- cromadb
- python-dotenv
- arquivo temporário
- redução
- área de transferência
Uso
- Inicie o aplicativo Streamlit:
Acesse o aplicativo através do seu navegador (normalmente em http://localhost:8501
)
Selecione ou crie um assunto no menu suspenso
Faça upload de documentos PDF ou forneça URLs de PDF para construir a base de conhecimento do assunto
Comece a fazer perguntas na interface de chat
Recursos em detalhes
Gerenciamento de assuntos
- Crie novos assuntos
- Excluir assuntos existentes
- Limpar bancos de dados de assuntos
- Acompanhe a contagem de documentos por assunto
Gestão de Documentos
- Carregar arquivos PDF (até 10 MB)
- Adicionar documentos via URL
- Extração e fragmentação automática de texto
- Armazenamento persistente de dados de documentos
Interface de bate-papo
- Resposta a perguntas em tempo real
- Acompanhamento do histórico de bate-papo
- Copie perguntas e respostas
- Excluir mensagens individuais
- Inicie novas conversas
- UI aprimorada com avatares de usuário/bot
Geração de respostas
- Respostas baseadas no contexto usando documentos carregados
- Utilize o conhecimento do Gemini Pro quando necessário
- Respostas estruturadas e formatadas
- Tom acadêmico com foco curricular GTU
Estrutura do Projeto
gtutor/
├── app.py # Main application file
├── .env # Environment variables
├── requirements.txt # Project dependencies
└── gtutor_data/ # Data directory
├── dbs/ # Subject databases
├── chat_histories/ # Conversation histories
└── subjects.json # Subject list
Implementação Técnica
- Processamento de documentos : usa
pypdf
para extração de texto PDF com fragmentação automática - Banco de dados vetorial : implementa
chromadb
para armazenamento e recuperação eficiente de texto - UI Framework : construído com
streamlit
para interface web responsiva - Integração de IA : utiliza a API Gemini Pro do Google para respostas inteligentes
- Persistência de dados : armazenamento baseado em JSON para históricos de bate-papo e dados de assuntos
- Suporte Markdown : Formatação de texto aprimorada para respostas
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar uma solicitação pull.
Licença
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.
Agradecimentos
- IA generativa do Google para API Gemini Pro
- Streamlit para a estrutura da web
- ChromaDB para implementação de banco de dados vetorial
Apoiar
Para suporte e dúvidas, abra um problema no repositório GitHub ou entre em contato com os mantenedores.