Building AI-Engine: My First Open-Source Project

A deep dive into AI-Engine, a drag-and-drop NLP tool I built as an Electron desktop app 6 years ago.

Six years ago, I started my journey into open-source with AI-Engine - a desktop application designed to simplify Natural Language Processing (NLP) workflows. Instead of writing complex server-side code to train chatbots or intent models, I wanted to create a visual workspace where anyone could do it.

The Vision

When I first dived into Artificial Intelligence, the barrier to entry felt incredibly high. Prototyping and deploying intent-based NLP models required setting up complex environments and writing extensive boilerplate code. I wanted to build a standalone visual interface that would let anyone connect AI components seamlessly.

The goal was simple: democratize NLP model creation.

Under the Hood

Unlike simple web wrappers, AI-Engine was built as a full-fledged Electron desktop application. Here is a breakdown of the architecture and stack:

  • The Visual Node Engine: I utilized a modified version of Flowy to handle the drag-and-drop node mechanics. This allowed users to visually chain intents, utterances, and responses.
  • The Core ML Library: The actual NLP heavy lifting was powered by NLP.js. It provided fast, on-device training for entity extraction and intent classification without relying on expensive cloud APIs.
  • Built-in Code Editor: For advanced users who needed custom scripts, I integrated the Monaco Editor (the same engine behind VS Code) directly into the app.
  • Cross-Platform Exports: The application was designed to export the trained models and UI wrappers to multiple platforms, including Web, React, Linux, Windows, and macOS.

The Workspace Experience

The interface was split into intuitive sections:

  • Teach: Where you provided the engine with training utterances and mapped them to intents.
  • Lab: A built-in testing ground to interact with the trained model in real-time and verify its accuracy.
  • Plugins: An extensible system to add new behaviors and integrations to the generated bots.

Looking Back

Building AI-Engine was a massive learning experience. I had to wear multiple hats - architecting the NLP pipeline, designing the drag-and-drop UI with jQuery and Materialize, and packaging a complex Node.js application into a distributable Electron binary.

While the AI landscape has evolved drastically over the last six years - moving from localized NLP models to massive cloud-based LLMs - the lessons I learned building this visual engine still influence how I design scalable, user-centric applications today.

You can check out the original repository on my GitHub: AI-Engine.