Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

minsa110/devcontainer-fastapi

Open more actions menu

Repository files navigation

Building an Open AI plugin with Codespaces

☁️ To deploy your app on Azure using Azure Developer CLI and Container Apps, see the demo-azd branch.

This is a sample repo for developing OpenAI plugin using the FastAPI framework. There are two main parts of the repo:

  • Code to help setup development environment for FastAPI framework
  • Code for the FastAPI app

📦 Code to help setup development environment

Create a Codespaces by clicking <> Code -> Codespaces -> Create codespaces on {branch}, and a containerized development environment will be set up for you on the cloud based on the contents of the following files.

.devcontainer

The .devcontainer folder contains files for defining a containerized development environment, specific to building this FastAPI app. It's set up in a way that makes it easy for you to use with GitHub Codespaces as well: launch a Codespace using this template, and you're ready to start developing! Learn more about devcontainers here.

.vscode

The .vscode folder contains:

  • json.code-snippets file that helps to quickly write the manifest file for the OpenAI plugin. (✨ Tip: Type manifest-openai, press enter to accept the template, and tab through the fields to quickly generate the manifest)
  • settings.json file that helps to validate the manifest file (ai-plugin.json) against this schema.
  • launch.json file that helps to customize Run and Debug.

💻 Code for the FastAPI app

If you have access to GitHub Copilot, try it out to help you write code faster. To test the app, run uvicorn main:app in the integrated terminal, or press F5, and debug CRUD operations at .../docs.

  • main.py is the code for the API plugin. (✨ Tip: Generate the code using Copilot. The following is an example prompt to use in the Copilot chat view.)
    Write a simple TODO app using FastAPI, that lets the user add TODOs, list their TODOs, list specific TODOs, and delete TODOs, ensuring that the app stores todo_id for each todo item. 
    
    Assume that a docker container is running for Redis, running and accessible at host "redis" and port 6379 as specified in the docker-compose.yml file. Make use of the Redis container for persisting data from the TODO app.
    
    Include a __main__ section which will run this app using uvicorn. The Python module where I save this code will be called main.py.
    
    Mount static files in the .well-known directory to the path /.well-known, which should at minimum contain ai-plugin.json that serves (as JSON).
  • openapi.yaml is a specification that dictates how to define the schema of the API.
  • ai-plugin.json is a JSON manifest file that defines relevant metadata for the plugin. Learn more in the OpenAI docs.

💬 Register the app on ChatGPT

  • Go to PORT and set visibility of port 8000 to public
  • Copy the link and paste it on ChatGPT plugin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.