Gromit: an Open Source AI Assistant for your Documentation

David Giffin
May 10, 2023
 • 
4
 Min
A dog wearing a glass and the prashe: Gromit OSS project
Join our newsletter
Get noticed about our blog posts and other high quality content. No spam.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Gromit: an Open Source AI Assistant for your Documentation

Here at Release we have been working on tooling to integrate with OpenAI and ChatGPT using many open source tools. We have learned a lot from integrating these tools into our product and wanted to give back to the Open Source community with our AI Assistant Gromit project. 

Imagine that you built an awesome app, wrote up the documentation and laid out all the relevant tidbits of information a new or tenured user would need to know. You keep on adding to your knowledge base to explain features, functionality and process in more detail, and somehow it raises more questions. Now users are pouring over even more information you generated to find answers to their questions. You could structure your documentation differently, add more tags, do more backlinks, etc., or you could have AI help you surface the right pieces, for the right user, depending on their question. This is how the idea for Gromit came about. 

Using embeddings and vector search databases we can search all of your documentation based on a question given to the AI Assistant. The relevant documentation from the search results are used to generate a prompt for OpenAI. We have an internal project called Gromit that provides a simple way to index your documentation using OpenAI’s embeddings and stores these indices in a Redis vector search database. 

We have broken out the underlying Ruby code into the Gromit Ruby Gem which allows developers to create their own API on top of the basic Gromit functionality. Gromit also provides a Rails engine which can be mounted in any Rails application which will give you the basic APIs out of the box within minutes. We are pleased to give back to the community and support open source projects by contributing this Gem to the open source community. 

Here is a quick example of how you can start using it:

To mount the Gromit Rails engine in your Rails project. First edit your <code inline>Gemfile</code> and add


gem “gromit”

After executing the <code inline>bundle</code> command, edit your <code inline>config/routes.rb</code> and add the following:


Rails.application.routes.draw do
  mount Gromit::Engine => "/"
end

You will need to add an environment variable with your OpenAI API access token. Edit your <code inline>.env</code> or <code inline>.env.local</code> and add the following:


OPENAPI_ACCESS_TOKEN=your-openai-token

To install the redis-stack-server do the following. Note, that if you are already running Redis you will need to stop/disable the old version of redis. The redis-stack-server provides additional search indexing functionality not provided in the default Redis server.


brew tap redis-stack/redis-stack
brew install redis-stack

At this point you can index all of your documentation that’s in markdown format like so:


bundle exec gromit-reindexer -s /path/to/your/docs

We have also created a Gromit Example Rails Application which also includes a Nextjs OpenAI Documentation Search user interface which is hooked into the Gromit Rails Application. 

Here is an example of Gromit in action using the Next.js frontend created by the folks at supabase

At Release we are strong believers in the power of open source. In our drive to create a development platform that better serves modern development teams, our founding team has been using and contributing to the open source community for years. Founded in 2019 Release was and still is built entirely with open source software!

Test our Gromit for yourself, tell us what you think and share it with others. We look forward to sharing more fun projects with the community in the future. 

Sign up here

About Release

Release is the simplest way to spin up even the most complicated environments. We specialize in taking your complicated application and data and making reproducible environments on-demand.

Speed up time to production with Release

Get isolated, full-stack environments to test, stage, debug, and experiment with their code freely.

Get Started for Free
Release applications product
Release applications product
Release applications product

Release Your Ideas

Start today, or contact us with any questions.