/jc_omnivore

Primary LanguageTypeScriptMIT LicenseMIT

Omnivore

Omnivore app

About

Omnivore is an ongoing attempt to build an Omni meal planning app - whatever that may be! You can read more about the design behind here.

At present this Create react web app uses the latest OpenAI GPT-4o model, plus shows basic implementations of

  • Assistant api
  • File search (with Vector storage)
  • Function calling
  • Vision
  • Image generation
  • Chat completion
  • Text to speech
  • Speech to text

I plan to upgrade the app with examples of how to use GPT-4o's new audio and video capabilities in the near future.

Omnivore should only be run locally off your home computer/network and not deployed remotely, otherwise you'll expose your ENV variables. Omnivore uses Airtable as backend to help you get started. You can also access your shopping list, meal and recipes via the Airtable mobile app.

I hope you have a few fun weekends with it, learn about these amazing OpenAI APIs, and get inspired to designing your own amazing Omni apps. And hopefully get some cooking done too.

Getting started

1. Clone the repo

git clone https://github.com/joshuacrowley/omnivore.git
cd omnivore

2. Copy the .env.example file, and save it as .env.local.

3. Create your OpenAI API key

It will need read and write permissions. Set it as REACT_APP_OPENAI_API_KEY in .env.local.

4. Create your assistant ID

Set it as REACT_APP_ASSISTANT_ID in .env.local.

A good idea while we're still experimenting!

6. Copy the Omnivore (v2) Airtable Base to your Airtable account

Airtable base

7. Create an Airtable personal access token

Needs access to your copied base and data.records:read and data.records:write. Set it as REACT_APP_AIRTABLE_API_KEY in .env.local.

8. Copy the Airtable Base ID

You can pluck it from the url when viewing your base https://airtable.com/app.../. Set it as REACT_APP_AIRTABLE_BASE in .env.local.

9. Install dependencies

npm install

10. Run

npm run start

11. Navigate to http://localhost:3000.

12. Once you've added some recipes, you can create files to upload to your assistant.

npm run makeFiles

Contributions

Small or big are welcome :)

Feedback

You can reach me here -> https://twitter.com/ojschwa.

Resources