iamgreggarcia / codesherpa

A code interpreter and ChatGPT plugin.
MIT License
253 stars 34 forks source link
chatgpt-plugin code-interpreter fastapi gpt-4 gpt-4-0613 nextjs python

codesherpa

codesherpa is a code interpreter ChatGPT plugin and a standalone code interpreter (experimental). Read the Quickstart section to try it out.

You can use it as a

Standalone code interpreter demo:

https://github.com/iamgreggarcia/codesherpa/assets/16596972/96cb0694-fec6-4046-99d6-2e141b2a853f

ChatGPT Plugin demo:

https://github.com/iamgreggarcia/codesherpa/assets/16596972/b7afb034-6b74-42a3-9496-a912bcaf0f66

See more examples here

Recent Updates

Quickstart

NEW: Standalone code interpreter (experimental)

To try the new chat interface:

# Clone the repository
git clone https://github.com/iamgreggarcia/codesherpa.git

Add your OPENAI_API_KEY to a copy of .env.example:

cd codesherpa/frontend
cp .env.example .env.local

Install dependencies and startup the Next.js app:

pnpm install
pnpm dev

OR

npm install
npm run dev

Download the docker image OR run the codesherpa API locally (beware!):

Docker image:

# Pull the Docker image
docker pull ghcr.io/iamgreggarcia/codesherpa:latest

# Run the Docker image locally
docker compose up

Run the server locally (potentially risky!):

cd codesherpa
make dev

Navigate to http://localhost:3000. Expect bugs and inconsistencies.

Installation and Running codesherpa as a ChatGPT Plugin

Prerequisites

Ensure the following software is installed on your system:

Option 1: Using Docker image from Github Packages

# Pull the Docker image
docker pull ghcr.io/iamgreggarcia/codesherpa:latest

# Run the Docker image locally
docker compose up

Option 2: Using the repository and Make commands

# Clone the repository
git clone https://github.com/iamgreggarcia/codesherpa.git

# Navigate to the repository directory
cd codesherpa

# Build the Docker image using Make
make build-docker

# Run the Docker image locally
make run-docker-localserver

Option 3: Using the repository and Docker commands

Instead of Make commands, you can use the following Docker commands directly or use Docker Compose

# Clone the repository
git clone https://github.com/iamgreggarcia/codesherpa.git

# Navigate to the repository directory
cd codesherpa

# Build the Docker image
docker build -t codesherpa .

# Run the Docker image locally
docker run -p 3333:3333 codesherpa python3 -c "import localserver.main; localserver.main.start()"

# OR use Docker Compose

docker compose up

Whichever option you choose, codesherpa will be accessible at localhost:3333.

Connecting codesherpa to ChatGPT

  1. Navigate to the ChatGPT UI, and access the plugin store.
  2. Select "Develop your own plugin".
  3. In the plugin URL input, enter localhost:3333. Your ChatGPT should now be able to use codesherpa's features.

Examples

Below are some examples. Please note that portions of these videos are edited and/or sped up for brevity.

Ploting a vector field on a sphere creating an animated gif (short):

https://github.com/iamgreggarcia/codesherpa/assets/16596972/a42d717c-a996-4622-a5d1-139466cad233

Demo of the Demo: Recreating the ChatGPT Code Interpreter Video Demo

Most of us have seen the ChatGPT Code Interpreter Video Demo, which is the inspiration for this project. So I thought it fitting to ask similar questions as those in the OpenAI video demo.

https://github.com/iamgreggarcia/codesherpa/assets/16596972/111e7e25-a5b0-4d7e-9ffb-dee5e844cafd

https://github.com/iamgreggarcia/codesherpa/assets/16596972/5e9a3b6a-b004-434b-aaba-715d7d53e54d

Future Work

Contributing

I welcome contributions! If you have an idea for a feature, or want to report a bug, please open an issue, or submit a pull request.

Steps to contribute:

  1. Fork this repository.
  2. Create a feature branch git checkout -b feature/YourAmazingIdea.
  3. Commit your changes git commit -m 'Add YourAmazingIdea'.
  4. Push to the branch git push origin feature/YourAmazingIdea.
  5. Submit a Pull Request.

Disclaimer

codesherpa is independently developed and not affiliated, endorsed, or sponsored by OpenAI.

License

This project is licensed under the terms of the MIT license.