Inspiration

I've always repeated myself when building AI solutions, chaining custom prompts together to form a more structured, complex and contextual data model for UI's, but I wanted to make the process unbelievably simple! So I decided to create a simple language with a compiler (written in Node.js).

What it does

HeroML (Hero Markup Language) is a novel approach for setting up multi-step workflows to interact with AI models like OpenAI's GPT-3 and GPT-4.

How we built it

I first started brainstorming what the syntax would look like, and then studied up on what it takes to build programming languages. I first extract key aspects of the new HeroML syntax, convert the script to an Abstraction Syntax Tree, & then compute the node's to work in unison, returning the entire workflow of responses in one JSON object.

Challenges we ran into

A programming language has three essential parts, Sequence, Selection & Loops.

Sequence was somewhat straightforward, Selection was a little more difficult, since I had to generate new variables per sequence, and Loops were the hardest, since I had to implement a sub-step index or array type actions from HeroML, and properly display them in the JSON.

Accomplishments that we're proud of

  1. Learning about Abstract Syntax Trees
  2. Writing my first programming language that I actually want to use
  3. Contributing to the open-source community
  4. Creating a new file extension (.heroml) as well as publishing a Syntax Highlighter Extension on VSCode

What we learned

I learned to never underestimate engineers who work on creating, labelling & publicising commonplace languages like Javascript, Python, etc.

I also learned that engineers who build compilers are on a different level of genius.

What's next for HeroML

I want to reach out to some developers at Python, and thought I know this project is small, see if they have any tips on scaling this open-source solution to make it usable for others, to quickly build simple, but powerful custom apps.

Built With

Share this project:

Updates