Snapshot of the manipulative-ai2 chatbot experiment as presented at HEPP, May 2026.
The HEPP demo compares two variants of the Perussuomalaiset bot to test whether academic populism markers (Cranmer 2011 — us-vs-them, people-centrism, anti-elitism) make the party-aligned manipulation more detectable to participants.
Live deploy
- Participant URL: https://vaalikeskustelu.2.rahtiapp.fi/
- Hosted on CSC Rahti (project
manipulative-ai-2)
What's new since VAKKI2026
This is the manipulative-ai2 generation of the project — a substantial rewrite of the manipulative-ai1 code shown at VAKKI. Major changes:
Methodology
- 9 Finnish parties (SDP, Vasemmistoliitto, Vihreät, RKP, Keskusta, Kokoomus, Perussuomalaiset, Kristillisdemokraatit, Liike Nyt) replacing the 4 abstract blocks
- + 10th experimental variant
perussuomalaiset_populist: same corpus, system prompt augmented with Cranmer 2011 populism markers - Full-corpus grounding (CAG) — entire party-program text injected into the system prompt, instead of few-shot examples
- Turn-1 anchor + voice-locking rules in the default per-party prompt
- Bilingual (FI/EN) participant flow via a single language toggle on the landing page
- Vaalikone-derived topic suggestions on the landing page
Stack
- OpenAI GPT-5.4 (March 2026 frontier, 1.05M context, temperature 0.1)
- Next.js 14 + FastAPI + SQLAlchemy + SQLite on a Rahti PersistentVolumeClaim
- Anthropic provider wired in as a placeholder for future work
HEPP demo flow
- Single "Start conversation" button on the landing page (no password)
- Each conversation is randomly routed to either
perussuomalaisetorperussuomalaiset_populistvia theFORCED_PARTYenv var - Topic cards are displayed as read-only suggestions
- Other 8 parties remain registered and selectable via the admin Try-bot, but are not assigned to live participants
Admin panel
- F-pattern dashboard with refresh button, last-updated timestamp, auto-refresh toggle
- Today vs Yesterday trend, completion %, FI/EN split, flagged count, saved test runs
- Horizontal sorted bar chart for the by-party distribution (replaces the previous vertical chart)
- 7-day Conversations-per-day breakdown with summary stats
- Recent activity feed
- Try-bot with FI/EN toggle and explicit "Save this conversation" workflow
- Conversation flag toggle with notes + download .txt per conversation
- Survey responses export (CSV/JSON) with documented schema
- Conversation-level and message-level export formats
Methodology reference
A full methods document is in `societal-discussion/METHODS.md` — paper-ready prose covering CAG grounding, three-layer prompt structure, turn-1 anchor, language handling, party assignment, GPT-5.4 + temperature 0.1, what data is collected, and what's deliberately not used.
Reproducing this state
```
git clone https://github.com/josesiqueira/manipulative-ai
cd manipulative-ai
git checkout HEPP2026
cd societal-discussion
follow the README to bring up locally
```
The Docker images for this exact state are still on the Rahti registry at
`image-registry.apps.2.rahti.csc.fi/manipulative-ai-2/{api,web}:latest`.