Leerpad
Het is dag vier van het evenement “12 Days of OpenAI”, en OpenAI heeft zojuist grote updates aangekondigd voor een functie die ze eerder dit jaar introduceerden: ChatGPT Canvas.
In deze blog leg ik uit wat ChatGPT Canvas is, hoe je het stap voor stap gebruikt en laat ik met voorbeelden zien hoe je er het meeste uit haalt.
Wat is ChatGPT Canvas?
Stel je voor dat je op een dynamischere manier samenwerkt met ChatGPT aan een blogpost of een Python-script. In plaats van de traditionele chatinterface te gebruiken en de uiteindelijke output uit meerdere reacties samen te voegen, werk je rechtstreeks in een editor. Dat is ChatGPT Canvas.
Hoewel de standaard ChatGPT-interface prima is voor het genereren van ideeën, kan die beperkend zijn voor taken die iteratief redigeren en samenwerken vereisen. Om van ideeën naar gepolijste content te gaan, moet je vaak tussen verschillende tools schakelen, wat het creatieve proces kan verstoren.
Canvas biedt binnen ChatGPT een interface speciaal voor verbeterde schrijf- en codeworkflows. Het overbrugt de kloof tussen chat en contentcreatie, zodat je ideeën makkelijker kunt ordenen en itereren zonder het gesprek te verlaten.

Rechts zie je een teksteditor en links een chatinterface waarmee we ChatGPT kunnen vragen om wijzigingen in het document aan te brengen. Zo fungeert het effectief als een AI-samenwerkingspartner die helpt onze ideeën te verfijnen en te polijsten.
Belangrijkste functies van ChatGPT Canvas
- Gerichte bewerking: We kunnen specifieke secties markeren voor AI-hulp, zodat je alinea’s kunt verfijnen, ideeën kunt uitbreiden of details kunt toevoegen.
- Inline feedback: Canvas kan inline suggesties en feedback geven, zoals menselijke collega’s dat doen wanneer ze samen aan een document werken.
- Tekstlengte: We kunnen vragen om de tekst in te korten of uit te breiden.
- Leesniveau: We kunnen een leesniveau instellen van kleuterklas tot universitair niveau, zodat de taal eenvoudig is aan te passen aan onze doelgroep.
- Code debuggen: Canvas kan ons helpen bugs in de code te vinden en te fixen.
- Versiegeschiedenis: Canvas bevat een versiegeschiedenis, zodat we eerdere versies van het werk kunnen herstellen en geen enkel idee verloren gaat.
Hoe gebruik je ChatGPT Canvas
Op dit moment is ChatGPT Canvas alleen beschikbaar op het web en Windows (Mac-gebruikers kunnen Canvas gebruiken via de browser maar niet via de desktopapp). Ondersteuning voor de Mac-desktopapp en mobiele platforms (iOS, Android en mobiel web) volgt binnenkort.
Zo gebruik je ChatGPT Canvas:
- Ga naar chatgpt.com.
- Selecteer de optie "GPT-4o with canvas" in de modelkeuzelijst linksboven (let op: je hebt een abonnement nodig om Canvas te gebruiken).

De interface is in eerste instantie hetzelfde als de traditionele chatinterface. Nadat je een prompt hebt gegeven, opent de editor en wordt deze gevuld met de inhoud die uit de eerste prompt is gegenereerd.
In sommige situaties wordt de Canvas-interface niet automatisch geactiveerd. In dat geval kunnen we deze handmatig activeren met de prompt "use canvas".
De initiële prompt bepaalt of we werken aan tekstinhoud, zoals een blog, of aan code. De interface en beschikbare commando’s verschillen per geval.
Laten we beginnen met de twee belangrijkste manieren waarop we met ChatGPT Canvas kunnen werken (deze zijn beschikbaar in zowel tekst- als codemodus).
- Selecteer tekst aan de editorzijde (rechterkant). Er verschijnt dan een prompt-pop-up waarin we wijzigingen voor de geselecteerde sectie kunnen vragen.

- Gebruik de chatinterface aan de linkerkant. Daarmee kunnen we een prompt indienen met het verzoek om specifieke wijzigingen.

Versiebeheer en exporteren
ChatGPT Canvas houdt bij welke wijzigingen we aanbrengen. We kunnen eenvoudig tussen verschillende versies navigeren met de pijlen rechtsboven (deze knoppen verschijnen pas nadat ChatGPT de tweede versie heeft gegenereerd).

Met de eerste knop kun je het verschil laten zien tussen de huidige versie en de vorige.

Ik vind dit erg handig om te begrijpen wat de commando’s doen en om mijn schrijven te verbeteren door de verbeteringen van ChatGPT te zien.
Met de laatste knop exporteer je de content. Dat is nog vrij rudimentair en komt neer op kopiëren, waarna we het handmatig moeten plakken waar we het nodig hebben.
Specifieke tools voor tekst
Als ChatGPT vaststelt dat de oorspronkelijke prompt vraagt om een tekstdocument te schrijven, opent het de Canvas-editor in tekstmodus. Content met gemengde tekst- en codestukken gebruikt ook deze interface.
De tekstvoorbeelden in dit artikel gebruiken bijvoorbeeld de volgende initiële prompt:
“Help me een artikel te schrijven dat pandas DataFrames introduceert.”
De specifieke bewerkingstools staan rechtsonder. Bij een tekstdocument krijg je de volgende tools:

- Emoji’s toevoegen: Voegt waar passend emoji’s toe aan de tekst. Naar mijn mening is dit meer een gimmick dan iets wat we echt zullen gebruiken.
- Eindpolish toevoegen: Beoordeelt het hele document en geeft het een laatste touch zodat het klaar is voor oplevering. Corrigeert typfouten, opmaak en structuur.
- Leesniveau: Past het leesniveau van het document aan van kleuterklas tot universitair niveau. Dit is erg handig om te zorgen dat onze content is geschreven in taal die past bij de doelgroep.
- Lengte aanpassen: Past de lengte van de tekst aan door deze samen te vatten of juist uit te breiden met meer details.
- Suggesties doen: Doet suggesties maar past ze niet automatisch toe. Elke suggestie markeert de tekst en toont de suggestie ernaast, vergelijkbaar met andere samenwerkende teksteditors. We kunnen elke suggestie overnemen of negeren in het document.

- Alinea bewerken: In de modus “suggesties doen” herkent ChatGPT de alinea’s in de tekst. Als je met de cursor boven een alinea hangt, verschijnt een knop waarmee je een bewerkingsprompt voor die specifieke alinea kunt geven.

Wanneer we op een van de commando’s klikken, wordt het niet meteen uitgevoerd. Het pictogram verandert in een pijl en we moeten er nogmaals op klikken om het uit te voeren.

Terwijl we deze tools gebruiken, is het handig om het chatvenster in de gaten te houden, want daar legt ChatGPT de aangebrachte wijzigingen uit. Zo krijg je snel inzicht in wat er is aangepast. Een andere manier om de wijzigingen te zien is de diff-knop rechtsboven die we hierboven noemden.
Specifieke tools voor code
Als de initiële prompt gaat over het schrijven van een script, opent ChatGPT Canvas een code-editor in plaats van de teksteditor. Om dit te testen, kunnen we de volgende prompt gebruiken:
“Schrijf een Python-script dat een CSV leest en analyseert met pandas.”
Je herkent de codemodus aan de regelnummers in de editor. In dit geval krijg je de volgende tools:

- Commentaar toevoegen: Voegt relevante comments toe aan de code voor beter begrip.
- Logs toevoegen: Voegt printstatements toe die de waarde tonen van variabelen die ChatGPT relevant vindt.
- Bugs oplossen: Probeert bugs te identificeren en te verhelpen.
- Porten naar een taal: Converteert de code naar een andere taal.
- Code review: Beoordeelt de code en voegt suggesties toe aan de zijkant.

In de nieuwste versie van ChatGPT Canvas kunnen we Python-code direct binnen Canvas uitvoeren.

GPT-4o trainen voor samenwerking: behind the scenes
Om GPT-4o effectief te laten functioneren als samenwerkingspartner binnen de Canvas-interface, focuste het onderzoeksteam van OpenAI op het ontwikkelen van een aantal kernvaardigheden:
- De Canvas activeren voor zowel schrijf- als codeertaken.
- Diverse contenttypen genereren om aan gebruikersbehoeften te voldoen.
- Gerichte bewerkingen uitvoeren op specifieke delen van tekst of code.
- Volledige documenten herschrijven wanneer nodig.
- Inline kritiek leveren om specifieke feedback en suggesties te geven.
Deze training maakte gebruik van nieuwe technieken voor het genereren van synthetische data, waaronder het destilleren van outputs van andere OpenAI-modellen, zoals het o1-model. Deze aanpak maakte snelle verbeteringen mogelijk in schrijfkwaliteit en gebruikersinteractie zonder afhankelijk te zijn van door mensen gegenereerde data.
Evaluatie en uitdagingen
OpenAI gebruikte meer dan twintig geautomatiseerde interne evaluaties om de voortgang te meten. Sommige aspecten, zoals de kwaliteit van comments, vereisten echter menselijke evaluatie vanwege de moeilijkheid van geautomatiseerde beoordeling.
De training bracht verschillende uitdagingen met zich mee:
- Bepalen wanneer Canvas moet worden geactiveerd, zodat het bij de juiste taken opent en overmatig activeren wordt vermeden.
- Het afstemmen van het bewerkgedrag van het model: wanneer gerichte edits volstaan versus wanneer herschrijven van de volledige content nodig is.
- Het genereren van hoogwaardige comments vereiste zorgvuldige iteratie en menselijke evaluatie.
Conclusie
Voor ChatGPT Canvas betekende werken met ChatGPT aan een document of stuk code dat je voortdurend moest schakelen tussen de editor en ChatGPT, waarbij je de voorgestelde wijzigingen uit elke chatbericht moest kopiëren. We konden niet aan het hele document tegelijk werken, en ChatGPT had niet eenvoudig de volledige context of de mogelijkheid om direct wijzigingen aan te brengen.
ChatGPT Canvas maakt het veel makkelijker om met ChatGPT samen te werken tijdens het schrijven van content of code. Voor het schrijven van content, zoals een blogpost, is het behoorlijk krachtig.
Als software engineer vind ik het echter nog te beperkt voor het schrijven van code voor grotere projecten. Oplossingen zoals Cursor AI, die direct met de code-editor integreren, zijn veel effectiever omdat ze context hebben over de volledige codebase. Ik zou ChatGPT Canvas alleen gebruiken voor het schrijven van losse scripts of functies die niet afhankelijk zijn van andere code.

