Eszközök

Mesterséges intelligenciával generált szöveg

Simon Willison hangvezérelt fejlesztéssel építette be a hírlevél-archívumot a blogjába

A főszereplő Simon Willison, aki a saját blogjához ma adta hozzá az új Newsletters (Hírlevelek) oldalt, és a funkció nagy részét hangvezérléssel készítette el.

Simon Willison hangvezérelt fejlesztéssel építette be a hírlevél-archívumot a blogjába

Simon Willison ma élesítette a blogján a Newsletters oldalt, amely indexeli az általa kiküldött hírleveleket — a heti, ingyenes Substack kiadásokat és a havi, csak támogatóknak szóló frissítéseket. A funkciót gyakorlatilag teljes egészében hangparancsokkal építette meg: a ChatGPT asztali alkalmazás Codex fülén belül, a hangbeszélgetés módban dolgozott a helyi fejlesztői környezetén, miközben vacsorát főzött.

Munkamódszer és a Codex hangmód

A fejlesztést a helyi simonwillisonblog checkout ellen indította el azzal, hogy a Codexnek megadta a "Start dev server and open in browser" parancsot — így a modell előnézeten láthatta a munkaterületet, és később Willison vizuálisan is ellenőrizni tudta az új oldalakat. A hangos beszélgetést a ChatGPT asztali alkalmazásban a "Start new voice chat" gombbal indította el (nem a mikrofon gombbal), a laptopot a konyhába helyezve.

Willisonnak világos elképzelése volt az elkészítendő funkcióról: egy új Django modellre, migrációra, néhány nézet- és template-fájlra, valamint importfüggvényekre volt szükség, hogy külső forrásokból feltöltse az adatbázist. A Codex (GPT-6 Astra High) folyamatosan kérdéseket tett fel tisztázás végett, majd módosította a kódot az utasítások alapján. A beszélgetés nagyjából fél órán át tartott — ennyi ideig főzött Willison.

A beszélgetésből származó kivonatban jól látszanak a természetes diszfluenciák, és a modell által megértett elvárások (például hogy az új tartalomtípus ne jelenjen meg a címkeoldalakon vagy a főoldalon, de megjelenjen naptár alapú archiválási nézetekben), amelyeket a fejlesztés során figyelembe vett.

Amit a hangvezérlésre építve létrehoztak

A hangalapú munkamenet meglepően sok mindent előállított:

  • Egy új Django modell és migráció az importált hírlevelek tárolására, valamint ennek Django Admin konfigurációja.
  • Négy működő import:
    • A legfrissebb Substack elemek RSS-en keresztül.
    • A többi Substack elem egy dokumentálatlan API-ján keresztül (a modell az /api/v1/archive végpontot próbálta meg, majd segített kideríteni a lapozási módot).
    • Az összes publikált havi hírlevél a simonw/monthly-newsletter-archive GitHub repository-ból.
    • A legutóbbi, privát, támogatóknak szóló havi hírlevél egy privát tárolóból.
  • Publikus archive oldalak: /newsletters/ és /newsletters/2026/.
  • A hírlevelek megjelennek napi és havi archive oldalakon is, de nem a címkeoldalakon vagy a blog indexén.
  • A heti Substack hírlevelek linkelnek a Substackre; az archivált havi hírlevelek saját oldallal rendelkeznek.
  • Integráció a Willison oldalán használt keresőmotorral: a publikussá tett havi hírlevelek megjelennek a keresési eredményekben.

A GPT-6 Astra megtervezte az indexoldalt, és a Willison által a helyi előnézetre pillantva adott vokális visszajelzések alapján finomította a megjelenést.

Miért akadt meg a folyamat és hogyan fejezte be

A funkció majdnem teljesen készen volt, a probléma az importokkal kapcsolatos volt: Astra felajánlotta, hogy exportálja az adatokat a helyi másolatból, amit importálhatna a production környezetbe, de Willison azt szerette volna, ha az importok ugyanolyan módon működnek, mint a korábbi import scriptjei. Mivel egyes adatok egy privát GitHub repository-ban voltak, új API kulcs létrehozására és ehhez a művelethez billentyűzet előtti munkára volt szükség.

Miután befejezte a főzés és azt mondta, hogy a funkció nagyjából kész, a Codex létrehozott egy új ágat és megnyitott egy pull requestet. Willison a GitHub PR felületén átnézte a kódot, és talált egy eltérést: az egyik importscript Git-et használt subprocessben, holott ő azt akarta, hogy az import API-t használjon a privát repository eléréséhez. Ezt követően visszaváltott gépelésre, és a Codex-szel kicseréltette a subprocess-alapú megoldást API-alapú megvalósításra.

A PR-ben Willison további javításokat és megjelenésbeli finomhangolásokat is elvégzett; ezek a módosítások további körülbelül fél órányi, gépeléses promptolást igényeltek, majd készen állt a PR lezárására és a deployra.

Végső eredmény és megjegyzések a munkamódszerről

A végeredményt Willison közzétette: az új newsletters indexoldal megmutatja a legfrissebb Substack heti és a GitHub-sponsors havi hírleveleket fordított időrendi sorrendben, és a lap alján év szerinti archív hivatkozások találhatók. A havi hírlevelek saját oldallal rendelkeznek; a heti Substack cikkek a Substackre mutató linkkel szerepelnek.

Willison megjegyzi, hogy bár az OpenAI és mások hangvezérelt demókat népszerűsítik (például DevDay-hez hasonló eseményekre), ez nem feltétlenül válik mindennapi munkamódszerévé. A vizuális előnézet és a lehetőség, hogy szükség esetén gépelve vagy beillesztve továbbítsa az információt, jelentősen megerősíti a hangvezérelt kódfejlesztés használhatóságát. Ugyanakkor a részletek finomhangolásához — hibaüzenetek, kódrészletek beillesztése vagy pontos kijelölések — továbbra is hatékonyabbnak tartja a gépelést.

Otthonról dolgozik, és azt is megjegyzi, hogy nem szeretne ilyen módon egy nyílt, közös munkatérben beszélni a számítógépéhez. A legnagyobb előnyt számára a többszálú feladatvégzés jelenti: mostantól főzés közben — amihez rendszerint podcast vagy rövid videók járnak — ténylegesen képes fejlesztési feladatokat elvégezni.

Címkék

text-to-speech, ai, openai, generative-ai, llms, newsletter, coding-agents, codex, speech-to-text, site-upgrades