Pāriet uz galveno saturu
OpenAI

Ievads

Codex ikdienā izmanto daudzas OpenAI tehniskās komandas, piemēram, drošības, produktu inženierijas, Frontend, API, infrastruktūras un veiktspējas inženierijas komandas. Komandas to izmanto, lai paātrinātu dažādus inženierijas uzdevumus, sākot ar sarežģītu sistēmu izpratni un lielu kodu bāzu pārveidošanu līdz jaunu funkciju piegādei un incidentu risināšanai saspringtos termiņos.

Balstoties uz intervijām ar OpenAI inženieriem un iekšējiem lietojuma datiem, esam apkopojuši lietošanas gadījumus un paraugprakses, kas parāda, kā Codex palīdz mūsu komandām strādāt ātrāk, uzlabot darba kvalitāti un pārvaldīt sarežģītību plašā mērogā.


Lietošanas scenārijs 1: koda izpratne

Codex palīdz mūsu komandām ātri orientēties nepazīstamās koda bāzes daļās, veicot ievadīšanu, atkļūdošanu vai incidentu izmeklēšanu.

Viņi bieži izmanto Codex, lai atrastu funkcijas pamatloģiku, izveidotu attiecību karti starp pakalpojumiem vai moduļiem un izsekotu datu plūsmu sistēmā. Tas arī palīdz atklāt arhitektūras modeļus vai trūkstošās dokumentācijas daļas, kuru sagatavošana citādi prasītu ievērojamu manuālu darbu.

Incidentu risināšanas laikā Codex palīdz inženieriem ātri apgūt jaunas jomas, izceļot komponentu mijiedarbību vai izsekojot, kā kļūmju stāvokļi izplatās starp sistēmām.

Stāsti no mūsu komandām

“Kad novēršu kļūdu, es izmantoju Ask režīmu, lai redzētu, kur vēl koda bāzē tā pati problēma varētu parādīties”
Veiktspējas inženieris, datu izgūšanas sistēmas
Izmēģini Codex koda izpratnei, izmantojot šos uzvedņu paraugus:
  • Kur šajā repozitorijā ir ieviesta autentifikācijas loģika?

  • Apkopo, kā pieprasījumi plūst caur šo pakalpojumu no ieejas punkta līdz atbildei.

  • Kuri moduļi mijiedarbojas ar [ievietot moduļa nosaukumu], un kā tiek apstrādātas kļūmes?

Lietošanas scenārijs 2: refaktorēšana un migrācijas

Codex parasti izmanto, lai veiktu izmaiņas, kas aptver vairākus failus vai pakotnes. Piemēram, kad inženieri atjaunina API, maina veidu, kā tiek īstenots kāds modelis, vai pāriet uz jaunu atkarību, Codex ļauj viegli un konsekventi ieviest izmaiņas.

Tas ir īpaši noderīgi, ja viens un tas pats atjauninājums ir jāveic desmitiem failu, vai ja atjauninājumam ir nepieciešama izpratne par struktūru un atkarībām, ko nav viegli uztvert ar regex vai meklēšanas un aizstāšanas funkciju.

Viņi to izmanto arī koda tīrīšanai, sadalot pārāk lielus moduļus, aizstājot vecos modeļus ar mūsdienīgiem vai sagatavojot kodu labākai testējamībai.

Stāsti no mūsu komandām

“Codex aizstāja visus mantotos getUserById( ) ar mūsu jauno servisa modeli un izveidoja pieprasījumu pārskatīšanai (PR). Tas paveica minūtēs to, kas būtu prasījis stundas.”
Aizmugursistēmu inženieris, ChatGPT tīmeklis
Izmēģini Codex refaktorēšanai un pārnešanai, izmantojot šos uzvedņu paraugus:
  • sadali šo failu atsevišķos moduļos pēc atbildības jomām un izveido testus katram no tiem.

  • pārveido visu uz atzvanu balstīto datubāzes piekļuvi uz async/await.

Lietošanas scenārijs 3: veiktspējas optimizācija

Codex tiek izmantots, lai identificētu un novērstu veiktspējas problēmas.

Veiktspējas optimizācijas vai uzticamības uzlabošanas laikā inženieri dod Codex uzvedni analizēt lēnus vai atmiņietilpīgus koda ceļus, piemēram, neefektīvas cilpas, liekas darbības vai dārgus vaicājumus, un ieteikt optimizētas alternatīvas, kas bieži vien būtiski uzlabo efektivitāti un uzticamību.

Codex tiek izmantots arī, lai atbalstītu koda veselību, identificējot riskantus vai novecojušus modeļus, kas joprojām tiek aktīvi izmantoti. Mūsu komandas paļaujas uz to, lai palīdzētu samazināt ilgtermiņa tehnisko parādu un proaktīvi novērst regresijas.

Stāsti no mūsu komandām

“Es izmantoju Codex, lai meklētu atkārtotus dārgus datubāzes (DB) izsaukumus. Tas lieliski spēj iezīmēt karstos ceļus un izveidot grupētus vaicājumus, kurus vēlāk varu pielāgot.
Infrastruktūras inženieris, API darbības uzticamība
Izmēģini Codex veiktspējas optimizēšanai, izmantojot šos uzvedņu paraugus:
  • optimizē šo ciklu atmiņas efektivitātei un paskaidro, kāpēc tava versija ir ātrāka.

  • atrodi šajā pieprasījuma apstrādātājā atkārtotas resursietilpīgas darbības un iesaki kešatmiņas iespējas.

  • iesaki ātrāku veidu, kā apstrādāt DB vaicājumus partijās šajā funkcijā.

Lietošanas gadījums 4: testa pārklājuma uzlabošana

Codex palīdz inženieriem ātrāk rakstīt testus — īpaši vietās, kur testa pārklājums ir nepietiekams vai tā vispār nav.

Strādājot pie kļūdu labojuma vai refaktorēšanas, inženieri bieži lūdz Codex ieteikt testus, kas aptver robežgadījumus vai iespējamos kļūmju scenārijus. Jaunam kodam tas var ģenerēt vienības vai integrācijas testus, pamatojoties uz funkcijas signatūru un apkārtējo loģiku.

Codex ir īpaši noderīgs, lai identificētu robežnosacījumus, piemēram, tukšas ievades, maksimālo garumu vai neparastus, bet derīgus stāvokļus, kas sākotnējos testos bieži tiek palaisti garām.

Stāsti no mūsu komandām

“Es pa nakti lieku Codex strādāt ar moduļiem, kuriem ir zems testu pārklājums, un no rīta pamostos ar palaižamiem vienību testu pieprasījumiem PR.”
Frontend inženieris, ChatGPT darbvirsma
Izmēģini Codex veiktspējas optimizēšanai, izmantojot šos uzvedņu paraugus:
  • izveido vienību testus šai funkcijai, iekļaujot robežgadījumus un kļūmju gadījumus.

  • ģenerē īpašību testu šai kārtošanas utilītai.

  • paplašini šo testa failu, lai aptvertu trūkstošos scenārijus saistībā ar nulles ievadēm un nederīgām situācijām.

Lietošanas scenārijs Nr. 5: izstrādes ātruma palielināšana

Codex palīdz komandām strādāt ātrāk, paātrinot gan izstrādes cikla sākumu, gan noslēgumu.

Uzsākot jaunas funkcijas izstrādi, inženieri to izmanto, lai izveidotu pamata struktūru — ģenerējot mapes, moduļus un API sagataves, lai ātri iegūtu izpildāmu kodu, manuāli nesavienojot katru daļu.

Tuvojoties projektu laidienam, Codex palīdz ievērot saspringtus termiņus, veicot mazākus, bet būtiskus uzdevumus, piemēram, kļūdu šķirošanu, pēdējā posma ieviešanas nepilnību aizpildīšanu un ieviešanas skriptu, telemetrijas piesaistes punktu vai konfigurācijas failu ģenerēšanu.

To izmanto arī, lai produktu atsauksmes pārvērstu sākuma kodā. Inženieri bieži ielīmē lietotāja pieprasījumu vai specifikāciju un ļauj Codex izveidot sākotnēju melnrakstu, pie kura vēlāk var atgriezties un to pilnveidot.

“Es visu dienu biju sapulcēs un tik un tā sapludināju 4 PR, jo Codex darbojās fonā.”
Produktu inženieris, ChatGPT Enterprise
Izmēģini Codex, lai paātrinātu izstrādes procesu, izmantojot šos uzvedņu paraugus:
  • izveido jauna API maršruta POST /events sagatavi ar pamata validāciju un reģistrēšanu.

  • Izveido telemetrijas rīku jaunās ievadplūsmas veiksmes/neveiksmes izsekošanai, izmantojot šo veidni [ievieto savas telemetrijas koda piemēru].

  • Izveido sagataves ieviešanu, pamatojoties uz šo specifikāciju: [ievieto specifikāciju vai produkta atsauksmes].

Lietošanas gadījums 6: plūsmas saglabāšana

Codex palīdz mūsu inženieriem saglabāt produktivitāti, kad viņu grafiki ir sadrumstaloti un pilni ar pārtraukumiem.
To izmanto, lai fiksētu nepabeigtu darbu, pārvērstu piezīmes par funkcionējošiem prototipiem vai izveidotu izpētes uzdevumus, pie kuriem vēlāk var atgriezties. Tas atvieglo darba apturēšanu un atsākšanu, nezaudējot kontekstu, īpaši, ja viņiem ir dežūra vai daudz sanāksmju.

“Ja pamanu ātru pa ceļam veicamu labojumu, es palaižu Codex uzdevumu, nevis pārslēdzos starp zariem, un pārskatu tā pieprasījumu PR, kad man ir laiks.”
Backend inženieris, ChatGPT API
Mēģini izmantot Codex, lai saglabātu plūsmu ar šiem uzvedņu piemēriem:

Lietošanas scenārijs 7: izpēte un ideju ģenerēšana

Codex ir noderīgs arī atvērtiem uzdevumiem, piemēram, alternatīvu risinājumu atrašanai vai dizaina lēmumu apstiprināšanai. Vari izmantot uzvednes, lai atrastu dažādus problēmas risināšanas veidus, izpētītu nepazīstamus modeļus vai pārbaudītu pieņēmumus. Tas palīdz izcelt kompromisus, paplašināt dizaina iespējas un precizēt ieviešanas izvēles.

To izmanto arī, lai identificētu saistītās kļūdas. Ja ir zināma problēma vai novecojusi metode, Codex var identificēt līdzīgus modeļus citviet kodā, atvieglojot regresiju pamanīšanu vai tīrīšanas darbu pabeigšanu.

“Codex palīdz man atrisināt aukstā starta problēmu — es ielīmēju specifikāciju un dokumentāciju, un tas izveido koda karkasu vai norāda, ko esmu aizmirsis.”
Produkta inženieris, ChatGPT darbvirsmas lietotne
Pamēģini izmantot Codex izpētei un ideju ģenerēšanai ar šiem uzvednes piemēriem:
  • kā tas darbotos, ja sistēma būtu notikumu vadīta, nevis pieprasījuma/atbildes tipa?

  • atrodi visus moduļus, kas manuāli veido SQL virknes, nevis izmanto mūsu vaicājumu veidotāju.

  • pārraksti to funkcionālākā stilā, izvairies no mutācijām un blaknēm.


Labākās prakses

Codex darbojas vislabāk, ja tam tiek nodrošināta struktūra, konteksts un iespēja iterēt. Šeit ir daži no ieradumiem, ko OpenAI komandas veido, lai ikdienas darbā no tā gūtu konsekventu vērtību.

Sāc ar jautājumu režīmu.

Lielu izmaiņu gadījumā sāc ar to, ka Ask mode režīmā lūdz Codex sagatavot ieviešanas plānu, kas pēc tam kļūst par ievadi turpmākajām uzvednēm, kad pārslēdzies uz Code Mode. Šī divpakāpju plūsma palīdz Codex saglabāt piesaisti kontekstam un izvairīties no kļūdām tā izvadē. Codex vislabāk darbojas ar labi definētiem uzdevumiem, kuru izpilde tev vai komandas biedram aizņemtu aptuveni stundu vai kuru īstenošanai būtu nepieciešami daži simti koda rindiņu. Modeļiem uzlabojoties, var sagaidīt, ka palielināsies to uzdevumu apjoms, ko tie var uzņemties.

Pakāpeniski uzlabo Codex izstrādes vidi

Palaišanas skripta, vides mainīgo un piekļuves internetam iestatīšana ievērojami samazina Codex kļūdu īpatsvaru. Izpildot uzdevumus, meklē veidošanas kļūdas, kuras var novērst Codex vides konfigurācijā. Tas var prasīt dažas iterācijas, taču ilgtermiņā sniedz būtiskus efektivitātes ieguvumus.

Strukturē savu uzvedni tā, it kā tu rakstītu GitHub Issue

Codex sniedz labākas atbildes, ja uzvednes atspoguļo to, kā tu aprakstītu izmaiņas pieprasījumā PR vai problēmas pieteikumā. Tas nozīmē iekļaut failu ceļus, komponentu nosaukumus, atšķirības un dokumentācijas fragmentus, ja attiecināms. Uzvedņu formulēšana, izmantojot tādus paraugus kā “Ievies to tāpat, kā tas ir darīts [modulī X]”, uzlabo rezultātus.

Izmanto Codex uzdevumu rindu kā vienkāršu uzdevumu sarakstu

Palaid uzdevumus, lai fiksētu blakus idejas, daļēji paveiktu darbu vai nejaušus labojumus. Nav jāsteidzas vienā piegājienā izveidot pilnu pieprasījumu PR. Codex labi darbojas kā vieta, kurā vari atgriezties, kad atkal vari koncentrēties.

Izmanto AGENTS.md, lai nodrošinātu pastāvīgu kontekstu

Uzturi AGENTS.md failu, lai Codex varētu efektīvāk darboties tavā repozitorijā dažādās uzvednēs. Šie faili parasti ietver nosaukumu piešķiršanas konvencijas, biznesa loģiku, zināmas īpatnības vai atkarības, ko Codex nevar secināt tikai no koda. Uzzini vairāk par sava AGENTS.md faila strukturēšanu dokumentācijā.

Izmanto “Best of N”, lai uzlabotu izvadi

Best-of-N funkcionalitāte ļauj vienlaikus ģenerēt vairākas atbildes vienam uzdevumam, lai ātri izpētītu vairākus risinājumus un izvēlētos vispiemērotāko. Sarežģītākiem uzdevumiem tu vari pārskatīt vairākas iterācijas un apvienot dažādu atbilžu daļas, lai iegūtu spēcīgāku rezultātu.


Skatoties uz priekšu

Codex joprojām ir pētījumu priekšskatījuma versijā, taču tas jau būtiski ietekmē to, kā mēs veidojam, palīdzot mums strādāt ātrāk, rakstīt labāku kodu un uzņemties darbu, kas citādi nekad nebūtu prioritizēts.

Mūs sajūsmina priekšā esošais potenciāls — mūsu modeļiem kļūstot arvien labākiem un Codex arvien dziļāk integrējoties mūsu darbplūsmās, mēs ar nepacietību gaidām iespēju atklāt vēl jaudīgākus veidus, kā ar to izstrādāt programmatūru. Mēs turpināsim dalīties ar to, ko uzzinām šajā ceļā.

Vai vēlies ieviest mākslīgo intelektu savā uzņēmumā?

Uzzini, kā mēs palīdzam uzņēmumiem izstrādāt plaši ieviešamas un atbildīgas mākslīgā intelekta stratēģijas.