Alina Kuznetsova Project 4 of 4 · Back to index
IV. Project 4 · MSc module, Conversational Interfaces · Graded A

Piblo the Plutonian

A character-driven chatbot that makes a 10,000-record space-mission dataset feel personal. Piblo remembers you, writes you a story with a language model small enough to run locally, and answers questions about real missions in plain English. It was my first coding project.

Type
Rule-based dialogue with LLM generation and retrieval
Stack
Python, SmolLM-135M-Instruct
Data
10,000 space missions, from Kaggle
Code
git.arts.ac.uk, ConvInt_Project
IV.1The brief

Space data is dense and numerical. Most people won't read a dataset.

The brief was deliberately open: build a chatbot. I built Piblo, a visitor from Pluto, to carry real mission data inside a character people would actually want to talk to, so the facts land more easily than they would from a spreadsheet.

Being enjoyable mattered as much as being informative. Piblo listens, remembers small details about you, reacts with some humour, and says goodbye in a way that proves it was paying attention. Because it is code rather than a script, every conversation comes out differently.

IV.2Architecture

Three classes, one character.

Before writing any code I split Piblo into three classes, one per behaviour. Memory, storytelling and retrieval could each be tested on their own, then combined into a single voice.

Memory

PibloThePlutonian

Handles the conversation. Stores your name, the weather and your favourite food as attributes, and brings them back later, so the exchange feels personal rather than scripted.

Generation

StoryTellingBot

Runs SmolLM locally to write a short story about your favourite planet. Temperature 0.4 keeps it coherent while leaving room for invention.

Retrieval

SpaceMissionFactBot

Answers questions from the 10,000-record dataset. Finds the country anywhere in a natural sentence and pulls the year out with a regular expression.

IV.3A real session

Memory, story and retrieval in one exchange.

PibloGreetings human! I am Piblo from the planet Pluto. What do you call yourself?

MeSam

PibloI've never met an earthling called Sam before, how meteor-tastic! What's the weather like here on earth? I can't sense it through my spacesuit.

Samcold

PibloWell, I bet it's not as bad as Pluto, it averages -230°! And what do you like to eat? I'm fascinated by what I've heard about earth cuisine.

Samburgers

PibloThat sounds so alien to me! But I am curious to try it... one more question Sam, what's your favourite planet?

Samsaturn

PibloOh wow! My friend Moop was actually just orbiting there and told me about his travels.

LLMMoop the alien once visited saturn. Moop, the alien, was a towering creature with iridescent skin and a long, spindly tail. She had eyes that shone like stars. As she explored the planet, Moop encountered giant, crystal-encrusted mountains that rose from the earth, their peaks shrouded in a thick, velvety mist.

PibloOk, I feel like I have been waffling for too long! Why don't I answer a question for you now! I know a lot about earth space missions, give me a country and a year (between 2000 and 2025)!

Samtell me about a mission from usa 2010

PibloOh yes USA, 2010! I remember that one! It was the Integrated Scalable Policy mission, which set off from Port Angelaview. It cost 12.55 billion, used Reusable Rocket technology and lasted 147 days.

PibloAlright Sam, I must shoot off back to Pluto! Next time I visit you must make me some burgers to try.

IV.4Decisions

Small choices that made it feel natural.

Decision 1

Scan the dataset, don't demand exact input

Instead of expecting a country typed in a fixed format, the retrieval loops through every country in the dataset and checks whether it appears anywhere in the lower-cased message. "Tell me about a mission from usa 2010" just works, with no instructions needed.

Decision 2

Start the story mid-sentence

Prompting a small model with "Moop the alien once visited saturn" gave it a running start that "Tell a story about Saturn" never did. With temperature 0.4 and a regular expression that trims any unfinished last sentence, the output became far more natural and less generic.

IV.5User testing

Twenty testers: the character landed, the teaching needed saying out loud.

I tested with twenty participants, collecting Likert-scale ratings and open responses. The large majority described Piblo as fun, friendly or entertaining, and almost everyone used it without help, so the dialogue needed no onboarding.

Fewer people described it as educational. The teaching was built into what Piblo could do but never stated. The next version introduces Piblo as both a character and a source of real space knowledge from the first line, and widens retrieval beyond country and year so people can ask open questions.

20participants
10,000mission records searchable in plain English
135Mparameter model, running locally
Amodule grade