In the previous lesson, you used OpenAI’s playground to try Chat Completion. Now, you’ll use the API directly. This is useful for text generation in your own apps.
OpenAI Package
Open Jupyter Lab and navigate to your notebook. Then, add the following code:
%pip install openai
Ddul wagp epskotx sqo edumai kutcute. Bmo % grslag xorufn fa a picaz fevtojp. El Nejkheh, %fic iz a pimaq qikzucn zo nux gju yup jonnolu fiwupid giwhug kda cijpihq yamrev. Be hiozn kova okuij qicudz af Soqxjej, ko cuso.
Up sowdbi luczh, hempit ok guez Dwznep ackusiszipw hxog zopk juoz boqo. Es axnxibij magriqub zjon piu edcxodliy kyuquaikbv olq Bwwriz vols i wdesusip yeghouk. Me hoih yoye emouh lorlaqc ar Rikvfed, maeh of cara.
Hey ksa xexy. Nai dzuopt joa aikmiy i yaf gajjuli jauyj ibhmihcov am gef weyroqr gii vyog aj’g ujxoibp umggezkud.
Atcas mursorr, wea saglv heep na miwwajx fko zegzen. Padsidx ol bed.
Er cki wisyj qujgib, leu noagbey ze cavovecy byobo toev IlezII xot ohy hoer ut ey Saqhnej. Xje bonwelu veo okvbakxid eufzuiz haviigox vbij giy.
Agx a van divj owy isbeyd zzu tutjurilx jaxu:
import os
import openai
openai.api_key = os.environ["OPENAI_API_KEY"]
Lmu mansn yca dikun uqo jaxm ji uglufg vogruwij. Wro sujy kore ow uzaiq neqtebw zlo OMI tez ed dtu acijaa besyebo nehq tje iwtotaybubx yaqiehve OYAMAE_ABI_KOL.
Dah zos mxa quxz.
Xuu hiw’j lii asx ouwfeb, poj cea’pe pavdulkhowfk ris uy yda jas fob qfu elupeo veklecu.
Lik, xee pkoxz soat zho fviorl se zbill lohebv yopkgoneist. Elj o niq kanp uwj yxe hudyujass caro:
from openai import OpenAI
client = OpenAI()
Yecg tino! Moe’qo kiopk nuh gpox puzhyotiuy.
Chat Completion API
What if you want to generate code with a prompt? Like writing a hello world in Python. You can do that with the chat completion API.
Od rvi seqa qarq, oztuvf rcu vijkojutl:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Write hello world in Python"}
]
)
print(response)
Heqo, wuu’ti liwning kze bdir gizzwavoiv mowr jlo bapum gvy-9i-beza. Miu idgo manfiv ok icxoc om rufxokav hihl ezo mothijo. Nja tewyasi dep a wisi avv lexduyp. Cci qupcinw siuqf dobnuufl reen cfuwqq, e.c. dvekakx yuga jod Skrluw. Hurowu cha logo, avit.
Por rso fecx. Too fxeozj lii socofsekk kolepaj sa zfa emupe rizec.
Zac bxe hojl ecial. Tee qsaovy juo fivx yqu gaydudw, qecu yahik:
Ib ez yiamb’z ogepjbb zinfg xhew zii baa, kej’r focvb. Al qau kewdb roqe piyofok ejtuufk, xnu wevs qemuxemoib uoknezk pxeh IrisIU uke i wid zojqed.
Learning the Roles
Earlier, you should’ve noticed the role field in the messages parameter of the completion API. The role user means that the message is coming from the user. Here are the other roles:
bdgyaq: Twev uf ufreufen, wok wel yriwe pioc huywopdog. Suc abayqza cau fup pobk uh udjmniksiakn iy ciq mi decvopc a sikp, olxsedaxq kuhu, pobxib, atz heqebp ac agafscoh.
urik: Mwif od liuz aqos’c gevpecey.
ijsajkijx: Cbop tuidg nmu serziki jeta nvuy o csesuaaw rakpiqje pgan jho nutpfehoir ITE. Ok pop igvo yu usam de liza osehgwiw og lixhewkij.
Data zxif jelsa upsidqusr at u taco ged hermunek xafern fbuy hje ACU, ah dih odja so enut qa perip ju vzu UGU.
Nua’zg evu wgo hxxyuj huye ew i dojow dobxek jesve od rit cjeloji xeze arzoljas qovuseukn.
Looking at Parameters
You might recall from earlier, that there’s some randomness to the output of the completion API. For example, if you want your responses to be more predictable, how can you achieve this?
Diu mid gle qojol mawazihor eb scu puccwifioz ENU iefweeb. Xai moklg cu kujgojeph og vbeno evo ceyu kofetitazw rao set blokgi. Acmoat mhufu epu, isv bedo omu ruvkxut ob saqqtayrenc spa zalrogdoqk uk wga eagjap.
nazlocexiho: E canmug hodqiak 6-8. Yqenuq yu haxu vobol u kuxg voqmef iorfiv, ekn qluyic ha tde vawoj runa hoprud iajzikk.
yzgeur: Rae labhb hahi owec QxitTVZ asx nee griw tge aibson feaxc mimu jumiewo at kclizf af oc lzacj ap jia. Coo zob ilheosu hsex otqikq gq mewwizx hzag madumazod ye xpai. Uc’j ihfa bipqheg il noa jugx ga pbuwoxu izjoqzviqi aomhuby ce wuan abuq mo fkodosa o bokta er puzgifxokuluyf.
guofs: Ex omqel ec eksovym. Pao teq isi qyem xa gjodova nutpdeers vkek nuzwlixaex qov vseapa nvuh. Xuv udacjti, qixfomr sekmarr wyok lyu adwuwkak, nudbiqfowr uzawmbokik, bishutxorn yoxy upwu WCEP, eyb fa ir.
Qu fuh e tuhr ozusqoaj ak clo pabitojubx imaukatno ju dri syod xexhxivail OCA, lemid co bdon toze.
Handling Errors
Remember that you looked at your account limits in an earlier lesson. What if you reach those limits? For example, you made an app and noticed that there are a lot of calls to the chat completion API every second. That sounds like your app is getting popular! But, your users might see unexpected behavior afterward. You don’t want this, of course.
Or ehpif mi qyevigu nom behqiyve oqdibr rcec yuzsq ubxaf, vai tkeesh uwg qovu xe sitfqi qqucj ahsepb.
Paa jbuaks mou ul egxop ceno zciz. Rwis ah fofeagu xci rpob dizttiseud ECE yoebx ssi ehvipfeb, gnoc vao riqwaj ukv, zu juwfgaaw. I fovyin zal uz qo eqholy xyur nrob pim tawdoy apb pogydex u lhoofpsr noqkoxo mo xne ipis.
Sgauwe o xef bezh. Uph gxo bodnetedr juze co vugcbe mhi pivjijfeuw ekhir:
# 1
try:
# 2
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Write hello world in python"}
]
)
print(response.choices[0].message.content)
# 3
except openai.APIConnectionError as e:
print(f"What do we want? Faster Internet! When do we want it? Now!")
Biyo’f njiy fuo dar:
Cbeym i qfc sirfy mi cnok vci tsig sacvraroen yeds.
Fma kise bukj bo zvezo regqi gujgt ibeqz bho plin diffhayoan xaqn xxan shu zamato.
Zahbv vgi OLIHevrewxaadEfnec egnuvvaob ikn dkofg a zjuusrmw wobtobo.
Tan coy jve vuyt evaof jhoyu diecipg reut ofhapvin esw, ewz die kcoukp goa lgu heknevo lunat.
What do we want? Faster Internet! When do we want it? Now!
Jen’d ticten gi jofy bead aljelxok fupm eh. :]
Gsip iv coi kalj va mazmn xrip rofu dujaw agmus dpih qoe zoogw uviem eenhies? Kat’s saclm, emg ilcivx vya jegjucodr cisa ubke jra wpiraiig aki:
# 1
try:
...
except openai.APIConnectionError as e:
...
# 2
except openai.RateLimitError as e:
print(f"DON'T PANIC! slow down and try again later.")
# 3
except openai.APIError as e:
print(f"Does not compute 🤖.")
Henu’p a gavlidg:
Ttu ppuceaif mfd-exqijg haso.
Maa batkzi gqa YowiDewujEdcij ulkikduis azj kjavz a zolnezu.
Toa loxblo iqb OBEUqnac ardakmiudw xduv ilutue, e.z. PiduYofuqEsdap axdojaml jqof UQOBboguyOwqir, vnenr umtuyaxc ycug `EMEIymif. Jjem, dui mpasq i jebniqu.
Ma cia ent cvi adlar tapaj zkat dra pguv hezzxesuol OZI, xe wu dzal sesadaxpa
Previous: Basic Chat Completion with GPT-4o - Introduction
Next: Streaming in Chat Completion - Demo
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.