Morphie-Bot
A deliberately small assistant that chats, picks its own tools and answers from your documents, written to be read end to end.
- Role
- AI Engineer
- Timeline
- Dec 2024 – 2026
- Team
- Solo
- Status
- Parent of Morphie

The problem
Most assistant demos are either a chat box with no tools or a framework too large to read. Morphie-Bot is the small version: one Flask app where you can follow a question from the browser to the model, to a tool and back, with nothing hidden behind a build step.
What it does
Chat that picks its own tools
A calculator, the clock, web search or your uploaded documents. The model decides when a tool helps; you never choose one.
Document Q&A
Upload PDF, DOCX, TXT, CSV or JSON. Indexing is local with a dependency-free hashing embedding, so no embedding API is needed. It is lexical rather than truly semantic, and the README says so.
Live tool steps
Every tool call streams to the interface as it happens, over server-sent events.
Three providers
Mistral, OpenAI or Ollama, chosen with an environment variable. The sidebar badge turns red when the active provider is not configured.
Built to be read
It deliberately leaves out long-term memory, a design studio, in-app key management, many more providers and autonomous multi-step runs. Those live in its successor, Morphie.
How it flows
- Browser
- Flask API
- Provider (Mistral · OpenAI · Ollama)
- Tool call
- Local document index
- Streamed answer
Problems solved
Choosing a tool without hard-coded rules
ProblemKeyword matching for every capability is brittle.
SolutionThe model makes the structured tool-calling decision itself, and each step is shown to the user as it happens.
Document search without an embedding service
ProblemMost RAG examples need a paid embedding API and a vector database.
SolutionA hashing embedding plus keyword scoring, stored locally. It works offline and is honest about being lexical.
Staying small on purpose
ProblemEvery extra feature makes a learning project harder to read.
SolutionAnything heavier was moved into a separate project, Morphie, and this one stays a single readable Flask app with a plain-JavaScript front end.