ChatGPT Plugins
Notes on the use and development of ChatGPT Plugins
Overview
- Plugins allow ChatGPT to do a lot more than simply receive a text prompt and generate the language that best suits the input
- Allows for external system calls to be made to pull in more relevant or up-to-date data, over which the model can run
- Big store of plugins already available, which allows you to enhance ChatGPT today
- Limit: Can only have 3 plugins enabled, but you can “download” as many as you’d like
- You just choose 3 to be active at any given time
- Limit: Can only have 3 plugins enabled, but you can “download” as many as you’d like
- Examples of popular ones in the store
- Web Pilot - Allows ChatGPT to be given a URL for a publicly-available site, which it will scrape, and then use as data in the model about which you can ask questions
- Wolfram - Allows ChatGPT to run better math operations
- Zapier - Allows ChatGPT to connect to your Zapier account and run your Zaps
- Expedia / Kayak - Search for best travel deals
- Prompt Perfect - Automatically iterate over your prompts to get a more dialed-in prompt for what you’re attempting to do
How to Develop a Plugin
- Example plugins to review
- List of example plugins with various levels & types of authentication
- Plugin Quickstart Repo
- Example repo for a data-retrieval plugin that OpenAI open-sourced: Open-Sourced Data Retrieval Plugin
- This repo has a LOT of documentation developing and testing a ChatGPT plugin in the README
- Is a good example of creating one from scratch as well
- Some things to consider:
- Overall flow of development to distribution of a Plugin
- For all POST requests, developers must build in a user confirmation flow
- Can send in formatted responses via Markdown
Plugin Manifest File
- JSON file hosted on the domain of the company/person that authored the plugin
- Must be hosted at the API’s domain w/ the path of
/.well-known/ai-plugin.json - HTTPS is required
- Must be hosted at the API’s domain w/ the path of
OpenAPI Spec
- This file is incredibly important to ensure that people utilize your plugin at the right time:
- “When a user makes a query that might be a potential request that goes to a plugin, the model looks through the descriptions of the endpoints in the OpenAPI specification along with the description_for_model in the manifest file. Just like with prompting other language models, you will want to test out multiple prompts and descriptions to see what works best.”
- You can run against a locally-running server for “development” mode
- More info on running locally here
- Only auth type of “none” is supported for locally-running APIs
- Pro Tip: You can set up a local proxy to your deployed API to shorten the feedback loop on testing changes to your OpenAPI spec or manifest file
- More info on running locally here
- Best Practices for model-focused descriptions
Authentication
Plugin Constraints / Limits
- 100k character max for all API response bodies
- OpenAPI Spec
- 200 characters max for each API endpoint description/summary field
- 200 characters max for each API param description field
Open Questions
Can you develop a “private” plugin that isn’t hosted on a store?- According to the video linked in the README of repo above, I believe the answer is “Yes”, it just shows up as “unverified”
- According to the documentation: “Only other developers can install unverified plugins”
- Do you feed the data sent back from your API to ChatGPT? Or does it simply return data from the API call?