AI-Powered Psychological Profiling System
← Project Index AI-Powered Psychological Profiling System

AI-Powered Psychological Profiling System

A conversational AI that quietly builds a psychological profile from how you talk -; Big Five, MBTI cognitive functions, and emotional trajectory, all inferred from ordinary dialogue and drawn onto a live dashboard. Runs locally against Ollama.

Archived Started: Summer 2025 Updated: Summer 2025

Overview

The idea: instead of a 200-item questionnaire, just have a conversation and let the system read the personality out of the language. The profile build is a Flask app that manages a dialogue, runs NLP over each turn, and incrementally estimates Big Five traits, the eight Jungian cognitive functions behind MBTI, and an emotional state that it tracks over time -; then streams all of it to a web dashboard via WebSockets as you talk.

The whole thing runs on a local LLM through Ollama, which was the point: a tool that pokes at your own psychology should not be shipping the transcript to someone else's server.

Background

This grew out of a longer fascination with self-assessment instruments. There's a companion psych-assessment-tool -; a more conventional unified test harness that runs a battery of established questionnaires (including a Primal World Beliefs assessment) and scores them -; and this profiling system is the inverted version of that idea: derive the same dimensions from natural behaviour rather than from forced-choice answers.

It's explicitly a self-examination tool. The goal was a mirror, not a screening device for judging other people.

How It Works

The system is built from three cooperating modules sitting on a Flask + WebSocket spine:

  • Core conversation manager -; runs the dialogue, does the baseline NLP, and maintains the running Big Five estimate.
  • Advanced NLP module -; BERT-based personality detection with ensemble methods, emotion analysis structured on Plutchik's wheel, a VAD (valence-arousal-dominance) emotional-state tracker, and a knowledge graph that maps the relationships mentioned in conversation.
  • MBTI visualization -; scores all eight cognitive functions (Ti, Te, Fi, Fe, Ni, Ne, Si, Se), works out the dynamic function stack, and renders the real-time Plotly dashboard.

Underneath: SQLite for persistent profiles with automated backups, Redis for caching and rate limiting, session management for multi-user runs, and a Docker setup so the whole stack comes up with one compose command. The LLM calls route through an Ollama conversation manager rather than a hosted API.

Where It Landed

Archived as a working prototype. It produced real saved profiles -; there's a database of them and a stack of timestamped assessment results from the runs -; but it stayed a personal experiment rather than something I hardened for anyone else to use.

  • End-to-end loop works: talk to it, watch the dashboard update live, get a stored profile out the other side.
  • Three analysis modules (Big Five, MBTI functions, emotional trajectory) all feed the same session.
  • Whether language-derived typing is actually valid is the open question -; fun to build, genuinely hard to validate.