På TV 2 Fyn har vi søsat et projekt, der har til formål at gøre os klogere på både kunstig intelligens og nyhedsbreve. Vi har undersøgt, om vi kan få ChatGPT til at skrive et nyhedsbrev med klangbund hos læserne.
Det har vi (mindst) to grunde til at undersøge. For det første er nyhedsbreve en god måde at skabe loyale læsere på. For det andet vil vi gerne gøre brug af værktøjer som for eksempel ChatGPT de steder, hvor det giver mening.
Nyhedsbrevet er et godt sted at eksperimentere, fordi det har spillet en rolle i digital journalistik siden den spæde start og lader til at være lige så relevant som altid. New York Times udgav sit første i 2001 og har i dag 55 forskellige nyhedsbreve. Washington Post har også omkring halvtreds nyhedsbreve, og samtlige store dagblade i Danmark udsender adskillige nyhedsbreve hver dag.
Når der bliver brugt så mange kræfter på nyhedsbreve, er det, fordi det giver en direkte vej ind i læserens hverdag. Tillidserklæringen, der ligger i at lade et medie prikke dig digitalt på skulderen en gang om dagen, er et godt fundament for et stærkt forhold til læseren. Samtidig giver nyhedsbrevet mulighed for at målrette sit indhold til bestemte læsergrupper, afprøve hvad de godt kan lide og på den måde blive klogere på læserne.
Sidst men ikke mindst er det en måde at levere sin journalistik og dermed værdi til læseren, samtidig med at man stille og roligt opbygger loyalitet.
Vi vil på TV 2 Fyn gerne kunne levere et stærkt nyhedsbrev på den mest effektive facon. Hvis vi kan levere et bedre produkt, end vi gør nu ved hjælp af kunstig intelligens, er det i hvert fald værd at udforske.
Projektet er inspireret af det amerikanske medie ARLnow, der arbejder på et fuldstændig AI-genereret nyhedsbrev, som man kan læse mere om her: https://www.arlnow.com/2023/04/20/readers-can-now-sign-up-for-arlnows-ai-written-email-newsletter/
Nærværende artikel handler dels om, hvilke erfaringer vi indsamlede fra den fokusgruppe, vi forsynede med et nyhedsbrev ”produceret” af kunstig intelligens, og dels om hvordan vi valgte at løse det teknisk.
Vores nyhedsbrev
I dets nuværende form består TV 2 Fyns nyhedsbrev af en liste af links til dagens historier og ikke meget andet. Det giver et hurtigt overblik over dagen, men det er begrænset, hvad man lærer af det, hvis man ikke åbner de medfølgende link.
Hvis vi i stedet sender et mere helstøbt nyhedsbrev, der består af deciderede resuméer af historierne, er vi mindre afhængige af klik for at sikre, at vores nyheder rent faktisk når helt ud til modtagerne.
Tanken med dette projekt var at fodre vores historier ind i OpenAI’s API og bruge deres GPT-4 model til at få et nyhedsbrev tilbage. Senere i artiklen kommer vi nærmere ind på, hvordan vi gjorde netop det.
Hvad synes brugerne?
For at afprøve vores idé rekrutterede vi en gruppe fynboer til at teste vores nyhedsbrevs-idé på. 20 styks sagde ja til at modtage et nyhedsbrev i to uger. Undervejs svarede de på et spørgeskema for hvert nyhedsbrev, og som afrunding på projektet deltog de i en længere session på TV 2 Fyn, hvor nyhedsbrevet blev diskuteret.
Selvom det skal understreges, at vi ikke får statistisk signifikant data ud af en gruppe på 20 mennesker, gav det os alligevel nogle interessante input.
For det første var de positivt stemte, og gav nyhedsbrevene en vurdering på 7,73 ud af 10. Vi afprøvede to ”toner” i nyhedsbrevet. I første uge var det ung, kvindelig ”nyhedsbrevs-veninde”, mens det i anden uge var en konstruktiv person, der knuselsker Fyn. Forskellen i tone havde dog ikke den store betydning, hvis man kigger på bedømmelserne, da gennemsnittene for den friske og den konstruktive tone var stort set identiske.
For det andet ville de gerne have flere billeder. Vores integration med OpenAI’s API, der gav os en nyhedsbrevs-generator, producerede kun tekst og emojis, og derfor var en del af feedbacken, at modtagerne savnede flere visuelle elementer.
En tredje konstatering var, at den gruppe, vi sendte nyhedsbrev til, ikke havde noget imod, hvis deres nyhedsbrev var sat sammen af en kunstig intelligens. Over en bred kam blev der dog efterspurgt en tydelig varedeklaration af, præcis hvad der var AI-genereret og måske også, hvordan det var gjort.
Men at selve nyhedsbrevet var skrevet af en GPT-model, skræmte ikke. Der blev endda spurgt ind til, om man kunne få den kunstige intelligens til også at kuratere udvalget af nyheder.
Holdningerne til antallet af emojis og de forskellige toner var næsten lige så mange, som der var deltagere. Men overordnet har responsen har givet os grund til at tro, at det er værd at undersøge nærmere, hvordan et AI-genereret nyhedsbrev kan se ud i produktion.
Sådan gjorde vi (rent teknisk)
I tidligere projekter har vi anvendt ChatGPT på en ”håndholdt” facon. Altså copy-pasted den tekst, vi gerne ville have input til, ind på chat.openai.com. Det ville vi gerne undgå i denne omgang. Det skyldes dels, at jo flere gange, man skal copy-paste, jo flere muligheder er der for fejl, og dels skyldes det, at det ikke er en farbar vej, hvis vi gerne vil have det i produktion.
Derfor byggede vi en lille web app.
Appen er bygget i Next.js og frontenden kan ses (men ikke anvendes) her: https://newsletter-generator-q7yu.vercel.app/
Github repo: https://github.com/TV2-Fyn/tv2fyn_newsletter_generator
Tanken var, at brugeren blot skulle vælge en tone for sit nyhedsbrev. Herefter skulle man indsætte links til de artikler, man gerne ville have med i nyhedsbrevet. Derfra skulle OpenAI’s API klare resten.
Måden, det fungerer på, er, at vi ved hjælp af pakken ”cheerio” scraper artikelindholdet i de links, brugeren sætter ind i generatoren.
Cheerio: https://www.npmjs.com/package/cheerio
Artiklerne bliver samlet i en lang tekststreng med rubrik, underrubrik, brødtekst og link markeret ved hjælp af XML-tags. Valget faldt på XML-tags, fordi openai selv nævner netop XML som en mulig afgrænser i deres best practices: https://platform.openai.com/docs/guides/gpt-best-practices/strategy-write-clear-instructions
Tekststrengen er det prompt, der bliver sendt afsted til OpenAI’s API. Samtidig udnytter vi, at man har muligheden for at definere systemets rolle. Altså hvilken måde systemet skal svare på. Og faktisk er det ikke mere kompliceret end at sige, hvad man gerne vil have.
Da vi gerne vil have et nyhedsbrev, kan vi blot skrive, at OpenAI’s model skal opføre sig som en nyhedsbrevsskribent, der modtager en række artikler, afgrænset med XML-tags. Artiklerne skal skrives sammen til et nyhedsbrev med en klart defineret tone, og der skal anvendes masser af emojis.
Og dermed har vi et værktøj, hvor man kan smide links ind og få nyhedsbreve ud.
Herunder kan du se, hvordan et nyhedsbrev genereret af GPT-3 ser ud.
Udfordringer (endnu mere teknisk)
I forhold til den tekniske del var det først planen at lave en hjemmeside, hvor en journalist kunne gå ind for at indsætte sine links og få et nyhedsbrev igen.
For at sikre at vores API-nøgler forbliver skjult, var planen at deploye ved hjælp af Vercel og bruge deres edge-funktioner som backend.
Men hvis man har forsøgt sig med OpenAI’s API, ved man, at den kan være sløv til at svare. Særligt, hvis man anvender GPT-4, som vi gjorde til dette projekt. Responstiden på at få et nyhedsbrev tilbage, kan være flere minutter. Det skabte udfordringer i forhold til at gøre generatoren tilgængelig på web.
Tjenester som Vercel og Netlify har nemlig en begrænsning på responstiden. En løsning kunne have været at sætte en decideret server op, der håndterede backend-logikken, men den slags lå uden for, hvad vi var interesserede i til en prototype. For at komme uden om den udfordring, valgte vi udelukkende at køre projektet lokalt. Altså kørte vi det på en localhost, når vi havde brug for at generere nyhedsbreve.
Næste skridt
Vi har stadig masser at lære om vores brugere og om nyhedsbreve, så det vil vi fortsætte med at undersøge. Vi vil for eksempel gerne teste et genereret nyhedsbrev af på en større gruppe. På den tekniske side har vi også stadig masser af trial and error til gode for at finde ud af, hvad der giver de bedste resultater.
På den tekniske front er der også en række muligheder for videreudvikling. En mulighed er at introducere streamingaf svarene fra OpenAI, så nyhedsbrevet løbende bliver udfyldt, ligesom man ser i ChatGPT. Det kunne være et led i at undgå tidsbegrænsninger på responstid. Hvis vi gør værktøjet tilgængeligt på web, vil det dog sandsynligvis også betyde, at vi skal kræve login for at bevare kontrollen over brugen af OpenAI’s API.
Derudover vil vi, hvis vi skal have generatoren i produktion, også gerne kigge på en måde at arkivere nyhedsbrevene på. I den nuværende udgave kan man gemme versioner af sit nyhedsbrev i browserens hukommelse, men ikke decideret arkivere det.
Endnu længere ude i fremtiden, kan funktionaliteten være relevant at bygge ind i vores CMS på en måde, hvor brugeren blot skal vinge sine udvalgte artikler af for at producere et nyhedsbrev.
Men før vi når dertil, vil vi gerne undersøge endnu mere.
Giv lyd
Hvis du selv har forsøgt dig med noget lignende eller overvejer at gøre det, er du velkommen til at dele dine erfaringer med os på madr@tv2fyn.dk.
Du kan melde dig til vores nuværende nyhedsbrev her: https://www.tv2fyn.dk/nyhedsbrev
Leave a Reply