Visão geral
Psiquê é uma aplicação web desenvolvida em Django para apoiar profissionais de psicologia na gestão de pacientes, registro de gravações de sessões, transcrição automática de áudio e vídeo, geração de resumos e avaliação de humor com apoio de IA. O sistema também treina uma base vetorial por paciente para permitir consultas conversacionais sobre o histórico das sessões.
Funcionalidades
- Cadastro e gestão de pacientes no módulo de usuários.
- Upload de gravações diretamente pelo dashboard de consultas.
- Armazenamento de vídeos em Cloudinary.
- Transcrição automática com OpenAI Whisper.
- Geração de resumo objetivo da sessão e avaliação de humor de 1 a 5.
- Base vetorial FAISS por paciente com metadados de data e gravação.
- Chat com recuperação contextual via RAG e respostas em streaming.
- Envio de resumos para WhatsApp Cloud API quando configurado.
- Processamento assíncrono com django-q2 e Redis.
Tecnologias
- Django 5 como framework principal.
- PostgreSQL hospedado no Railway.
- Redis com django-q2 para filas e workers.
- Gunicorn e Whitenoise para entrega da aplicação.
- Cloudinary para arquivos de mídia.
- OpenAI API com Whisper e GPT-4.1-mini.
- LangChain e FAISS para a camada RAG.
Fluxo de processamento
- O profissional envia a gravação e marca a opção de transcrição.
- Um sinal `post_save` dispara uma cadeia de tarefas com django-q.
- A tarefa `transcribe_recording` baixa o vídeo do Cloudinary e gera transcrição e segmentos com Whisper.
- A tarefa `task_rag` quebra a transcrição em chunks e atualiza o índice FAISS do paciente.
- A tarefa `summary_recording` produz resumo em tópicos e nota de humor usando agentes baseados em LangChain.
- O dashboard exibe o status da transcrição, do resumo e o identificador da gravação para consulta detalhada.
Módulos principais
core/settings.py
Centraliza apps, banco, Redis, Cloudinary, OpenAI e arquivos estáticos.
consultas/views.py
Orquestra dashboard, upload de gravações, chat e visualização das consultas.
consultas/tasks.py
Executa as etapas assíncronas de transcrição, RAG e resumo.
consultas/agents.py
Concentra os agentes para resumo, avaliação de humor e contexto vetorial.
consultas/signals.py
Dispara automaticamente o encadeamento de tarefas ao salvar novas gravações.
entrypoint.prod.sh
Prepara migrações, estáticos, worker qcluster e inicialização em produção.
Infraestrutura
O README também documenta a configuração por variáveis de ambiente para PostgreSQL, Redis, OpenAI, Cloudinary e WhatsApp Cloud API. O deploy foi pensado para Railway, com serviços separados para aplicação web, banco e Redis.