I want to be able to use generative AI in spreadsheets to solve unique problems. I want to call OpenAI from a cell that passes in a prompt and a value from a column then returns an answer I can easily parse.
Thankfully, you can do this in Google Sheets and Apps Script!
First, create the script using App Script. In your spreadsheet go to Extensions -> Apps Script then add the script.
function AI(prompt, value) {
// Replace YOUR_API_KEY with your actual OpenAI API key
const apiKey = 'YOUR_KEY';
const apiURL = 'https://api.openai.com/v1/chat/completions';
const payload = JSON.stringify({
"model": "gpt-4-turbo",
"frequency_penalty": 0,
"presence_penalty": 0,
"temperature": 0,
"messages": [
{"role": "system", "content": `${prompt}`},
{"role": "user", "content": `${value}`}
]
});
const options = {
"method": "post",
"contentType": "application/json",
"payload": payload,
"headers": {
"Authorization": "Bearer " + apiKey
},
"muteHttpExceptions": false
};
try {
const response = UrlFetchApp.fetch(apiURL, options);
const json = JSON.parse(response.getContentText());
const resultText = json.choices[0].message.content;
return resultText;
} catch (e) {
Logger.log(e.toString());
}
}
Finally, call the App Script from a cell like you would any formula =AI(PROMPT, COLUMN)
.
(Based on this thread in the OpenAI forum)
See also:
- Building templates to use generative AI in tools you already use (like spreadsheets) is a another good way to get ready for AI
- AI is the next great interop layer just like spreadsheets
Links to this note
-
While I don’t write code every day, I find it incredibly convenient.
-
How to Build an Intuition of What AI Can Do
One of the difficult parts of applying AI to existing processes and products is that people aren’t calibrated on what generative AI can and can’t do. This leads to both wild ideas that are not possible and missed opportunities to automate seemingly difficult work that is possible.