Dec 20, 2022 12:01 PM - edited Dec 20, 2022 12:02 PM
Using chatGPT in an Airtable automation.
In my use case, the automation triggers on when an Airtable record matches conditions,
then follows with 2 actions, run script and update record. Adjust the first part of the prompt
with your own use case. Tip: Use chatGPT to help you write a prompt for chatGPT (!)
let inputConfig = input.config();
text = `${inputConfig.text}`;
var key = "openai-api-key";
var url = "https://api.openai.com/v1/completions";
prompt = "Reword this text to grade 9 reading level: " + text;
var gpt = {
model : "text-davinci-003",
prompt : prompt,
temperature : 0,
max_tokens : 1024
};
response = await fetch(url, {
method: 'POST',
body: JSON.stringify(gpt),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + key,
}
});
answer= await response.json();
data=answer.choices[0].text;
output.set('your-airtable-field',data);
Dec 20, 2022 12:56 PM
BOOM.
Feb 17, 2023 06:07 AM
this is awesome - though davinci isn't quiet the same or as good as chatgpt though right?
Feb 17, 2023 06:24 AM
chatGPT isn't a model though.
Feb 23, 2023 10:17 AM
Hi Guys,
where can I find the ChatGPT API?
It seems they can no longer be activated. I have a Pro account.
Thank you 🙂
Mar 01, 2023 06:00 AM - edited Mar 01, 2023 06:01 AM
Hi @chrisbyrne
and thank you for this show and tell!
I'm trying to do basically the same thing, but get only "undefined" responses. I might be doing some simple mistake, any idea what it is? Posting my edited script below
let inputConfig = input.config();
text = `${inputConfig.textToMakeShorter}`;
var key = "XXXXX";
var url = "https://api.openai.com/v1/completions";
prompt = "Summarize this text: " + text;
var gpt = {
model : "text-davinci-003",
prompt : prompt,
temperature : 0,
max_tokens : 1024
};
response = await fetch(url, {
method: 'POST',
body: JSON.stringify(gpt),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + key,
}
});
answer= await response.json();
data=answer.choices[0].text;
output.set('shortenedText',data);
Mar 01, 2023 06:21 AM
It's at capacity rn so could be that, it's something you will have to allow for.
In my app I have a retry number field that gets incremented if it fails.
What I would do now, is test the step before the prompt with
console.log(key) and console.log(url) to make sure these are correct.
The code I provided is bare bones without error checking, to make it clear what's happening.
You could add this before the answer= await response.json();
if (!response.ok) {
console.error(`Error: ${response.status}`);
}
This should cough up whatever is going on.
Mar 06, 2023 09:43 AM
Hello,
I wondering if it would be possible to perform ChatGPT summerisation when the WebClipper perform the capture of the page ?
Good or Bad idea ?
How do you handle to long article ? Did you try the GPT 3.5 with it's lower fees ?
Thanks
Mar 16, 2023 04:03 AM
To handle long articles you will need to strip the text so it's less than 1,500 words (GPT limit)
text = text.substring(0,2048);
Though with GPT4 it's expanded to 32k, a gamechanger!
Mar 26, 2023 02:11 AM
Yes playing with it 32k is interesting but I think expensive at scale.
Are you sure token = word ? What does it means for an html content ?
Mar 28, 2023 07:47 AM
@jeanyh Good point, not exactly equal but seems a rule of thumb?
Mar 29, 2023 05:33 AM
As a late update on my own issue posted above:
I had not understood that the ChatGPT API is not included in the ChatGPT Plus subscription.
After having signed up for the API service this worked beautifully.
Again, big thanks to @chrisbyrne for this script
Apr 04, 2023 07:25 AM
Is anyone having issues now. This use to work perfectly then all of a sudden starting yesterday it is now giving this error:
Apr 04, 2023 07:27 AM
Further exploration is coming down to a HTTP 429 Error code. ?????
Jun 14, 2023 01:02 PM - edited Jun 15, 2023 05:43 AM
let table = base.getTable("TABLE_NAME");
let view = table.getView("VIEW_NAME");
let records = await view.selectRecordsAsync({fields: table.fields});
const apiKey = 'OPENAI-API-KEY';
const url = 'https://api.openai.com/v1/chat/completions';
for (let record of records.records) {
let messages = [
{ role: "system", content: record.getCellValue("FIELD_NAME") },{ role: "user", content: record.getCellValue("FIELD_NAME1") }
];
let data = {
messages: messages,
model: 'gpt-3.5-turbo',
temperature: 0.3,
};
let options = {
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
method: 'POST',
body: JSON.stringify(data)
};
console.log(options)
let response = await fetch(url, options);
console.log(response)
let json = await response.json();
let AIResponse = json.choices[0].message;
await table.updateRecordAsync(record.id, {OUTPUT_FIELD: AIResponse.content});
}
Nov 09, 2023 04:10 PM
For those of you who don't want to write Javascript code — but would love to integrate Airtable and ChatGPT in a no-code/low-code way — it's great to know that Make supports ChatGPT, DALL-E, and Whisper!
I give a brief overview of how to use Airtable with ChatGPT on this episode of the BuiltOnAir podcast.
If you're just getting started with Make, there is a small learning curve. To help, I created this basic navigation video. In that thread, I also provide the links to a few other Make training resources there as well.
p.s. If anybody would like to hire an expert Airtable consultant to help them with any of this, please feel free to contact me through my website: Airtable consultant — ScottWorld
Mar 18, 2024 11:57 PM
What is the role of ChatGPT in automating processes within Airtable?