Gå til hovedindhold
OpenAI

Sådan bruger OpenAI Codex

Indledning

Codex bruges dagligt på tværs af adskillige tekniske teams hos OpenAI, såsom sikkerhed, produktudvikling, frontend, API, infrastruktur og performance engineering. Teams bruger det til at accelerere en række tekniske opgaver, lige fra forståelse af komplekse systemer og refaktorering af store kodebaser til levering af nye funktioner og løsning af hændelser under stramme deadlines.

Med udgangspunkt i interviews med OpenAI-ingeniører og interne brugsdata har vi samlet use cases og bedste praksis, der fremhæver, hvordan Codex hjælper vores teams med at arbejde hurtigere, forbedre arbejdskvaliteten og håndtere kompleksitet i stor skala.


Use case 1: Kodeforståelse

Codex hjælper vores teams med hurtigt at komme i gang med ukendte dele af kodebasen, når de onboarder, fejlfinder eller undersøger en hændelse.

De bruger ofte Codex til at lokalisere kernelogikken i en funktion, kortlægge relationer mellem tjenester eller moduler og spore dataflow gennem et system. Det hjælper også med at afdække arkitekturmønstre eller manglende dokumentation, som ellers ville kræve en betydelig manuel indsats at generere.

Under håndtering af hændelser hjælper Codex ingeniører med hurtigt at komme ind på nye områder ved at afdække interaktioner mellem komponenter eller spore, hvordan fejltilstande spreder sig på tværs af systemer.

Anekdoter fra vores teams

“Når jeg retter en fejl, bruger jeg 
 
Ask-tilstand til at se, hvor ellers i kodebasen det samme problem kan opstå”
Performanceingeniør, genfindingssystemer
Prøv at bruge Codex til at forstå kode med disse eksempelprompter:
  • Hvor er godkendelseslogikken implementeret i dette kodelager?

  • Giv et overblik over, hvordan anmodninger behandles i denne tjeneste fra indgangspunktet til svaret.

  • Hvilke moduler kommunikerer med [indsæt modulnavn], og hvordan håndteres fejl?

Use case 2: Refaktorering og migreringer

Codex bruges almindeligvis til at foretage ændringer, der spænder over flere filer eller pakker. For eksempel, når ingeniører opdaterer en API, ændrer, hvordan et mønster implementeres, eller migrerer til en ny afhængighed, gør Codex det nemt at anvende ændringer konsekvent.

Det er især nyttigt, når den samme opdatering skal foretages på tværs af snesevis af filer, eller når opdateringen kræver bevidsthed om struktur og afhængigheder, der ikke let kan fanges med en regex eller find-og-erstat.

De bruger det også til oprydning af kode ved at opdele overdimensionerede moduler, erstatte gamle mønstre med moderne eller forberede kode til bedre testbarhed.

Anekdoter fra vores teams

"Codex udskiftede alle ældre getUserById()-mønstre med vores nye servicemønster og åbnede PR'en." Det, der ville have taget timer, klarede den på få minutter.”
Backend-ingeniør, ChatGPT Web
Prøv at bruge Codex til refactoring og migreringer med disse eksempelprompter:
  • Opdel denne fil i separate moduler efter problem, og generer tests for hver enkelt.

  • Konverter al callback-baseret databaseadgang til async/await.

Use case 3: Ydelsesoptimering

Codex bruges til at identificere og håndtere flaskehalse i ydeevnen.

Under finjustering eller pålidelighedsindsats beder ingeniører Codex om at analysere langsomme eller hukommelseskrævende kodestier, såsom ineffektive loops, redundante operationer eller dyre forespørgsler, og foreslå optimerede alternativer, hvilket ofte resulterer i betydelige gevinster i effektivitet og pålidelighed.

Codex bruges også til at understøtte kodesundhed ved at identificere risikable eller forældede mønstre, der stadig er i aktiv brug. Vores teams bruger det til at reducere langsigtet tech-gæld og proaktivt forhindre tilbagegang.

Anekdoter fra vores teams

"Jeg bruger Codex til at scanne efter gentagne, dyre databasekald." Den er fantastisk til at markere aktive stier og udarbejde batchforespørgsler, som jeg senere kan finjustere.”
Infrastrukturingeniør, API-pålidelighed
Prøv at bruge Codex til ydeevneoptimering med disse eksempelprompter:
  • Optimer dette loop for hukommelseseffektivitet, og forklar hvorfor din version er hurtigere.

  • Find gentagne, dyre operationer i denne anmodningshåndtering og foreslå muligheder for caching.

  • Foreslå en hurtigere måde at batch-databaseforespørgsler i denne funktion.

Use case 4: Forbedring af testdækning

Codex hjælper ingeniører med at skrive tests hurtigere – især på steder, hvor dækningen er tynd eller helt mangler.

Når ingeniører arbejder på en fejlrettelse eller refaktorering, beder de ofte Codex om at foreslå tests, der dækker kanttilfælde eller sandsynlige fejlstier. For ny kode kan den generere enheds- eller integrationstests baseret på funktionssignaturen og den omgivende logik.

Codex er især nyttig til at identificere randbetingelser som tomme input, maksimal længde eller usædvanlige, men gyldige tilstande, der ofte overses i indledende tests.

Anekdoter fra vores teams

”Jeg indstiller Codex til at køre på moduler med lav dækning om natten og vågner op til pull-anmodninger med færdige enhedstests.”
Frontend-udvikler, ChatGPT Desktop
Prøv at bruge Codex til ydeevneoptimering med disse eksempelprompter:
  • Skriv enhedstests for denne funktion, herunder grænsetilfælde og fejlscenarier.

  • Generér en egenskabsbaseret test til dette sorteringsværktøj.

  • Udvid denne testfil til at dække manglende scenarier omkring null-input og ugyldige tilstande.

Use case 5: Øget udviklingshastighed

Codex hjælper teams med at bevæge sig hurtigere ved at accelerere både starten og slutningen af udviklingscyklussen.

Når ingeniører lancerer en ny funktion, bruger de den til at scaffolde standardløsninger – de genererer mapper, moduler og API-stubs for hurtigt at få kørbar kode op uden at skulle manuelt forbinde hvert element.

Når projekter nærmer sig udgivelse, hjælper Codex med at overholde stramme deadlines ved at håndtere mindre, men vigtige opgaver som at prioritere fejl, udfylde de sidste implementeringshuller og generere udrulningsscripts, telemetrikroge eller konfigurationsfiler.

Det bruges også til at omdanne produktfeedback til startkode. Ingeniører indsætter ofte en brugeranmodning eller specifikation og får Codex til at generere et groft udkast, som de kan vende tilbage til og forfine senere.

”Jeg sad i møder hele dagen og nåede alligevel at flette fire PR’er, fordi Codex kørte i baggrunden.”
Produktingeniør, ChatGPT Enterprise
Prøv at bruge Codex til at øge udviklingshastigheden med disse eksempelprompter:
  • Opbyg en ny API-rute til POST /events med grundlæggende validering og logføring.

  • Generér en telemetri-hook til at spore succes/fiasko for det nye onboarding-flow ved hjælp af denne skabelon [indsæt eksempel på din telemetri-kode].

  • Opret en stub-implementering baseret på denne specifikation: [indsæt specifikation eller produktfeedback].

Use case 6: At forblive i flowet

Codex hjælper vores ingeniører med at forblive produktive, når deres arbejdsplaner er fragmenterede og fyldt med afbrydelser.
Det bruges til at opsamle ufærdigt arbejde, omdanne noter til fungerende prototyper eller udskille undersøgende opgaver, som kan tages op igen senere. Det gør det lettere at sætte arbejdet på pause og genoptage det uden at miste konteksten, især når de har vagt eller har mange møder.

"Hvis jeg opdager en hurtig rettelse, starter jeg en Codex-opgave i stedet for at skifte branch og gennemgår dens PR, når jeg har tid."
Backend-ingeniør, ChatGPT API
Prøv at bruge Codex til at holde dig i flow med disse eksempelprompter:

Use case 7: Udforskning og idégenerering

Codex er også nyttig til åbent arbejde, såsom at finde alternative løsninger eller validere designbeslutninger. Du kan opfordre til forskellige måder at løse et problem på, udforske ukendte mønstre eller afprøve antagelser. Dette hjælper med at synliggøre afvejninger, udvide designmulighederne og skærpe implementeringsvalgene.

Det bruges også til at identificere relaterede fejl. Med et kendt problem eller en udfaset metode kan Codex identificere lignende mønstre andre steder i koden, hvilket gør det nemmere at opdage regressioner eller afslutte oprydningsarbejdet.

”Codex hjælper mig med at løse problemet med at komme i gang – jeg indsætter en specifikation og dokumentation, og så genererer det en kodestruktur eller viser mig, hvad jeg har glemt.”
Produktingeniør, ChatGPT Desktop
Prøv at bruge Codex til udforskning og idéudvikling med disse eksempler på prompt:
  • Hvordan ville dette fungere, hvis systemet var hændelsesdrevet i stedet for anmodnings-/svardreven?

  • Find alle moduler, der manuelt opbygger SQL-strenge i stedet for at bruge vores forespørgselsbygger.

  • Omskriv dette i en mere funktionel stil, undgå mutationer og bivirkninger.


De bedste fremgangsmåder

Codex fungerer bedst, når den får struktur, kontekst og plads til at iterere. Her er nogle af de vaner, OpenAI-teams er ved at opbygge for at få konsekvent værdi ud af den i det daglige arbejde.

Start med spørgetilstand

Ved store ændringer skal du starte med at bede Codex om en implementeringsplan ved hjælp af Ask-tilstand, som derefter bliver input til opfølgningsprompter, når du skifter til kodetilstand. Dette totrinsforløb holder Codex jordet og hjælper med at undgå fejl i dens output. Codex fungerer bedst med velafgrænsede opgaver, som det ville tage dig eller en kollega omkring en time at fuldføre eller et par hundrede linjers kode at implementere. Efterhånden som modellerne forbedres, kan man forvente, at størrelsen af de opgaver, den kan påtage sig, vil stige.

Forbedr løbende Codex’ udviklingsmiljø

Opsætning af et opstartsskript, miljøvariabler og internetadgang reducerer Codex' fejlrate betydeligt. Når du kører opgaver, skal du holde øje med buildfejl, der kan rettes i Codex’ miljøkonfiguration. Dette kan kræve et par iterationer, men giver betydelige effektivitetsgevinster på lang sigt.

Strukturer din prompt, som om du skriver en GitHub-sag

Codex svarer bedre, når prompts afspejler den måde, du ville beskrive en ændring på i en PR eller issue. Det betyder, at filstier, komponentnavne, sammenligninger og uddrag fra dokumentationen skal medtages, når det er relevant. Hvis man bruger anvisninger som "Gør det på samme måde, som det gøres i [modul X]", får man bedre resultater.

Brug Codex-opgavekøen som en let opgaveliste

Opret opgaver for at notere sidebemærkninger, ufærdigt arbejde eller små rettelser. Der er intet pres for at generere en fuld PR på én gang. Codex fungerer godt som et mellemrum, du kan vende tilbage til, når du er tilbage i fokus.

Brug AGENTS.md til at levere vedvarende kontekst

Vedligehold en AGENTS.md-fil for at hjælpe Codex med at fungere mere effektivt i dit repository på tværs af prompts. Disse filer omfatter typisk navngivningskonventioner, forretningslogik, kendte særheder eller afhængigheder, som Codex ikke kan udlede alene fra koden. Læs mere om, hvordan du strukturerer din AGENTS.md-fil i dokumentationen.

Udnyt "Best of N" til at forbedre output

Best-of-N-funktionen giver dig mulighed for samtidig at generere flere svar til en enkelt opgave, så du hurtigt kan udforske flere løsninger og vælge den bedste. Ved mere komplicerede opgaver kan du gennemgå flere iterationer og kombinere dele af forskellige svar for at opnå et stærkere resultat.


Fremadrettet

Codex er stadig i forskningsfasen, men det har allerede en reel indflydelse på, hvordan vi bygger. Det hjælper os med at bevæge os hurtigere, skrive bedre kode og påtage os arbejde, der ellers aldrig ville være blevet prioriteret.

Vi er begejstrede for det potentiale, der ligger forude – efterhånden som vores modeller bliver bedre, og Codex bliver mere integreret i vores arbejdsgange, ser vi frem til at åbne op for endnu mere effektive måder at udvikle software med det. Vi vil fortsætte med at dele det, vi lærer, undervejs.

Er du interesseret i at integrere AI i din virksomhed?

Lær, hvordan vi hjælper virksomheder med at udvikle skalerbare og ansvarlige AI-strategier.