Ugrás a fő tartalomra
OpenAI

Bevezetés

A Codexet naponta használják az OpenAI különböző technikai csapatai, például a biztonság, a termékfejlesztés, a frontend, az API, az infrastruktúra és a teljesítményfejlesztés területén. A csapatok arra használják, hogy felgyorsítsák a különféle fejlesztői feladatokat, az összetett rendszerek megértésétől és a nagy kódbázisok refaktorálásától kezdve az új funkciók kiadásán át a szoros határidők mellett felmerülő incidensek elhárításáig.

Az OpenAI mérnökeivel készített interjúkra és a belső használati adatokra támaszkodva összegyűjtöttük azokat a felhasználási eseteket és bevált gyakorlatokat, amelyek bemutatják, hogyan segíti a Codex a csapatainkat abban, hogy gyorsabban haladjanak, javítsák a munka minőségét, és nagy léptékben kezeljék az összetettséget.


1. felhasználási eset: Kód megértése

A Codex segít a csapatainknak gyorsan eligazodni a kódbázis ismeretlen részein, legyen szó betanulásról, hibakeresésről vagy egy incidens kivizsgálásáról.

Gyakran használják a Codexet egy funkció alapvető logikájának megtalálására, a szolgáltatások vagy modulok közötti kapcsolatok feltérképezésére, valamint az adatok rendszerben való áramlásának nyomon követésére. Segít feltárni az architektúramintákat és a dokumentáció hiányzó részeit is, amelyek előállítása egyébként jelentős manuális erőfeszítést igényelne.

Az incidenskezelés során a Codex segít a fejlesztőknek gyorsan eligazodni új területeken azáltal, hogy feltárja az összetevők közötti interakciókat, illetve nyomon követi, hogyan terjednek a hibás állapotok a rendszerek között.

Történetek a csapatainktól

„Amikor kijavítok egy hibát, az Ask módot használom, hogy lássam, hol fordulhat még elő ugyanez a probléma a kódbázisban”
Teljesítményfejlesztő, Retrieval Systems (lekérdező rendszerek)
Próbáld ki a Codexet kódértelmezéshez ezekkel a példautasításokkal:
  • Hol van a hitelesítési logika implementálva ebben a repozitóriumban?

  • Foglald össze, hogyan haladnak át a kérések ezen a szolgáltatáson a belépési ponttól a válaszig.

  • Mely modulok lépnek kapcsolatba a(z) [insert module name] modullal, és hogyan kezelik a hibákat?

2. felhasználási eset 2: Refaktorálás és migráció

A Codexet gyakran használják olyan módosítások elvégzésére, amelyek több fájlon vagy csomagon átívelnek. Például amikor a fejlesztők egy API-t frissítenek, módosítják egy minta megvalósításának módját, vagy egy új függőségre migrálnak, a Codex megkönnyíti a módosítások következetes alkalmazását.

Különösen hasznos, ha ugyanazt a frissítést több tucat fájlban kell elvégezni, vagy ha a frissítéshez olyan szintű struktúra- és függőségismeret szükséges, amelyet egy regex vagy a keresés és csere nem tud könnyen kezelni.

Arra is használják, hogy kódtisztítást végezzenek túlméretezett modulok felosztásával, régi minták modernekre cserélésével, vagy a kód jobb tesztelhetőségre való előkészítésével.

Történetek a csapatainktól

„A Codex kicserélte az összes régi getUserById( )-t az új szolgáltatási mintánkra, és megnyitotta a pull requestet. Percek alatt elvégezte azt, ami órákig tartott volna.”
Backend fejlesztő, ChatGPT Web
Próbáld ki a Codexet refaktoráláshoz és migrációkhoz ezekkel a minta utasításokkal:
  • Oszd fel ezt a fájlt funkció szerint elkülönülő modulokra, és készíts teszteket mindegyikhez.

  • Alakítsd át az összes visszahívásalapú adatbázis-hozzáférést async/await használatára.

3. felhasználási eset: Teljesítményoptimalizálás

A Codexet arra használják, hogy azonosítsák és kezeljék a teljesítmény akadályait.

A teljesítményhangolás vagy a megbízhatóság javítása során a fejlesztők arra utasítják a Codexet, hogy elemezze a lassú vagy nagy memóriaigényű kódrészleteket, például a nem hatékony ciklusokat, a redundáns műveleteket vagy a költséges lekérdezéseket, és javasoljon optimalizált alternatívákat, ami gyakran számottevő javulást eredményez a hatékonyság és a megbízhatóság terén.

A Codexet a kód egészségének fenntartására is használják, mivel azonosítja a kockázatos vagy elavult mintákat, amelyek még mindig aktívan használatban vannak. Csapataink arra támaszkodnak, hogy csökkentsék a hosszú távú technikai adósságot, és megelőzzék a visszaeséseket.

Történetek a csapatainktól

„A Codexet használom az ismétlődő, költséges DB-hívások felderítésére. Nagyszerűen azonosítja a kritikus útvonalakat, és kötegelt lekérdezéseket készít, amelyeket később finomhangolhatok.”
Infrastruktúrafejlesztő, API Reliability (API megbízhatóság)
Próbáld ki a Codexet a teljesítmény optimalizálásához ezekkel a minta utasításokkal:
  • Optimalizáld ezt a ciklust memóriahatékonyság szempontjából, és magyarázd el, miért gyorsabb a változatod.

  • Keresd meg az ismétlődő, költséges műveleteket ebben a kéréskezelőben, és javasolj gyorsítótárazási lehetőségeket.

  • Javasolj egy gyorsabb módot az adatbázis-lekérdezések kötegelt futtatására ebben a függvényben.

4. felhasználási eset: A tesztlefedettség javítása

A Codex segít a fejlesztőknek gyorsabban teszteket írni — különösen ott, ahol a lefedettség gyenge vagy teljesen hiányzik.

Hibajavítás vagy refaktorálás során a fejlesztők gyakran kérik a Codexet, hogy javasoljon olyan teszteket, amelyek lefedik a szélsőséges eseteket vagy a valószínű hibautakat. Új kód esetén a függvényszignatúra és a környező logika alapján egység- vagy integrációs teszteket tud generálni.

A Codex különösen hasznos az olyan határfeltételek azonosításában, mint az üres bemenetek, a maximális hossz vagy a szokatlan, de érvényes állapotok, amelyek gyakran kimaradnak a kezdeti tesztekből.

Történetek a csapatainktól

„Egy éjszakára ráirányítom a Codexet az alacsony lefedettségű modulokra, és reggelre futtatható egységtesztes pull requestek várnak.”
Frontend fejlesztő, ChatGPT Desktop (asztali alkalmazás)
Próbáld ki a Codexet a teljesítmény optimalizálásához ezekkel a minta utasításokkal:
  • Írj egységteszteket ehhez a függvényhez, beleértve a szélsőséges eseteket és a hibautakat is.

  • Generálj tulajdonság-alapú tesztet ehhez a rendezési segédprogramhoz.

  • Bővítsd ki ezt a tesztfájlt, hogy lefedje a hiányzó eseteket a null bemenetekkel és az érvénytelen állapotokkal kapcsolatban.

5. felhasználási eset: A fejlesztési sebesség növelése

A Codex segít a csapatoknak gyorsabban haladni a fejlesztési ciklus elejének és végének felgyorsításával.

Amikor egy új funkció fejlesztésébe kezdenek, a fejlesztők ezt boilerplate kódváz létrehozására használják—mappák, modulok és API-csonkok generálására, hogy gyorsan futtatható kód álljon elő anélkül, hogy minden elemet kézzel kellene összekötni.

Ahogy a projektek közelednek a kiadáshoz, a Codex segít tartani a szoros határidőket az olyan kisebb, de nélkülözhetetlen feladatok elvégzésével, mint a hibák osztályozása (triázs), az utolsó implementációs hiányosságok pótlása, valamint bevezetési szkriptek, telemetriai hookok vagy konfigurációs fájlok generálása.

Arra is használják, hogy a termékkel kapcsolatos visszajelzéseket kezdő kóddá alakítsák. A fejlesztők gyakran beillesztenek egy felhasználói kérést vagy specifikációt, és a Codexszel készíttetnek egy kezdeti vázlatot, amelyhez később visszatérhetnek és tovább finomíthatják.

„Egész nap megbeszéléseken voltam, és mégis 4 pull requestet egyesítettem, mert a Codex a háttérben dolgozott.”
Termékmérnök, ChatGPT Enterprise
Próbáld ki a Codexet a fejlesztés felgyorsításához ezekkel a példa utasításokkal:
  • Hozz létre egy új API-útvonalat a POST /events számára alapvető érvényesítéssel és naplózással.

  • Hozz létre egy telemetriai eszközt az új bevezetési folyamat sikerének vagy kudarcának nyomon követésére, ezt a sablont használva [illeszd be a telemetriai kódod példáját].

  • Készíts egy csonkmegvalósítást a specifikáció alapján: [illeszd be a specifikációt vagy a termékkel kapcsolatos visszajelzést].

6. felhasználási eset: Munkafolyamat fenntartása

A Codex segít a fejlesztőinknek megőrizni a produktivitásukat, amikor az időbeosztásuk széttöredezett és megszakításokkal teli.
Arra használják, hogy rögzítsék a befejezetlen munkákat, a jegyzeteket működő prototípusokká alakítsák, vagy olyan feltáró feladatokat indítsanak el, amelyekhez később visszatérhetnek. Ez megkönnyíti, hogy megszakítsák, majd folytassák a munkát anélkül, hogy elveszítenék a kontextust, különösen akkor, ha ügyeletben vannak vagy sok megbeszélésük van.

„Ha észreveszek egy gyors javítást, inkább elindítok egy Codex-feladatot ahelyett, hogy átváltanék egy másik branch-re, és amikor ráérek, átnézem a pull requestet.”
Backend fejlesztő, ChatGPT API
Próbáld ki a Codexet, hogy a munkamenetben maradj ezekkel a példautasításokkal:

7. felhasználási eset: felfedezés és ötletelés

A Codex szintén hasznos nyitott végű feladatokhoz, például alternatív megoldások kereséséhez vagy tervezési döntések ellenőrzéséhez. Kérheted, hogy különböző módokon oldjon meg egy problémát, tárjon fel ismeretlen mintákat, vagy próbára tegye a feltevéseidet. Ez segít feltárni a kompromisszumokat, bővíti a tervezési lehetőségeket, és pontosítja a megvalósítási döntéseket.

Arra is használják, hogy azonosítsák a kapcsolódó hibákat. Egy ismert probléma vagy elavult módszer alapján a Codex képes azonosítani hasonló mintákat a kód más részein, így könnyebb felismerni a regressziókat vagy befejezni a tisztítási munkát.

„A Codex segít megoldani a hidegindítási problémát – beillesztem a specifikációt és a dokumentációt, és a program felépíti a kódot, vagy megmutatja, mit felejtettem el.”
Termékmérnök, ChatGPT Desktop
Próbáld ki a Codexet ötleteléshez és felfedezéshez ezekkel a példautasításokkal:
  • Hogyan működne ez, ha a rendszer eseményvezérelt lenne a kérés/válasz (request/response) helyett?

  • Keresd meg az összes modult, amely manuálisan SQL-karakterláncokat épít a lekérdezéskészítőnk használata helyett.

  • Írd át ezt funkcionálisabb stílusban, kerüld az állapotmódosítást és a mellékhatásokat.


Legjobb gyakorlatok

A Codex akkor működik a legjobban, ha megfelelő struktúrát, kontextust és teret kap az iterációhoz. Íme néhány olyan szokás, amelyet az OpenAI csapatai azért alakítanak ki, hogy a mindennapi munkában következetesen értéket nyújtsanak.

Kezdd az Ask móddal

Nagyobb változtatások esetén kezdd azzal, hogy az Ask módot használva megkéred a Codexet egy megvalósítási terv elkészítésére, amely aztán bemenetként szolgál a további utasításokhoz, amikor átváltasz a Code módra. Ez a kétlépéses folyamat segít a Codex valósághoz kötésében, és elkerülni a kimenetében előforduló hibákat. A Codex akkor működik a legjobban, ha olyan jól körülhatárolt feladatokat kap, amelyek elvégzése neked vagy egy csapattársadnak körülbelül egy órát venne igénybe, vagy amelyek néhány száz sornyi kóddal megvalósíthatók. Ahogy a modellek fejlődnek, várható, hogy az általuk elvégezhető feladatok mérete is növekedni fog.

Fejleszd tovább a Codex fejlesztői környezetét iteratívan

Az indítási szkript, a környezeti változók és az internet-hozzáférés beállítása jelentősen csökkenti a Codex hibaarányát. A feladatok futtatása közben keresd azokat a buildhibákat, amelyeket a Codex környezeti konfigurációjában lehet javítani. Ehhez néhány iterációra lehet szükség, de hosszú távon jelentős hatékonyságnövekedést eredményezhet.

Fogalmazd meg az utasításodat úgy, mintha egy GitHub-ügyet írnál.

A Codex jobban reagál, ha az utasításokat úgy fogalmazod meg, ahogyan egy változtatást leírnál egy pull requestben vagy egy issue-ban. Ez azt jelenti, hogy bele kell foglalni a fájlútvonalakat, a komponensneveket, a diffeket és a dokumentációrészleteket, amikor relevánsak. Az olyan utasítások, mint például „Ezt ugyanúgy valósítsd meg, ahogyan a [module X]-ben van”, javítják az eredményeket.

Használd a Codex feladatsort könnyű teendőlistaként

Indíts el feladatokat a kapcsolódó ötletek, részleges munkák vagy kisebb javítások rögzítéséhez. Nem kell egyből egy teljes pull requestet elkészítened. A Codex jól működik olyan átmeneti helyként, ahová visszatérhetsz, amikor újra összpontosítani tudsz.

Használd az AGENTS.md-t állandó kontextus biztosításához

Tarts fenn egy AGENTS.md fájlt, hogy a Codex hatékonyabban működhessen a repozitóriumban a promptok között. Ezek a fájlok általában olyan elnevezési konvenciókat, üzleti logikát, ismert sajátosságokat vagy függőségeket tartalmaznak, amelyeket a Codex önmagában a kódból nem tud kikövetkeztetni. Tudj meg többet az AGENTS.md fájlod strukturálásáról a dokumentációban.

Használd a „Best of N” funkciót a kimenet javítására

A Best-of-N funkció lehetővé teszi, hogy egyszerre több választ hozz létre egyetlen feladathoz, így gyorsan feltérképezhesd a különböző megoldási lehetőségeket, és kiválaszthasd a legjobbat. Bonyolultabb feladatok esetén több iterációt is áttekinthetsz, és különböző válaszok részeit kombinálva érheted el a legjobb eredményt.


Előretekintés

A Codex még mindig kutatási előnézetben van, de már most is kézzelfogható hatást gyakorol arra, ahogyan fejlesztünk: segít gyorsabban haladni, jobb kódot írni, és olyan feladatokat is elvégezni, amelyek egyébként sosem kerültek volna előtérbe.

Izgatottan várjuk az előttünk álló lehetőségeket — ahogy modelljeink egyre jobbak lesznek, és a Codex egyre mélyebben beépül a munkafolyamatainkba, örömmel várjuk, hogy még hatékonyabb módokat találjunk a vele történő szoftverfejlesztésre. Továbbra is megosztjuk, amit a folyamat során tanulunk.

Érdekel, hogyan alkalmazhatod az AI-t a vállalkozásodban?

Tudd meg, hogyan segítünk a vállalatoknak méretezhető és felelősségteljes AI-stratégiákat kialakítani.