PlatoAI

A Socratic dialogue platform where Plato and Socrates debate you across five dialogue modes, with every response grounded in the primary texts and backed by visible source citations.

Visit project

Product screens

Dialogue Home

Suggested questions and dialogue modes lead straight into a conversation.

Dialogue Home

Socratic Dialogue

Plato and Socrates debate a modern dilemma in distinct streamed voices.

Socratic Dialogue

Source Citations

Each response is grounded in retrieved passages with relevancy scores.

Source Citations

The Modes of Dialogue

Five modes change the interaction contract, from Elenchus to Symposium.

The Modes of Dialogue
Execution Snapshot

The strongest signal first, then the operating context around it.

Lead Signal

Cited source textsGrounding across a shipped ai / rag build.

Delivery Role

Solo build: embeddings pipeline over the source texts, retrieval layer, dialogue orchestration and prompt design, and the full Next.js frontend.

Product Context

Built to test whether retrieval and prompt design could hold an LLM to a specific philosophical method and corpus. The hard part is not making a chatbot quote Plato - it is making it question like Socrates without drifting from the texts.

5 dialogue modes

Interaction

Next.js + Pinecone

Stack

Launch Posture

The stack and feature set were shaped for production use, not just a polished demo.

Next.jsTypeScriptOpenAIRAGVector DB

Build Narrative

A clean story from constraint to shipped outcome.

01

Problem

01

Reading Plato is passive and dense - and the thing that made his philosophy work, live Socratic questioning, is exactly what a static text cannot do. Generic chatbots can play the character, but they answer from general training data and drift away from the source material.

Constraint mapping
02

Build

02

PlatoAI turns the primary texts into an interlocutor. Users open a conversation with Plato and Socrates in one of five modes - from classic dialogue to a strict Elenchus interrogation to a four-voice Symposium debate - and every exchange is grounded in retrieved passages from the actual works, with relevancy-scored citations one click away.

System design
03

Outcome

03

A focused demonstration of the full RAG stack - ingestion, retrieval, grounded generation, and citation UX - wrapped in a product people enjoy using.

Production outcome

Framing

Defining the product and the operating constraints.

Built to test whether retrieval and prompt design could hold an LLM to a specific philosophical method and corpus. The hard part is not making a chatbot quote Plato - it is making it question like Socrates without drifting from the texts. I treated ingestion as the product foundation - chunking the texts so retrieved passages carry coherent arguments, then building each dialogue mode as a prompting strategy over that shared retrieval core. The UI stays minimal and text-forward, with the Source Texts panel one click away.

Systems Index

Next.js
TypeScript
OpenAI
RAG
Vector DB

Key features in scope

Five dialogue modes - Classic Dialogue, The Elenchus, The Symposium, Devil's Advocate, and Modern Dilemmas
Source citations with relevancy scores and readable transcripts for every dialogue
Multi-speaker streamed dialogues between Plato, Socrates, and guest figures
Saved dialogue library, curated featured dialogues, and shareable conversations

Role and product posture

Role: Solo build: embeddings pipeline over the source texts, retrieval layer, dialogue orchestration and prompt design, and the full Next.js frontend.
Category: AI / RAG

Engineering

Building the core system and choosing where to be opinionated.

PlatoAI turns the primary texts into an interlocutor. Users open a conversation with Plato and Socrates in one of five modes - from classic dialogue to a strict Elenchus interrogation to a four-voice Symposium debate - and every exchange is grounded in retrieved passages from the actual works, with relevancy-scored citations one click away.

Systems Index

React
Next.js
TypeScript
Tailwind CSS
Framer Motion
Next.js API routes
Node.js
Pinecone

Architecture choices

Embedding pipeline that chunks and vectorizes the works of Plato and Xenophon into Pinecone
Retrieval flow that scores passages against each prompt and feeds them into the dialogue context, surfaced to users as an inspectable Source Texts panel
Multi-speaker orchestration that keeps Plato, Socrates, and Symposium guests in distinct voices within one streamed response
Five dialogue modes implemented as distinct prompting strategies over the same retrieval core
Next.js App Router frontend with streaming responses, a saved dialogue library, and shareable dialogues

Key decisions

Prompted for the Socratic method, not answers - the system questions the user toward a conclusion instead of lecturing
Grounded every response in retrieved passages from the primary texts so the philosophy stays Plato's, not the model's
Exposed the retrieval instead of hiding it - each dialogue shows which passages informed it, with relevancy scores and readable transcripts
Treated modes as products - The Elenchus, The Symposium, Devil's Advocate, and Modern Dilemmas each change the interaction contract, not just the tone

Hardening

Turning the build into something resilient enough to matter.

A focused demonstration of the full RAG stack - ingestion, retrieval, grounded generation, and citation UX - wrapped in a product people enjoy using.

Systems Index

A complete RAG implementation with the retrieval made visible - citations, relevancy scores, and source transcripts inside the product
Prompt engineering for method and voice rather than just content - five modes with different interaction contracts
A self-directed product with real polish: modes, library, sharing, and a distinct visual identity

Results after shipping

Live in production with five dialogue modes, source citations, a dialogue library, and shareable conversations
Dialogues hold distinct character voices across long exchanges while staying anchored to retrieved source passages
Doubles as a legible RAG demonstration piece - the Source Texts panel shows exactly which passages grounded each response

Constraints

Responses had to stay anchored to the actual works - no modern concepts hallucinated into ancient mouths
Multiple distinct speakers had to hold their voices within a single streamed response
Retrieval had to stay fast enough for conversational turn-taking

Lessons

What the build taught me.

01

Chunking strategy decides retrieval quality - passages must carry a complete thought to ground a philosophical argument

02

Prompting for method and tone, like Socratic questioning, is harder than prompting for facts

03

Showing sources changes how users treat AI output - the citations panel turns a novelty into a study tool