PlatoAI

A philosophy dialogue app with five conversation modes, retrieval from primary texts, and a source panel for checking passages.

Project at a glance

My responsibility
Built the application solo, including text embeddings, retrieval, dialogue prompts, speaker coordination, and the Next.js interface.
AI / RAG
I built this to test whether retrieval and prompts could keep a dialogue focused on a philosophical method and its source texts. I wanted the speakers to examine arguments through questions while staying consistent with the supplied passages.
Grounding
Cited source texts
Interaction
5 dialogue modes
Stack
Next.js + Pinecone
Next.jsTypeScriptOpenAIRAGVector DB
Visit projectView resume

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

The work

Problem, implementation, and result.

01

Problem

01

I wanted to explore whether interactive dialogue could help readers examine philosophical arguments and refer back to the original texts.

Problem
02

Build

02

I built dialogue modes that prompt Plato, Socrates, and other speakers to question and debate. The application retrieves relevant passages from indexed texts and displays them in a Source Texts panel.

System design
03

Outcome

03

The application combines text ingestion, retrieval, dialogue prompting, and source inspection. The source panel shows the retrieved context without claiming that every answer faithfully represents it.

Delivered behavior

Framing

Scope and constraints.

I built this to test whether retrieval and prompts could keep a dialogue focused on a philosophical method and its source texts. I wanted the speakers to examine arguments through questions while staying consistent with the supplied passages. I split the texts into passages that preserve enough context to follow an argument. Each dialogue mode uses its own prompts with the same retrieval system. Readers can open the Source Texts panel beside the conversation.

Technologies

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

Responsibility and context

Role: Built the application solo, including text embeddings, retrieval, dialogue prompts, speaker coordination, and the Next.js interface.
Category: AI / RAG

Engineering

Architecture and decisions.

I built dialogue modes that prompt Plato, Socrates, and other speakers to question and debate. The application retrieves relevant passages from indexed texts and displays them in a Source Texts panel.

Technologies

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 that scores passages for each prompt and supplies them as dialogue context, with a Source Texts panel for readers to inspect them
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

Prompt for questions and argument rather than only explanatory answers
Retrieve passages from the indexed works for each dialogue context
Expose source passages and relevance scores in the interface
Use distinct prompts for each dialogue mode over the same retrieval system

Results

Results and limitations.

The application combines text ingestion, retrieval, dialogue prompting, and source inspection. The source panel shows the retrieved context without claiming that every answer faithfully represents it.

Delivered behavior

Built five dialogue modes with streamed responses, a saved dialogue library, and sharing
Added a Source Texts panel with retrieved passages and relevance scores
Connected multi-speaker prompting to a shared retrieval pipeline

Constraints

Keep the dialogue focused on the source material
Distinguish multiple speakers within a streamed response
Keep retrieval responsive enough for conversational use

Lessons

What the build taught me.

01

Chunks need enough context to preserve a philosophical argument

02

Dialogue method and speaker voice need separate attention in prompt design

03

Source inspection should be part of the reading experience