For integrations with other AI platforms, see the Artificial Intelligence article in the User Guide.
While Drafts does not have any specific features built on integration with OpenAI’s artificial intelligence platform, it does provide scripting tools to make it easier to integrate with the OpenAI API. This provides a flexible way to incorporate ChatGPT and other OpenAI tools, like text completions, into your Drafts actions.
This article covers the set required to use such actions, as well as providing useful example actions which may provide value out-of-the-box for your workflows, or be a starting point for your own variations.
Setting Up OpenAI API Access
In order to use any of these integrations, you will need to create your own OpenAI account and generate an API key to use with Drafts. If you already have an OpenAI account (needed to use their own web-based tools), then great! If not, start by signing up for a free account.
OpenAI API access can be used as a free trial, but it is extremely limited. We recommend you visit your platform account’s billing page and configure paid account information if you plan to use these actions, or you will quickly run into rate limits of the free trial. You will also find that it is extremely inexpensive for an individual user, and you are only charged for usage; there is no repeating monthly cost.
Note about API cost: If you are worrying about racking up API costs, know that we have been developing and testing these features for weeks and have only run up a bill for a few cents in our OpenAI account
Lastly, visit your account’s API Keys page and “Create a new secret key” for use with Drafts. When you create this key, copy it to the clipboard, then return to Drafts. The first time you run an action that uses OpenAI, you will be prompted to enter this key.
Drafts will remember the API key in its Credentials system, so you will only need to complete this step once. If you need to change the API key used, you can forget it in the Credentials pane in Drafts settings, and the next time you use an OpenAI action, you will be prompted to enter a new key.
Example Actions
Below are a few example use-case actions that are meant as a starting point to demonstrate some ways OpenAI integration can be used in Drafts:
- Ask ChatGPT: This action will ask you to enter a text prompt for ChatGPT, and insert the result in the current draft.
- ChatGPT: Converse: Allows for ongoing conversation in a single draft, by taking lines without a prefix as prompts and Markdown quotes are responses from the AI.
- OpenAI: Translate Selection: Take the selected text in the editor, and ask ChatGPT to translate it into another language. You will be prompted to select from a list of languages.
- ChatGPT: Modify Selection: Select text in a draft, then run this action and you will be prompted for an instruction to transform the text. Drafts will package that up in a prompt and replace the selected text with the result. You can do simple things like “uppercase”, but also combine commands for things like “uppercase and insert a emoji between each word”.
Scripting with OpenAI
If you wish to build your own more advanced integrations, the OpenAI
script object is your starting point.
This object provides a convenience wrapper for making API calls to the OpenAI API. When making requests with this object, Drafts will take care of requesting and storing a user’s API key, providing the appropriate authentication headers, and parsing results into Javascript objects.
The object provides several additional simple request functions, like quickChatResponse
that abstract details about the API for simple use cases, but also the request
function to build more detailed requests with all the API options. Refer to OpenAI API documentation on request parameters and return values.
The below action is meant as a starting point and demonstrates the use of the request
function. Get more examples in the scripting reference:
Alternate OpenAI Hosts, Like Perplexity.ai
The OpenAI
scripting object defaults to working with the OpenAI API hosted at api.openai.com
. It is possible to override the host information, and work with other API endpoints that are OpenAI API-compatible. Notably, Perplexity.ai, which provides a number of other large language model options. We have posted an example to get you started:
- Ask Perplexity.ai: Similar to “Ask ChatGPT” example above, but using Perplexity’s API. On first run, you will be prompted for your Perplexity.ai API key.
Using these features simply requires overriding the host
property of the OpenAI
object, and either passing a valid API key for the service, or setting a unique credentialIdentifier
to allow Drafts to request an API key from the user. See the example and OpenAI
object documentation for details.
Troubleshooting
If you run into issues running these actions, be sure to check the Action Log for detailed error messages. Common problems include rate limits, or improperly configured API keys.
Conclusion
If you create new and interesting actions with this functionality, we hope you’ll share them in the directory and forums!