OpenAI, som står bak blant annet ChatGPT, har annonsert en rekke oppdateringer til gpt-3.5-turbo og gpt-4.
I tillegg til lavere priser for å bruke API-ene, er det én nyhet som er spesielt interessant for utviklere som bygger applikasjoner på toppen av disse språkmodellene.
GPT-4 and GPT-3.5 Turbo models in the API now support calling your custom functions, allowing the model to use tools you design for it. Also — reduced pricing & new model versions (including 16k context for 3.5 Turbo): https://t.co/dalfgEQ9k2
— OpenAI (@OpenAI) June 13, 2023
Med såkalt Function Calling i OpenAIs Chat Completions-API kan du kort fortalt få gpt-3.5 og gpt-4 til å bruke API-er og funksjoner du har laget til dem.
Det gjør det mulig å lage smartere chatbot-er, eller konvertere "prompts" skrevet i naturlig språk til API-kall eller database-spørringer mot for eksempel et kundesystem.
Oppdager når den trenger å kalle en funksjon
OpenAI beskriver det hele slik selv:
"Utviklere kan nå beskrive funksjoner til gpt-4-0613 og gpt-3.5-turbo-0613 og få modellen til å intelligent velge å levere ut et JSON-objekt som inneholder argumenter for å kalle disse funksjonene."
Modellene har blitt finjustert for å både oppdage når det er behov for å kalle en funksjon – avhengig av brukerens input – og til å respondere med JSON som stemmer overens med funksjonssignaturen. Med "Function Calling" kan utviklere få strukturerte data tilbake fra modellen, på en mer pålitelig måte.
OpenAI just introduced Function Calling.
— Santiago (@svpino) June 13, 2023
This is a killer feature! It's the most consequential update to their API since they released it.
Here is an example to show you how powerful this is:
OpenAI nevner flere mulige bruksområder:
- Lag chatboter som kan svare på spørsmål ved å kalle eksterne verktøy, som for eksempel ChatGPT-plugins.
- Konvertere naturlig språk til API-kall eller databasespørringer. For eksempel kan "Hvem er mine topp ti kunder denne måneden" få GPT til å lage argumenter til et API eller en SQL-spørring, og deretter oppsummere det som kommer fra API-et i naturlig språk til slutt.
- Hente ut strukturerte data fra tekst. For eksempel kalle en funksjon som henter ut alle personer nevnt i en Wikipedia-artikkel.
– Bedre enn ChatGPT!
Slik bruker du det
Selv om det kalles "Function Calling", er det ikke slik at Chat Completions-API-et til OpenAI kaller disse funksjonene på egen hånd. I stedet generes det JSON som du kan bruke til å kalle funksjonen selv i din egen kode.
Du finner en detaljert fremgangsmåte her og her, men kort fortalt er dette trinnene:
#1. Kall modellen med brukerinput + funksjonsbeskrivelse
I dette eksempelet fra OpenAI er spørsmålet vi stiller til GPT "What's the weather like in Boston right now?"
Vi bruker i dette tilfellet curl til å kalle Chat Completions-API-et med både spørsmålet og beskrivelse av vårt API som kan sjekke været. Beskrivelsen vi gir til GPT er "Get the current weather in a given location", og hva slags parametre funksjonen tar (type, beskrivelse for GPT, osv.).
#2. Bruk responsen til å kalle API-et ditt
Når GPT oppdager at det er nødvendig å kalle den funksjonen eller API-et vi har opplyst den om at vi har, vil den svare med "finish_reason": "function_call", navnet på funksjonen den vil du skal kalle, samt argumenter i det formatet du oppga da du beskrev funksjonen.
#3. Send responsen tilbake til modellen for å få GPT til å oppsummere
Etter at du har kalt funksjonen eller API-et ditt med argumentene du fikk fra GPT, kan du sende alt sammen tilbake til GPT-modellen og få den til å summere opp.
Hvis GPT er fornøyd med svaret du har fått ut av funksjonen din, vil den returnere med "finish_reason": "stop" og en fin beskrivelse på språket du stilte spørsmålet i (i vårt tilfelle noe sånt som "The weather in Boston is currently sunny with a temperature of 22 degrees Celsius."). Vil den at du kaller flere funksjoner, vil den si ifra – hvis ikke er du ferdig.
Lavere priser
I tillegg til Function Calling og en del forbedringer, har OpenAI også som nevnt redusert prisene.
Prisen på GPT-3.5-turbo, altså den forrige modellen – ikke GPT 4 – har blitt redusert med 25 prosent. Ny pris er 0,0015 dollar per 1000 input-tokens og 0,002 dollar per 1000 output-tokens.
Ifølge OpenAI tilsvarer det rundt 700 "sider" med tekst per dollar (ca. 10,50 kroner).