Verwendung der ChatGPT-API zur Ermittlung der Lesbarkeit von Texten in Python

ChatGPT ist wirklich ein heißer Scheiß. Daher hier auch von mir ein Beitrag wie man die API mit Python verwenden kann. Als Beispiel wollen wir die Lesbarkeit eines Textes ermitteln.

API Key erhalten

Erst mal anmelden:

  1. Gehe zur OpenAI-Website (https://openai.com) und klicke auf den “Get started for free”-Button.
  2. Erstelle ein kostenloses Konto, indem du deine E-Mail-Adresse und ein Passwort eingibst und auf “Sign up” klickst.
  3. Bestätige deine E-Mail-Adresse, indem du den Link in der Bestätigungs-E-Mail von OpenAI öffnest.
  4. Jetzt bekommt man sehr einfach einen API Key:
  5. Gehe zur Seite “API-Keys” (https://beta.openai.com/account/api-keys) und klicke auf “Generate New Key”.
  6. Gib einen Namen für deinen API-Schlüssel ein und klicke auf “Generate Key”.
  7. Kopiere den API-Schlüssel und speichere ihn an einem sicheren Ort.
  8. Verwende den API-Schlüssel in deinem Python-Programm, indem du ihn als Wert der openai.api_key-Variable setzt:
import openai
openai.api_key = "DEIN_API_SCHLÜSSEL"

Python Bibliotheken über virtuelle Umgebung installieren

Halt stopp. Bevor es zum Python Code geht. Wir benötigen ein paar Bibliotheken über PIP. Da wir das Jahr 2023 schreiben pumpt man dich die nicht mehr einfach so rein. Statt dessen verwendet man virtuelle Umgebungen. Hier mal kurz wie das geht:

  1. Öffne eine Kommandozeile (Terminal) auf deinem System. In Windows kann man mittlerweile auch eine Bash verwenden. Daher hier nur Linux Befehle.
  2. Erstelle ein neues Verzeichnis für dein Projekt, wechsle in dieses Verzeichnis und erstelle darin eine neue virtuelle Python-Umgebung:
mkdir mein-projekt
cd mein-projekt
python3 -m venv env
  1. Aktiviere die virtuelle Umgebung:
source env/bin/activate
  1. Jetzt kann man die Libs installieren
pip install openai requests

Verwendung der ChatGPT-API zur Ermittlung der Lesbarkeit

Nachdem wir alle benötigten Bibliotheken installiert haben, können wir die ChatGPT-API verwenden, um die Lesbarkeit von Texten in deutscher Sprache zu ermitteln. Hier ist ein Beispielprogramm, das den Text an die API sendet und die Lesbarkeit des Textes berechnet:

import openai
openai.api_key = "DEIN_API_SCHLÜSSEL"

# Der Text, den du überprüfen möchtest
text = "Hier steht dein Text"

# Promt-Text,der an die API gesendet wird
prompt = f"Lesbarkeit von Text auf Deutsch: {text}\n"

# Führe den API-Aufruf durch
completions = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=1,
n=1,
stop=None,
temperature=0.0,
)

# Überprüfe die Antwort und gib das Ergebnis aus
if completions.status == 200:
message = completions.choices[0].text.strip()
print(f"Die Lesbarkeit des Textes ist {message}")
else:
print("Fehler bei der API-Anfrage.")

Nicht viel Code. Aber was bedeuten diese ganzen Parameter?

  • engine (Pflichtparameter): Hier geben Sie den Namen des OpenAI-Modells an, das Sie verwenden möchten. Das Standardmodell ist davinci. Wir verwenden aber die Version “text-davinci-002”. Sie ist eine spezifische Konfiguration des DaVinci-Modells, die für Textgenerierungsaufgaben optimiert wurde. Es hat eine geringere Neuronenzahl als DaVinci und ist daher schneller und effektiver in der Analyse von Texten.
  • prompt (Pflichtparameter): Dies ist der Text, den Sie an das Modell senden möchten. In unserem Beispiel fragen wir, ob der Text gut lesbar ist.
  • temperature (optional): Dieser Parameter steuert die Kreativität und Unvorhersehbarkeit der Ausgabe. Ein niedriger Wert (in der Regel zwischen 0 und 1) führt zu einer konservativeren, vorhersehbareren Ausgabe, während ein höherer Wert zu einer kreativeren, unvorhersehbareren Ausgabe führt. Wir setzen diesen Wert auf 0,0, um eine klare, vorhersehbare Antwort zu erhalten.
  • max_tokens (optional): Dies ist die maximale Anzahl von Token, die das Modell generieren darf. In unserem Fall benötigen wir nur eine Antwort (entweder “Ja” oder “Nein”), daher setzen wir diesen Wert auf 1.
  • n (optional): Dies ist die Anzahl der Ausgaben, die das Modell generieren soll. Wir benötigen nur eine Ausgabe, daher setzen wir diesen Wert auf 1.
  • stop (optional): Hier können Sie eine Liste von Tokens angeben, nach denen das Modell mit der Ausgabe aufhört. In unserem Fall benötigen wir keine Stop-Tokens.
  • timeout (optional): Die maximale Anzahl von Sekunden, die das Modell auf eine Anfrage antworten kann, bevor es abgebrochen wird. Wir setzen diesen Wert auf 20 Sekunden.

Insgesamt kaum zu glauben was mit der API alles kostenlos möglich ist. Früher hat man sich hier eine abgebrochen.

Strukturierte Daten zurück bekommen

Wenn man die Daten als JSON strukturiert zurückhaben will kann man den Prompt-Text anpassen:

prompt = f"Analysiere die Lesbarkeit folgenden deutschen Textes und gebe die Ergebnisse als strukturiertes JSON zurück: {text}\n"

Dann kommt sowas zurück:

{
text": "Heute ist ein schöner Tag",
"character_count": 25,
"word_count": 5,
"sentence_count": 1,
"syllable_count": 9,
"average_words_per_sentence": 5.0,
"average_syllables_per_word": 1.8,
"flesch_reading_ease": 116.09,
"flesch_kincaid_grade_level": -2.7,
"smog_index": 3.1,
"automated_readability_index": -1.6,
"coleman_liau_index": 6.17
}

Mit json.loads() kann man dann die Daten parsen und weiterverwenden.



Als erster einen Kommentar schreiben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert