En trin-for-trin guide til brug af JavaScript-handlinger til at booste dine brugerdefinerede GPT'er

En trin-for-trin guide til brug af JavaScript-handlinger til at booste dine brugerdefinerede GPT'er

Denne artikel er maskinoversat fra engelsk og kan indeholde unøjagtigheder. Læs mere
Se original

Denne tutorial er den anden i en række tutorials, der dækker stadig mere komplekse brugerdefinerede GPT'er. I denne del lærer du, hvordan du tænder for din brugerdefinerede GPT med brugerdefineret kode ved hjælp af serverløse arbejdere fra Cloudflare. Vores eksempel GPT vil være i stand til at skrive indhold med nøjagtige ordantal, mens ChatGPT ofte fejler med denne opgave.

Hvis du er fortrolig med at oprette og udgive brugerdefinerede GPT'er på ChatGPT ved hjælp af normale tekstinstruktioner, så bør du være god til at fortsætte med denne vejledning. Hvis du dog gerne vil have en genopfriskning eller en gennemgang af processen med at oprette en GPT, henvises til den første vejledning i serien: En trin-for-trin guide til opbygning af brugerdefinerede GPT'er for at få mest muligt ud af ChatGPT, hvor jeg dækker hele processen med at oprette en brugerdefineret GPT frem til starten af denne vejledning.

Tjekliste for grundlæggende krav

  • ChatGPT Plus-konto
  • Cloudflare gratis konto
  • En pålidelig webbrowser til at få adgang til ChatGPT

Oversigt over indhold

  • Definitioner af begreber
  • Oprettelse af brugerdefinerede handlinger
  • Oprettelse og implementering af en Cloudflare-medarbejder
  • Oprettelse af OpenAPI-skema til ChatGPT
  • Tilføjelse af API-nøglegodkendelse
  • Færdiggørelse af CGPT-funktionalitet
  • Prøvning

Definitioner af begreber

For at give nogle baggrundsoplysninger vil jeg kort gennemgå de tekniske termer, der vises i denne vejledning. Men hvis du har nok kendskab til nogen af disse udtryk, er du velkommen til at springe videre!

Problemet med ordtælling

Det var kort efter ChatGPT blev frigivet, at folk begyndte at indse, at det tæller værre end et lille barn. Af en eller anden grund besluttede nogen at bede ChatGPT om at tælle antallet af R'er i ordet "jordbær". Den fik ret nogle gange, men andre gange gættede den 4 eller 2. Lige nu bad jeg den om at tælle en forkert stavet version af ordet, der har 4 R'er, og den rettede ordet og talte derefter. Uanset hvad, er det at tælle bogstaver og ord en ting, som ChatGPT er rigtig dårlig til at gøre.

En almindelig konsekvens af dette problem er, at du ikke pålideligt kan bede ChatGPT om indhold med et bestemt antal ord. Bed om et indlæg på 500 ord, og du kan få 200 eller 900. Spørg igen, og det nye svar er lige så vildt variabelt. I dagens tutorial vil vi arbejde på at løse dette problem med en brugerdefineret GPT, der kan tælle ord.

Artikelindhold
Screenshot: The Strawberry problem

LLM (ChatGPT)

For at starte med det grundlæggende, en LLM (Stor sprogmodel) er en maskinlæringsmodel, der kan udføre det, der teknisk kaldes "Natural Language Processing"-opgaver. Disse omfatter klassificering af tekst, oversættelse, generering og identifikation af mønstre på måder, der gør det muligt at besvare spørgsmål og kommunikere på en naturlig, menneskeligt klingende måde. Til denne brugssag vil vi strengt arbejde med ChatGPT som vores foretrukne LLM-brugergrænseflade. Hvis du er interesseret i mere dybdegående information om Machine Learning og LLM'er, så prøv denne brugerdefinerede GPT, jeg har oprettet for at hjælpe med det!

Artikelindhold
Figure 1: Simple LLM functionality

Brugerdefineret GPT

I modsætning til det normale chatvindue, du bruger, når du får adgang til ChatGPT, giver en brugerdefineret GPT dig mulighed for at give yderligere instruktioner, som bevares i enhver fremtidig chat med denne GPT. Du kan f.eks. oprette en brugerdefineret GPT, der kun kan tale i ordspil. Anvisningerne under motorhjelmen vil simpelthen se sådan ud: "Du taler kun i ordspil."

Dette er det mest grundlæggende niveau i konfigurationen af en brugerdefineret GPT. Som jeg nævnte tidligere, hvis du er interesseret i en mere detaljeret gennemgang af, hvordan du opsætter din første brugerdefinerede GPT, så tjek den første tutorial i serien. Til denne rate vil vi dog skabe den mest basale Custom GPT og fokusere på integrationen med Cloudflare-arbejdere, hvilket giver os mulighed for at køre Javascript-kode på AI-svar.

Da udtrykket Custom GPT vil blive gentaget ofte i denne tutorial, vil jeg bruge forkortelserne CGPT eller GPT fremover.


Artikelindhold
Figure 2: Custom GPT with text instructions


Brugerdefinerede GPT-handlinger

Denne funktion giver dig mulighed for at forbinde din CGPT til eksterne API'er, hvilket i bund og grund betyder, at du kan tillade din GPT at oprette forbindelse til eksterne tjenester og tilføje mere funktionalitet. Dette vil være vores hovedfokusområde i dag, når vi forbinder en CGPT til en serverløs Cloudflare-medarbejder.


Artikelindhold
Screenshot: Create a new custom action button

For eksempel kan du tilføje vejrinformation i realtid, nyhedsdata i realtid, søgeresultater erhvervet fra forskellige specifikke søgemaskiner, integrationer med software, der leverer en API og meget mere.

Artikelindhold
Figure 3: A representation of a Custom GPT powered by Custom Actions (API)

API (Applikationsprogrammeringsgrænseflade)

API'er, leveret af softwareudviklere, gør det muligt for applikationer at kommunikere med hinanden. For eksempel leverer Google API'er til sine forskellige tjenester. Så hvis vi ønskede at bygge en applikation, der viser et kort med brugernes placeringer, kunne vi bruge Google Maps API til at give dette til brugerne uden at oprette vores egen kortsoftware eller hoste nogen af koden på vores side. Vi sender brugerens adresse til API'et, og API'en returnerer den kode, der er nødvendig for at vise kortet.

I dagens tutorial vil vi se på at oprette yderligere brugerdefineret kode og bruge den til at oprette en serverløs CloudFlare-medarbejder til at hoste koden og forbinde den til din CGPT via API, hvilket åbner dørene til uendelige muligheder.

En grundlæggende udnyttelse til API-brug kan ses i denne applikation, som jeg lancerede i 2023, som giver brugerne mulighed for at bruge naturligt sprog til at beskrive, hvad de vil se, og appen bruger en række API'er til at kuratere film og tv-shows.

Artikelindhold
Figure 4: Multiple API workflow to enable robust movie search
Artikelindhold
Screenshot:

Som du kan se, har jeg lavet et filmsøgningsprogram, der viser en masse information uden at have brug for en personlig database med film, hvilket kan tage enorme mængder tid og ressourcer at udvikle. I stedet betaler jeg omkring $5/måned for at bruge denne API.

Serverløse arbejdere (ved hjælp af CloudFlare)

Serverløse medarbejdere er computerplatforme uden servere. Med andre ord er de funktioner eller kode, der kan køre efter behov og uden nogen infrastrukturkonfiguration. For ikke at nævne, at det er gratis at starte med CloudFlare og sandsynligvis vil forblive det til de fleste personlige brugssager. Bemærk dog, at kraftig brug af en Cloudflare-medarbejder vil resultere i on-demand-gebyrer fra Cloudflare. Jeg anbefaler stærkt, at du gør dig bekendt med deres priser, hvis du kan lide denne metode. I denne vejledning vil vi bruge CloudFlare-arbejdere til at vise, hvordan du kan udtænke enhver brugerdefineret funktionalitet, konvertere den til en CloudFlare-arbejder med ChatGPT og derefter integrere arbejderen med din brugerdefinerede GPT ved hjælp af brugerdefinerede handlinger (API).

Dette diagram viser, hvordan en serverløs arbejder kan give en enkel løsning på LLM-hallucinationer og områder, hvor LLM'er kommer til kort, såsom at tælle og lave matematik generelt.

Artikelindhold
Figure 5: Solving the strawberry problem with a serverless worker


Hvorfor Javascript?

Javascript er fremragende til at behandle tekstsvar, arbejde med matematik og yderligere integration. Derudover skriver ChatGPT næsten upåklagelig Javascript, som giver os mulighed for at skabe robust funktionalitet, mens vi ikke selv skriver eller ændrer kode direkte.

Samlet set er det dog vigtigt at bemærke, at ethvert programmeringssprog sandsynligvis ville passe til regningen. Ideen her er at udvide, hvad LLM'er kan gøre med det, som programmeringssprog altid har været i stand til at gøre. For eksempel er programmeringssprog fremragende til at loope gennem data, organisere dem, justere deres formatering, udsende tabeller, filer osv. Ofte kommer ChatGPT til kort, når det kommer til opgaver som denne, eller i det mindste fejler det i at håndtere store mængder data og ender med at hallucinere.

Denne fremgangsmåde skal ske efter behov. Det betyder, at det altid anbefales at prøve, hvad du har brug for at opnå direkte i ChatGPT, evaluere de resultater, du får, og derefter beslutte, om du skal udvide funktionaliteten med kode.


Oprettelse af en brugerdefineret handling

Lad os gå videre og oprette en tom CGPT og derefter give den de grundlæggende instruktioner: "Du tæller ordene i den indsatte tekst." Derefter fortsætter jeg med at teste GPT ved at indsætte et "Lorem Ipsum"-uddrag, der indeholder præcis 42 ord.

Artikelindhold
Screenshot: ChatGPT fails to count words in text by default

ChatGPT gættede 61 ord, hvilket dybest set er et vildt forkert gæt. Vi ved dog, at det er meget nemt at tælle ord ved hjælp af stort set alle programmeringssprog, så det er nu tid til at undersøge muligheden for at integrere en serverløs CloudFlare-arbejder med vores brugerdefinerede GPT for at give den mulighed for at gøre ting ud over ChatGPT's muligheder!

Lad os gå videre og klikke på knappen "Opret ny handling" for at begynde at bygge den handling, der hjælper os med at omgå dette problem.

Artikelindhold
Screenshot: Create a new action button

Det næste skærmbillede er der, hvor magien sker. Her har vi et sted at indsætte "OpenAPI-skema", godkendelsesoplysninger og et link til en privatlivspolitik. Her er en kort forklaring på, hvad hver af disse gør:

  • OpenAPI-skema: API'er, for at tillade kommunikation med software fra omverdenen, giver det, der er kendt som slutpunkter, oftest URL'er. Når du kalder url'en, tænk f.eks. "google.com", giver en API-URL dig mulighed for at videregive yderligere oplysninger. Google.com giver dig f.eks. mulighed for at videregive en søgeparameter til den, f.eks . google.com/search?q=pigeons , hvor den straks vil søge efter "duer" i stedet for at føre dig til hjemmesiden. På samme måde kan man videregive oplysninger til en API og få den til at returnere svar baseret på disse oplysninger. OpenAPI-skemaer en formaliseret metode til detaljering af en API's slutpunkter og metoder (Tilgængelig funktionalitet) uden kode, ved hjælp af et simpelt struktureret format.
  • Godkendelse: API'er, da de giver adgang fra omverdenen, er traditionelt bygget med godkendelseskrav for at beskytte dem mod offentlig adgang. Dette svarer til, at din e-mail-konto eller din computer har en adgangskode. API'er kan bruge forskellige metoder til godkendelse. ChatGPT understøtter godkendelse ved hjælp af API-nøgler eller OAuth samt kørsel uden godkendelse. I dette selvstudium kører vi først vores medarbejdere uden godkendelse. Derefter fortsætter vi med at inkorporere API-nøglegodkendelse efter at have testet alt.
  • Politik om beskyttelse af personlige oplysninger:Hvis du tilbyder din brugerdefinerede GPT, så folk kan bruge den, og bruger en ekstern API, uanset om det er en, du opretter, eller en tredjeparts-API, er du ansvarlig for at undersøge deres privatlivspraksis samt definere din egen omfattende privatlivspolitik og inkludere et link til den i GPT.

Så nu hvor vi har dækket de generelle indstillinger, lad os gå videre og hoppe over til Cloudflare-siden for at starte vores opsætning der.

Oprettelse af din første Cloudflare Worker

For at oprette en CloudFlare-medarbejder behøver du blot en gratis konto hos cloudflare.com, og du er klar til at gå i gang. Når du er logget ind og ser på dit dashboard, skal du finde et menupunkt i venstre side mærket "Compute (Arbejdstagere).”

Artikelindhold
Screenshot: Cloudflare worker initial setup

Klik derefter på den blå "Opret"-knap for at oprette din første medarbejder.

Artikelindhold
Screenshot: Workers & Pages view on Cloudflare

Gå derefter videre og klik på knappen "Opret arbejder" under "Opret en Hello World"-arbejder, fordi vores mål er at oprette en tom Javascript-arbejder, som vi kan bruge ChatGPT til at udfylde.

Artikelindhold
Screenshot: Create an application view on Cloudflare

Og i det næste vindue skal du blot give din medarbejder et navn, som i dette tilfælde vil være "ordtæller", og klikke på knappen "Deploy" nederst for at offentliggøre din medarbejder.

Artikelindhold
Screenshot: "Hello World" Worker initial screen on Cloudflare

Når arbejderen er implementeret, vil du se det næste skærmbillede, hvor du kan klikke på "Rediger kode" for at begynde at arbejde på arbejderen.

Artikelindhold
Screenshot: Cloudflare worker edit code button

Det næste skærmbillede giver dig plads til at arbejde med kode og et forhåndsvisningsområde i højre side.

Artikelindhold
Screenshot: Cloudflare worker code editing and testing screen

Og for at gøre dit liv lettere, gik jeg videre og oprettede en gratis brugerdefineret GPT, der tager imod din anmodning og straks udsender den komplette kode til en CloudFlare-arbejder uden særlige instruktioner. Her er linket til GPT. Vi vil bruge denne GPT nu til at køre denne meget grundlæggende prompt: "Opret en ordtæller."

Artikelindhold
Screenshot: Javascript Worker Creator output for Cloudflare worker

Vi kopierer al den genererede kode og indsætter den i vores nyoprettede arbejder. Derefter klikker vi på knappen "Deploy" for at gemme vores ændringer. Og nu er det tid til at teste vores medarbejder.

Under koden fra ChatGPT, som du ser på skærmbilledet ovenfor, vil du se en teststreng; Her ser det sådan ud:

?text=Dette+er+a+eksempel+tekst+til+tælle+ord

Du kopierer denne tekst og indsætter den lige efter URL'en i forhåndsvisningsvinduet i højre side af CloudFlare, og klik derefter på knappen "Gå" lige ved siden af den.

Artikelindhold
Screenshot: Testing your Cloudflare worker

Hvis alt er konfigureret korrekt, hvilket det er i dette tilfælde, bør du se en ordtælling i det sorte forhåndsvisningsområde. Dette er ordtællingen i eksempelsætningen: "Dette er en eksempeltekst til at tælle ord."

Artikelindhold
Screenshot: Cloudflare worker working correctly

Med funktionaliteten færdig på CloudFlare er vi nu klar til at integrere vores medarbejder med den brugerdefinerede GPT, vi oprettede tidligere. Så det første skridt er at generere et OpenAPI-skema til vores medarbejder. Til dette vil vi bruge en brugerdefineret GPT leveret af OpenAI kaldet "Actions GPT", som giver os mulighed for at generere OpenAPI-skema fra enhver kode eller dokumentation. Du kan få adgang til det på dette link. Opret en ny chat med Actions GPT, og indsæt derefter den kode, vi lige har tilføjet til vores medarbejder. Før du sender din prompt, skal du desuden også kopiere arbejderens URL-adresse, som den så ud, da vi sidst testede, og indsætte den i slutningen af prompten under arbejderkoden, som er som følger:

https://wordcounter.mo-795.workers.dev/?text=This+is+a+sample+text+to+count+words

Hvis du efterlader eksempelteksten, hjælper du Actions GPT med at generere det korrekte skema og give os de rigtige instruktioner. Der er ikke behov for yderligere forklaringer i din prompt.

Artikelindhold
Screenshot: Generating OpenAPI schema
Artikelindhold
Screenshot: OpenAPI schema for word counter worker

Nu kopierer vi alle de genererede specifikationer og indsætter dem i vores brugerdefinerede GPT i OpenAPI-skemaboksen. Så snart du indsætter skemaet, bør du straks se en eller flere "Tilgængelige handlinger" dukke op under boksen. I dette tilfælde får vi én handling "getWordCount". I nogle tilfælde kan du få en rød fejlmeddelelse på dette sted. Hvis du gør det, skal du blot kopiere fejlmeddelelsen og indsætte den som en opfølgning i Actions GPT-chatten, og den vil rette outputtet. Nu er vi klar til at teste med vores originale Lorem Ipsum-streng. Du vil sandsynligvis blive bedt om at "Tillad" ChatGPT at kommunikere med din medarbejder, og så voila! Vi får det rigtige resultat.

Artikelindhold
Screenshot: Testing Custom GPT with the new custom action

Derudover er alle "[Debug]" noter vises ikke, når vi udgiver vores brugerdefinerede GPT, så vi kan bruge den selv eller dele den med andre.

Dette er alt sammen godt indtil videre, men dette API-slutpunkt er offentligt. Det betyder, at hvis nogen får fingrene i dit hemmelige link, vil de være i stand til at bruge det i deres egen software, hvilket potentielt kan koste dig penge på Cloudflare eller misbruge din kode, afhængigt af hvad den gør. Så lad os gå videre og konfigurere godkendelse.

API-nøgle godkendelse

Jeg lod dette trin stå til slutningen, fordi det introducerer en komplikation, og test med flere ukendte kan være forvirrende for begyndere. Men hvis du er fortrolig med disse koncepter, så vil jeg sige, at du skal konfigurere din medarbejder med API-nøglegodkendelse fra starten.

Lad os vende tilbage til vores Javascript Worker Creator GPT, skriv sætningen "Tilføj API_KEY-godkendelse", og følg det med hele scriptet fra den arbejder, vi oprettede tidligere, så det vil se ud som prompten på dette skærmbillede. Som du ser, vil du få et svar med lidt anderledes kode, der indeholder API-nøgletjek.


Artikelindhold
Updating our Javascript with API authentication

Kopier denne medfølgende kode, og indsæt den i kodeeditoren til Cloudflare-arbejderen, og implementer den.

Artikelindhold
Screenshot: Updating our Cloudflare worker code

Dernæst genererer vi et nyt OpenAPI-skema til den opdaterede kode ved hjælp af Actions GPT. Du skal blot indsætte den opdaterede kode sammen med testlinket, som vi gjorde tidligere.


Artikelindhold
Screenshot: Generating new OpenAPI schema

Kopier nu det genererede OpenAPI-skema og indsæt det i din CGPT i de brugerdefinerede handlingsindstillinger. Heldigvis fik vi denne gang en fejl, så jeg kan vise dig, hvordan du håndterer fejl.

Artikelindhold
Screenshot: Error in generated schema

Hvis der er noget galt med det skema, du har indsat, vil du se en rød besked under boksen, der fortæller dig, hvad problemet er. Du skal blot kopiere denne tekstlinje og indsætte den som en opfølgende besked i Actions GPT Chat. ChatGPT vil hurtigt undskylde, forklare, hvad der gik galt, og give dig et opdateret, sandsynligvis fejlfrit skema. Skulle du få en anden fejl, når du indsætter skemaet, skal du blot blive ved med at gentage denne proces så mange gange, som det tager. Til sidst vil det virke. I de fleste tilfælde virker det dog første eller anden gang. Selvfølgelig er dette no-code-tilgangen, så hvis du ikke har nogen idé om, hvad der sker her, er det ok, selvom det anbefales i det mindste at skimme svarene fra ChatGPT.

Nu hvor vi har afsluttet denne del af opsætningen, lad os afslutte opsætningen af vores API-nøgle på Cloudflare.

Generer og gem din API-nøgle

For en API-nøgle kan du stort set bruge enhver tilfældig alfanumerisk streng. Jeg kan dog godt lide at bruge denne hjemmeside, der blot lader mig få en tilfældig nøgle ved at klikke på en knap. https://generate-random.org/api-key-generator


Artikelindhold
Screenshot: Random string generator to use as API Key

Kopier den genererede "gule" streng ved at klikke på knappen under den, og lad os derefter gå tilbage til Cloudflare. Find den del af koden, hvor der står "DIN_API_KEY" og erstatte den del af teksten med den tilfældige streng, vi lige har genereret, og derefter implementere arbejderen.


Artikelindhold
Screenshot: Updating worker code with valid API key

Føj API-nøglen til din brugerdefinerede GPT

Og det sidste trin er tilbage i vores brugerdefinerede GPT. Lige over boksen "OpenAPI Schema", hvor vi indsatte skemaet sidst, er der en lille indstilling mærket "Authentication" med lidt indstillinger "gear" på højre kant. Klik på det for at få vist godkendelsesvinduet.


Artikelindhold
Screenshot: Setting up authentication on your CGPT

I det vindue, der vises, vil du bemærke, at der er forskellige metoder tilgængelige til godkendelse, hvilket giver et robust sæt muligheder. Til denne særlige vejledning vælger vi "API-nøgle" for godkendelsestype, indsæt API-nøglen i det andet felt, hvor der står [Skjult], og vælg derefter "Bærer" for indstillingen Auth-type. I fremtidige tutorials vil jeg fremvise andre integrationer, der kan kræve brug af de andre typer godkendelse. Klik på Gem, og vi skulle være klar til at lave vores sidste test!

Igen bruger jeg en Lorem Ipsum-streng, der er 42 ord lang. Lad os se, om vi stadig tæller korrekt:


Artikelindhold
Screenshot: Testing CGPT with authentication in place

Jep! Vi klarer os godt.

At tage det et skridt videre

Nu hvor vi har en pålidelig ordtæller, for at gøre dette til noget væsentligt, skal vi blot justere vores CGPT-instruktioner en lille smule. Med andre ord kan vi vælge, hvornår vi vil påkalde brugerdefinerede handlinger baseret på brugerdefinerede instruktioner. I dette tilfælde vil jeg forsøge at få denne GPT til at forsøge at producere indhold med nøjagtige ordtællinger, hvilket er noget, som normal ChatGPT kæmper med.

Instruktionerne skal være ligetil. Her er, hvad jeg vil skrive:

Lynhurtig:Når du bliver bedt om at skrive noget med et bestemt ordantal, skal du først udskrive teksten og derefter sende den til ordtælleren for at se, om den matcher det ønskede antal ord. Hvis ikke, skal du identificere antallet af ord, der skal tilføjes eller fjernes, og omskrive outputtet baseret på det. Fortsæt med at gøre dette, indtil du får noget, der er inden for 10% af den ønskede længde.

Vejledningen på 10 % er bare en fejlsikring for at give den noget at tjekke imod. Sandheden er, at den ikke rigtig ved, hvad 10% er, og det meste af tiden vil den forsøge at få et nøjagtigt ordantalsmatch. Men i visse tilfælde kan brug af instruktioner som denne resultere i en endeløs løkke uden at give lidt spillerum. Disse 10% vil hjælpe CGPT med at stoppe og afslutte uendelige loops efter et par forsøg.


Artikelindhold
Screenshot: Testing new prompt to produce content at the specified word count

Som du kan se, skrev CGPT først 41 ord og rettede dem derefter til 42. Efter testen fik den rigtigt!


Artikelindhold
Screenshot: Final word count test


Dette afslutter denne del af selvstudiet. Hvis du støder på problemer eller har spørgsmål eller kommentarer, er du velkommen til at dele dem! Derudover, hvis du kunne lide denne tutorial, så følg mig for mere dybdegående gennemgange og tutorials.

Andre artikler, du måske vil synes om

Hvis du kunne lide denne tutorial, vil du måske kunne lide disse andre tutorials, jeg skrev for nylig:

Hvis du vil se eller tilføje en kommentar, skal du logge ind

Andre kiggede også på