Inspiration

Every creative knows how hard it is to finish a project. As a fiction writer, I wanted an AI tool to help me craft narrative storylines for my characters, inspired by the existing literary corpus. I wanted to query books not by their author or resume, but by their storylines.

What it does

MOIRAI is:

  • a database of characters' emotional arc
  • a GUI to visualise characters and their arc
  • A tool to automatically extract characters and storylines from a user-provided novel

How I built it

I began by creating a database of characters and their arc using a third-party Python library called BookNLP. Once I had a working prototype running on the Railway hosting platform, I deployed it to Google Cloud. I then created a new version of the database by using Gemini agents.

I use Gemini's coding capabilities through and through to help me navigate the APIs, the tech stacks i was not familiar with.

Challenges I ran into

Learning cloud deployment. Running out of Gemini credits :')

Accomplishments that I am proud of

I'm proud of:

  • the original idea
  • climbing the learning curve

What I learned

Everything.

  • Database: learned SQLite, PostgreSQL, Gemini's gen-ai API, NLP techniques, prompt engineering
  • BackEnd: learned FastAPI, sqlalchemy, pydantic
  • FrontEnd: learned to use React, Vite and npm.
  • FullStack: learned to coordinate volumes, PostgreSQL database, front and back ends.
  • DevOps: learned to use Docker, testing environments
  • Hosting: learned to use Google Cloud CLI

What's next for MOIRAI

Continuing MOIRAI, I will:

  • Process more books to complete the database
  • Build a business-facing book recommender system that includes the characters' storylines
  • Leverage Gemini's API and connect it to the database to build a client-facing tool to craft storylines.
Share this project:

Updates