De auteur heeft het Direct Relief Program geselecteerd om een donatie te ontvangen als onderdeel van het Write for Donations-programma.
Inleiding
OpenAI GPT-modellen hebben aan populariteit gewonnen vanwege hun brede gebruik bij het genereren van tekstinhoud voor verschillende taken zoals het opstellen van e-mails, het beantwoorden van klantenservice-FAQ’s en taalvertaling, om er een paar te noemen.
Deze GPT-modellen worden over het algemeen gebruikt via ChatGPT, een chatbot uitgebracht door OpenAI, of via API’s en bibliotheken die meer controle bieden. In deze tutorial wordt u begeleid bij het benutten van deze modellen met behulp van de OpenAI API binnen uw Django-webproject. U leert hoe u de ChatCompletion API kunt aanroepen met verschillende parameters en hoe u de antwoorden kunt formatteren en gebruiken.
Tegen het einde van deze tutorial heeft u een Django-eindpunt gemaakt dat, wanneer het wordt aangeroepen, een verzoek naar OpenAI stuurt om een kort verhaal te construeren met de opgegeven woorden en het antwoord teruggeeft.
Vereisten
Om deze tutorial te voltooien, heeft u nodig:
-
Een bestaand Django-project. Als je helemaal opnieuw begint, kun je een Django-project opzetten door de tutorial hoe je een Django-ontwikkelomgeving instelt te volgen.
-
Een OpenAI-account: Ga naar de OpenAI-platformwebsite en zoek naar de knop ‘Aanmelden’. Nadat je je hebt aangemeld, moet je je e-mailadres verifiëren en persoonlijke informatie invoeren.
-
Een OpenAI API-sleutel: Nadat je je account hebt ingesteld, log je in en ga je vanuit je dashboard naar de API-sleutels-sectie. Klik op ‘Nieuwe geheime sleutel maken’. Je API-sleutel wordt gegenereerd en ziet er ongeveer zo uit:
sk-abcdefghijklmnop
. Zorg ervoor dat je deze sleutel op een veilige locatie opslaat, want je kunt deze niet meer zien. -
De OpenAI Python-pakket: Als u de tutorial in de eerste vereiste hebt gevolgd, zou u al een virtuele omgeving met de naam
env
actief moeten hebben binnen een directory met de naamdjango-apps
. Zorg ervoor dat uw virtuele omgeving actief is door te controleren of de naam ervan tussen haakjes aan het begin van uw terminalprompt verschijnt. Als het niet actief is, kunt u het handmatig activeren door het volgende commando uit te voeren:
In uw terminal vanuit de directory django-apps
. Zodra uw omgeving actief is, voert u het volgende uit om het OpenAI Python-pakket te installeren:
Stap 1 — Oproepen naar OpenAI
In deze stap voeg je je OpenAI API-sleutel toe aan de OpenAI-client en maak je een eenvoudige API-oproep naar de ChatCompletion API. Je zult ook de reactie onderzoeken die je van de API krijgt.
Om te beginnen, open je Python-interpreter:
Importeer eerst de OpenAI-client en voeg je API-sleutel toe aan de client:
Vervang "je-api-sleutel"
door de daadwerkelijke API-sleutel die je hebt gekregen van het OpenAI-platform.
Latem maken we een API-oproep naar de ChatCompletion API. Gebruik de chat.completions.create()
methode:
In de bovenstaande code hebben we het opgegeven model om te gebruiken als gpt-3.5-turbo
, voegden we een enkel bericht object toe met de rol gebruiker
(andere opties zijn systeem
en assistent
) en de inhoud / prompt tellen van 1 tot 10
.
Om de reactie van de API-oproep te zien, kun je het reactiebericht afdrukken, dat de getallen 1 tot en met 10 in een mooie kleine lijst moet bevatten:
Uitvoer:
Gefeliciteerd! Je hebt met succes een eenvoudige API-oproep gedaan naar OpenAI en een reactie opgehaald. We zullen de API-reactie formatteren en gebruiken om een kort verhaal te maken in de volgende stappen.
Stap 2 — Werken met parameters
Nu je succesvol een eenvoudige API-oproep hebt gemaakt naar de ChatCompletion API, laten we eens kijken hoe je kunt werken met parameters om het gedrag van het model aan te passen. Er zijn verschillende parameters beschikbaar waarmee je de generatie van tekst kunt controleren. We zullen hieronder naar de drie kijken.
1. Temperatuur: De temperatuurparameter bepaalt hoe willekeurig de gegenereerde inhoud is. Een hogere temperatuurwaarde, zoals 0.8, zal meer diverse en creatieve reacties opleveren, terwijl een lagere temperatuurwaarde, zoals 0.1, meer vergelijkbare reacties zal produceren. Bijvoorbeeld:
Laten we opnieuw temperatuur=0.1
proberen om de nieuw gegenereerde tekst te zien:
De tekst bleek hetzelfde te zijn. Laten we nu twee keer temperatuur=0.8
proberen:
2. Max tokens: Hiermee kun je de lengte van de gegenereerde tekst beperken. Door een specifieke waarde in te stellen, wordt ervoor gezorgd dat de reactie niet meer dan een bepaald aantal tokens overschrijdt. Tokens zijn evenredig met het aantal woorden in de reactie. Bijvoorbeeld:
Het veranderen van de waarde naar 20:
3. Stream: Dit bepaalt of de antwoorden moeten worden gestreamd of teruggegeven. Wanneer ingesteld op True
, zal de API-respons worden gestreamd, wat betekent dat je de uitvoer in brokken ontvangt terwijl deze wordt gegenereerd. Dit is handig voor lange gesprekken of real-time toepassingen. Om streaming in te schakelen, voeg je de stream
-parameter toe met een waarde van True
aan de API-oproep. Bijvoorbeeld:
In de code hierboven houdt de variabele chunk_message
de berichtinhoud vast in elk stukje dat door de API wordt geretourneerd. Voordat we elk stuk aan de lijst collected_messages
toevoegen, controleren we of het stuk None
is, aangezien de inhoud van het laatste stuk meestal None
is.
Het gebruik van deze parameters stelt u in staat om het gedrag van het model aan te passen en de gegenereerde reacties beter aan te sturen voor uw toepassing of project. Experimenteer met verschillende waarden om de gewenste resultaten te bereiken.
In de volgende stap zullen we wat context aan het model geven in de vorm van een systeemprent.
Stap 3 – Het maken van een systeemprent
In deze stap zullen we alle informatie die we hebben geleerd combineren en een systeemprent maken die context biedt aan het GPT-model, waarbij we het doel ervan specificeren en de regels vaststellen.
Eerst maken we een Python-module met daarin een functie om deze taak te verwerken. Sluit de interpreter af en maak een nieuw bestand genaamd story_generator.py
in uw Django-projectdirectory.
Vervolgens kunt u de OpenAI API-sleutel toevoegen aan uw omgevingsvariabelen zodat u deze niet rechtstreeks aan het Python-bestand toevoegt:
Open story_generator.py
en maak daarbinnen een openai-client aan en definieer een functie genaamd generate_story
die een verzameling woorden als invoer neemt:
In deze functie roepen we een afzonderlijke functie aan, get_short_story
, om de API-aanroep naar OpenAI voor het verhaal te maken en vervolgens nog een andere functie, format_response,
, om de respons van de API te formatteren.
Latenn we ons nu richten op de functie get_short_story
. Voeg het volgende onderaan je story_generator.py
-bestand toe:
In deze functie stellen we eerst de systeemprompt in, die het model informeert over de taak die het moet uitvoeren en specificeren hoe lang het verhaal moet zijn. Vervolgens geven we deze systeemprompt door aan de ChatCompletion API en retourneren we de respons.
Tenslotte kunnen we de functie format_response
implementeren. Voeg het volgende onderaan je story_generator.py
-bestand toe:
U kunt deze functies nu testen door de functie generate_story
aan te roepen, waarbij u een verzameling woorden als argument doorgeeft, en de reactie ervan te printen. Voeg het volgende toe onderaan uw bestand story_generator.py
:
Sla het bestand nu op en sluit het af. Voer het script uit om de gegenereerde tekst te zien:
Uitvoer:
Best interessant! Laten we de regel met het print
-statement verwijderen, aangezien we de functie generate_story
vanuit een Django-weergave zullen aanroepen. Verwijder de gemarkeerde regel uit uw bestand story_generator.py
:
Voel u vrij om te experimenteren met de systeemprompt en meer context en regels toe te voegen om de gegenereerde verhalen te verbeteren.
Ga verder naar de volgende stap om de module story_generator
te integreren in uw Django-project.
Stap 4 – Integratie met een backend-weergave:
U moet een Django-weergave en URL-route maken om de module story_generator
te integreren in uw Django-project. In de weergave haalt u de verwachte woorden uit het verzoek, roept u de functie generate_story
aan en retourneert u de reactie.
Open eerst het bestand views.py
in uw Django-app-map. Importeer de benodigde modules en voeg een weergavefunctie genaamd generate_story_from_words
toe:
Vervolgens, open het urls.py
bestand en voeg een URL-patroon toe voor de generate_story_from_words
weergave:
Nu kunt u het /generate-story/
eindpunt aanvragen. Bijvoorbeeld, om te testen met behulp van curl, kunt u een GET-verzoek maken naar het eindpunt met de verwachte woorden als queryparameter. Open uw terminal en voer de volgende opdracht uit:
Zorg ervoor dat u "http://uw_domein"
vervangt door het daadwerkelijke domein waar uw Django-project wordt gehost. De woorden "kat,boek,computer,zon,water"
vertegenwoordigen de verwachte woorden waarmee u een verhaal wilt genereren. U kunt ze naar wens wijzigen.
Na het uitvoeren van de opdracht, zou u de reactie van de server moeten zien, die het gegenereerde verhaal zal bevatten:
Uitvoer:
Conclusie
Na het voltooien van deze tutorial, heb je geleerd hoe je OpenAI GPT-modellen kunt integreren in je Django-project met behulp van de OpenAI API. Je hebt oproepen gedaan naar de ChatCompletion API, het gedrag van het model aangepast door te werken met parameters zoals temperatuur en max tokens, en een systeemprompt gemaakt om context aan het model te geven. Je hebt ook de story_generator
-module geïntegreerd in je Django-project. Nu kun je korte verhalen genereren door de /generate-story/
-eindpunt aan te roepen met de verwachte woorden als queryparameter.
Om je Django-project verder te verbeteren, kun je de aanvullende functionaliteiten van de OpenAI API verkennen en experimenteren met verschillende systeemprompts en parameters om unieke en creatieve verhalen te genereren.