Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

✨ SocialMindScan

AI-powered text insights for mental-health awareness

A full-stack Final Degree Project (TFG) that turns personal text into understandable trends, with care and responsible AI at its core.

Django · TensorFlow · PyTorch · BERT · Hugging Face

6 ML models · 2 chatbot modes · 1 end-to-end web application

English · Español · Getting started · Empezar


🇬🇧 English

The idea

SocialMindScan is a full-stack Django application created for a Final Degree Project. It gives people a private space to write or upload personal text, explore AI-generated signals over time, and talk to a supportive chatbot that responds with recent context in mind.

It brings together product design, backend development, data persistence, NLP, neural-network inference, external AI integration, and responsible-technology thinking in one usable project.

Important

SocialMindScan is an educational and research project. It does not provide medical diagnoses, crisis intervention, or a replacement for professional care.

Why it stands out

🧠 Applied AI 💬 Human-centred product ⚙️ Full-stack engineering
Runs six trained CNN and GRU models using Word2Vec and BERT representations. Makes results easier to follow through post history, labels, trend views, and a contextual support chatbot. Includes authentication, database models, asynchronous endpoints, configurable AI models, local/remote inference, and a Django UI.

What you can do

  • ✍️ Write an entry or upload a .txt file.
  • 📊 Analyse each entry for depression-related and suicide-risk-related signals, then follow the evolution over time.
  • 🧩 Choose the model used for each task:
    • Depression: Word2Vec + CNN, Word2Vec + GRU, or BERT + GRU.
    • Suicide-risk signals: BERT + CNN, Word2Vec + GRU, or BERT + GRU.
  • 💭 Chat with a context-aware support assistant in remote or local mode.
  • 🔐 Create an account, manage a profile, and remove the account when needed.

Built with

Layer Tools used
Web application Python, Django 5, HTML templates, JavaScript
Data SQLite, Django ORM
Machine learning TensorFlow/Keras, PyTorch, Transformers
NLP Word2Vec, BERT
Generative AI Hugging Face Inference Providers through an OpenAI-compatible client; optional Qwen/Qwen2.5-0.5B-Instruct local model

How it works

Your text
   ↓
Cleaning + Word2Vec / BERT embeddings
   ↓
Selected CNN or GRU model
   ↓
Scores, labels, history, and progress views
   ↓
Optional context-aware support chatbot

Getting started

You will need: Python 3.10+, Git, and an Internet connection the first time external model resources are downloaded. Keep around 4 GB of free disk space; the local chatbot may need additional RAM and storage.

git clone https://github.com/norapfr/SocialMind_APP.git
cd SocialMind_APP

# Create and activate a virtual environment
python -m venv .venv
# macOS / Linux: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

To enable the remote chatbot or download the optional local chatbot model, create portal/.env:

HF_API_KEY=your_hugging_face_token

Then run the application:

cd portal
python manage.py migrate
python manage.py runserver

Open http://127.0.0.1:8000 in your browser. The analysis models do not require this token, although their external resources may still download on first use.

Project map

SocialMind_APP/
├── portal/
│   ├── manage.py                 # Django entry point
│   ├── portal/                   # Settings and URL routing
│   ├── socialApp/                # App logic, templates, forms, and data models
│   │   ├── chatbot.py            # Remote and local chatbot modes
│   │   └── utils/                # Text processing, embeddings, ML inference, Keras models
│   └── static/                   # Visual assets
└── requirements.txt

Responsible AI and production notes

  • Model scores are probabilistic estimates. They can be inaccurate or biased and are not suitable as the sole basis for decisions about a person's safety or care.
  • The system analyses text only; it has no clinical history or sufficient context to diagnose anyone.
  • If someone may be in immediate danger, contact local emergency services or an appropriate crisis support service.
  • This repository is configured for local development. A production deployment requires a secure SECRET_KEY, DEBUG = False, suitable ALLOWED_HOSTS, protected secrets, and production-grade database and security settings.

🇪🇸 Español

La idea

SocialMindScan es una aplicación full-stack en Django creada para un Trabajo de Fin de Grado. Ofrece un espacio para redactar o subir texto personal, explorar señales generadas por IA a lo largo del tiempo y conversar con un chatbot de apoyo que tiene en cuenta el contexto reciente.

El proyecto reúne diseño de producto, desarrollo backend, persistencia de datos, PLN, inferencia con redes neuronales, integración de IA externa y una visión responsable de la tecnología en una aplicación funcional.

Important

SocialMindScan es un proyecto educativo y de investigación. No proporciona diagnósticos médicos, intervención en crisis ni sustituye la atención profesional.

Por qué destaca

🧠 IA aplicada 💬 Producto centrado en las personas ⚙️ Ingeniería full-stack
Ejecuta seis modelos CNN y GRU entrenados con representaciones Word2Vec y BERT. Presenta los resultados mediante historial, etiquetas, evolución temporal y un chatbot de apoyo contextual. Incluye autenticación, modelos de datos, endpoints asíncronos, modelos de IA configurables, inferencia local/remota e interfaz Django.

Qué permite hacer

  • ✍️ Escribir una entrada o subir un archivo .txt.
  • 📊 Analizar cada entrada para obtener señales relacionadas con depresión y riesgo suicida, y seguir su evolución.
  • 🧩 Seleccionar el modelo de cada tarea:
    • Depresión: Word2Vec + CNN, Word2Vec + GRU o BERT + GRU.
    • Señales de riesgo suicida: BERT + CNN, Word2Vec + GRU o BERT + GRU.
  • 💭 Conversar con un asistente de apoyo contextual en modo remoto o local.
  • 🔐 Crear una cuenta, gestionar el perfil y eliminar la cuenta cuando sea necesario.

Tecnologías

Capa Tecnologías
Aplicación web Python, Django 5, plantillas HTML, JavaScript
Datos SQLite, ORM de Django
Machine learning TensorFlow/Keras, PyTorch, Transformers
PLN Word2Vec, BERT
IA generativa Proveedores de inferencia de Hugging Face mediante un cliente compatible con OpenAI; modelo local opcional Qwen/Qwen2.5-0.5B-Instruct

Cómo funciona

Tu texto
   ↓
Limpieza + embeddings Word2Vec / BERT
   ↓
Modelo CNN o GRU seleccionado
   ↓
Puntuaciones, etiquetas, historial y evolución
   ↓
Chatbot de apoyo contextual opcional

Puesta en marcha

Necesitas: Python 3.10 o superior, Git y conexión a Internet la primera vez que se descarguen recursos externos de los modelos. Reserva unos 4 GB de espacio libre; el chatbot local puede requerir RAM y espacio adicional.

git clone https://github.com/norapfr/SocialMind_APP.git
cd SocialMind_APP

# Crea y activa un entorno virtual
python -m venv .venv
# macOS / Linux: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

Para utilizar el chatbot remoto o descargar el modelo local opcional, crea portal/.env:

HF_API_KEY=tu_token_de_hugging_face

Después, inicia la aplicación:

cd portal
python manage.py migrate
python manage.py runserver

Abre http://127.0.0.1:8000 en el navegador. Los modelos de análisis no requieren el token, aunque sus recursos externos podrían descargarse durante el primer uso.

Mapa del proyecto

SocialMind_APP/
├── portal/
│   ├── manage.py                 # Punto de entrada de Django
│   ├── portal/                   # Configuración y rutas
│   ├── socialApp/                # Lógica, plantillas, formularios y modelos de datos
│   │   ├── chatbot.py            # Modos remoto y local del chatbot
│   │   └── utils/                # Procesado de texto, embeddings, inferencia y modelos Keras
│   └── static/                   # Recursos visuales
└── requirements.txt

IA responsable y notas de producción

  • Las puntuaciones de los modelos son estimaciones probabilísticas. Pueden ser inexactas o estar sesgadas, y no deben ser la única base para tomar decisiones sobre la seguridad o atención de una persona.
  • El sistema analiza solo texto; no dispone de historial clínico ni del contexto suficiente para diagnosticar a nadie.
  • Si una persona puede estar en peligro inmediato, contacta con los servicios de emergencia locales o con un recurso de apoyo en crisis adecuado.
  • El repositorio está configurado para desarrollo local. Un despliegue en producción requiere una SECRET_KEY segura, DEBUG = False, ALLOWED_HOSTS adecuados, secretos protegidos y una base de datos y configuración de seguridad para producción.

About

AI-powered Django web app for personal text analysis, combining CNN/GRU models with Word2Vec and BERT to track mental-health-related signals and provide contextual chatbot support.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages