Projeto Psique

Assistência Psicológica | Django

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

  1. O profissional envia a gravação e marca a opção de transcrição.
  2. Um sinal `post_save` dispara uma cadeia de tarefas com django-q.
  3. A tarefa `transcribe_recording` baixa o vídeo do Cloudinary e gera transcrição e segmentos com Whisper.
  4. A tarefa `task_rag` quebra a transcrição em chunks e atualiza o índice FAISS do paciente.
  5. A tarefa `summary_recording` produz resumo em tópicos e nota de humor usando agentes baseados em LangChain.
  6. 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.