Zephyrnet-Logo

Erkundung der OpenAI-API mit Python – KDnuggets

Datum:

Erkunden der OpenAI-API mit Python
Bild erzeugt mit Ideogram.ai
 

Wer hat noch nichts von OpenAI gehört? Das KI-Forschungslabor hat die Welt durch sein berühmtes Produkt ChatGPT verändert.

Es hat die Landschaft der KI-Implementierung buchstäblich verändert, und viele Unternehmen streben nun danach, das nächste große Ding zu werden.

Trotz großer Konkurrenz ist OpenAI immer noch das Unternehmen der ersten Wahl für alle geschäftlichen Anforderungen im Bereich der generativen KI, da es über eines der besten Modelle und kontinuierlichen Support verfügt. Das Unternehmen bietet viele hochmoderne generative KI-Modelle mit verschiedenen Aufgabenfunktionen: Bildgenerierung, Text-to-Speech und viele mehr. 

Alle von OpenAI angebotenen Modelle sind über API-Aufrufe verfügbar. Mit einfachem Python-Code können Sie das Modell bereits verwenden. 

In diesem Artikel erfahren Sie, wie Sie die OpenAI-API mit Python verwenden und welche Aufgaben Sie ausführen können. Ich hoffe, dass Sie aus diesem Artikel viel lernen.

Um diesem Artikel folgen zu können, müssen Sie einige Dinge vorbereiten.

Das Wichtigste, was Sie benötigen, sind die API-Schlüssel von OpenAI, da Sie ohne den Schlüssel nicht auf die OpenAI-Modelle zugreifen können. Um Zugriff zu erhalten, müssen Sie sich für ein OpenAI-Konto registrieren und den API-Schlüssel anfordern Konto-Seite. Nachdem Sie den Schlüssel erhalten haben, speichern Sie ihn an einem Ort, an den Sie sich erinnern können, da er nicht erneut in der OpenAI-Benutzeroberfläche angezeigt wird.

Als nächstes müssen Sie das Prepaid-Guthaben kaufen, um die OpenAI-API nutzen zu können. Kürzlich hat OpenAI Änderungen an der Funktionsweise angekündigt Ihre Abrechnung funktioniert. Anstatt am Ende des Monats zu zahlen, müssen wir ein Prepaid-Guthaben für den API-Aufruf erwerben. Sie können die besuchen OpenAI-Preise Seite, um den von Ihnen benötigten Kredit abzuschätzen. Sie können auch deren überprüfen Modellseite um zu verstehen, welches Modell Sie benötigen.

Zuletzt müssen Sie das OpenAI-Python-Paket in Ihrer Umgebung installieren. Sie können dies mit dem folgenden Code tun.

pip install openai

 

Anschließend müssen Sie Ihre OpenAI-Schlüsselumgebungsvariable mithilfe des folgenden Codes festlegen.

import os

os.environ['OPENAI_API_KEY'] = 'YOUR API KEY'

 

Nachdem alles eingerichtet ist, beginnen wir mit der Erkundung der API der OpenAI-Modelle mit Python.

Der Star der OpenAI API ist ihr Text Generations-Modell. Diese Familie großer Sprachmodelle kann eine Textausgabe aus der als Eingabeaufforderung bezeichneten Texteingabe erzeugen. Eingabeaufforderungen sind im Wesentlichen Anweisungen dazu, was wir vom Modell erwarten, z. B. Textanalyse, Generierung von Dokumententwürfen und vieles mehr.

Beginnen wir mit der Ausführung eines einfachen API-Aufrufs zur Textgenerierung. Als Basismodell würden wir das GPT-3.5-Turbo-Modell von OpenAI verwenden. Es handelt sich nicht um das fortschrittlichste Modell, aber die günstigsten Modelle reichen oft aus, um textbezogene Aufgaben zu erledigen.

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

  1. „Entfesseln Sie die Kraft der prädiktiven Analyse, um datengesteuerte Entscheidungen voranzutreiben!“
  2. „Tief in den Datenozean eintauchen, um wertvolle Erkenntnisse zu gewinnen.“
  3. „Rohdaten durch fortschrittliche Algorithmen in verwertbare Informationen umwandeln.“

Der API-Aufruf für das Textgenerierungsmodell verwendet den API-Endpunkt chat.completions um die Textantwort aus unserer Eingabeaufforderung zu erstellen. 

Für die Textgenerierung sind zwei Parameter erforderlich: Modell und Nachrichten. 

Für das Modell können Sie die Liste der Modelle überprüfen, die Sie auf der zugehörigen Modellseite verwenden können. 

Für die Nachrichten übergeben wir ein Wörterbuch mit zwei Paaren: der Rolle und dem Inhalt. Der Rollenschlüssel gab den Rollensender im Konversationsmodell an. Es gibt drei verschiedene Rollen: System, Benutzer und Assistent.

Mithilfe der Rolle in Nachrichten können wir dabei helfen, das Modellverhalten festzulegen und ein Beispiel dafür zu geben, wie das Modell auf unsere Aufforderung antworten soll.

Erweitern wir das vorherige Codebeispiel um den Rollenassistenten, um eine Anleitung für unser Modell zu geben. Darüber hinaus würden wir einige Parameter für das Textgenerierungsmodell untersuchen, um deren Ergebnis zu verbessern.

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Generate me 3 jargons that I can use for my Social Media content as a Data Scientist content creator."},
        {"role": "assistant", "content": "Sure, here are three jargons: Data Wrangling is the key, Predictive Analytics is the future, and Feature Engineering help your model."},
        {"role": "user", "content": "Great, can you also provide me with 3 content ideas based on these jargons?"}
    ],
    max_tokens=150,
    temperature=0.7,
    top_p=1,
    frequency_penalty=0
)

print(completion.choices[0].message.content)

 

Natürlich! Hier sind drei Inhaltsideen, die auf den bereitgestellten Fachjargons basieren:

  1. „Die Macht des Data Wrangling entfesseln: Eine Schritt-für-Schritt-Anleitung für Datenwissenschaftler“ – Erstellen Sie einen Blogbeitrag oder ein Video-Tutorial, in dem Best Practices und Tools für das Data Wrangling in einem realen Data Science-Projekt vorgestellt werden.
  1. „Die Zukunft der prädiktiven Analytik: Trends und Innovationen in der Datenwissenschaft“ – Schreiben Sie einen Vordenkerbeitrag, in dem Sie aufkommende Trends und Technologien in der prädiktiven Analytik diskutieren und wie sie die Zukunft der Datenwissenschaft prägen.
  1. „Feature Engineering beherrschen: Techniken zur Steigerung der Modellleistung“ – Entwickeln Sie eine Infografik oder Social-Media-Serie, in der verschiedene Feature-Engineering-Techniken und ihre Auswirkungen auf die Verbesserung der Genauigkeit und Effizienz von Modellen für maschinelles Lernen hervorgehoben werden.

Die resultierende Ausgabe folgt dem Beispiel, das wir dem Modell bereitgestellt haben. Die Verwendung des Rollenassistenten ist nützlich, wenn wir einen bestimmten Stil oder ein bestimmtes Ergebnis haben, dem das Modell folgen soll.

Was die Parameter betrifft, finden Sie hier einfache Erklärungen zu jedem Parameter, den wir verwendet haben:

  • max_tokens: Dieser Parameter legt die maximale Anzahl von Wörtern fest, die das Modell generieren kann.
  • Temperatur: Dieser Parameter steuert die Unvorhersehbarkeit der Modellausgabe. Eine höhere Temperatur führt zu vielfältigeren und fantasievolleren Ergebnissen. Der akzeptable Bereich liegt zwischen 0 und unendlich, Werte über 2 sind jedoch ungewöhnlich.
  • top_p: Dieser Parameter wird auch als Kernprobenahme bezeichnet und hilft dabei, die Teilmenge der Wahrscheinlichkeitsverteilung zu bestimmen, aus der das Modell seine Ausgabe bezieht. Ein top_p-Wert von 0.1 bedeutet beispielsweise, dass das Modell nur die obersten 10 % der Wahrscheinlichkeitsverteilung für die Stichprobe berücksichtigt. Seine Werte können zwischen 0 und 1 liegen, wobei höhere Werte eine größere Ausgabevielfalt ermöglichen.
  • Frequenz_Strafe: Dies bestraft wiederholte Token in der Ausgabe des Modells. Der Strafwert kann zwischen -2 und 2 liegen, wobei positive Werte die Wiederholung von Token verhindern und negative Werte das Gegenteil bewirken und die wiederholte Verwendung von Wörtern fördern. Ein Wert von 0 gibt an, dass bei Wiederholung keine Strafe verhängt wird.

Zuletzt können Sie die Modellausgabe mit dem folgenden Code in das JSON-Format ändern.

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON.."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

{
„Jargons“: [
„Prädiktive Analysen nutzen, um wertvolle Erkenntnisse zu gewinnen“,
„Eintauchen in die Feinheiten fortschrittlicher Algorithmen für maschinelles Lernen“,
„Die Macht von Big Data nutzen, um datengesteuerte Entscheidungen voranzutreiben“
]
}

Das Ergebnis liegt im JSON-Format vor und entspricht der Eingabeaufforderung, die wir in das Modell eingegeben haben.

Für vollständig Dokumentation zur Textgenerierungs-API, Sie können sie auf der entsprechenden Seite nachlesen.

Das OpenAI-Modell eignet sich für Anwendungsfälle zur Textgenerierung und kann die API auch zur Bildgenerierung aufrufen. 

Mit dem DALL·E-Modell können wir ein Bild wie gewünscht generieren. Die einfache Möglichkeit, dies durchzuführen, ist die Verwendung des folgenden Codes.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="White Piano on the Beach",
  size="1792x1024",
  quality="hd",
  n=1,
)

image_url = response.data[0].url
Image(url=image_url)

 

Erkunden der OpenAI-API mit Python
Bild erstellt mit DALL·E 3
 

Zu den Parametern hier die Erläuterungen:

  • Modell: Das zu verwendende Bildgenerierungsmodell. Derzeit unterstützt die API nur die Modelle DALL·E 3 und DALL·E 2. 
  • Eingabeaufforderung: Dies ist die Textbeschreibung, auf deren Grundlage das Modell ein Bild generiert. 
  • Größe: Bestimmt die Auflösung des generierten Bildes. Für das Modell DALL·E 3 gibt es drei Auswahlmöglichkeiten (1024×1024, 1024×1792 oder 1792×1024).
  • Qualität: Dieser Parameter beeinflusst die Qualität des erzeugten Bildes. Wenn Rechenzeit benötigt wird, ist „Standard“ schneller als „HD“.
  • n: Gibt die Anzahl der Bilder an, die basierend auf der Eingabeaufforderung generiert werden sollen. DALL·E 3 kann jeweils nur ein Bild erzeugen. DALL·E 2 kann bis zu 10 gleichzeitig generieren.

Es ist auch möglich, ein Variationsbild aus dem vorhandenen Bild zu generieren, allerdings nur mit dem DALL·E 2-Modell. Die API akzeptiert auch nur quadratische PNG-Bilder unter 4 MB.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.create_variation(
  image=open("white_piano_ori.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url

Image(url=image_url)

 

Das Bild ist möglicherweise nicht so gut wie bei den DALL·E 3-Generationen, da das ältere Modell verwendet wird.

OpenAI ist ein führendes Unternehmen, das Modelle bereitstellt, die Bildeingaben verstehen können. Dieses Modell wird als Vision-Modell bezeichnet, manchmal auch als GPT-4V. Das Modell ist in der Lage, anhand des von uns gegebenen Bildes Fragen zu beantworten.

Probieren wir die Vision-Modell-API aus. In diesem Beispiel würde ich das weiße Klavierbild verwenden, das wir aus dem DALL·E 3-Modell generieren, und es lokal speichern. Außerdem würde ich eine Funktion erstellen, die den Bildpfad übernimmt und den Bildbeschreibungstext zurückgibt. Vergessen Sie nicht, die Variable api_key in Ihren API-Schlüssel zu ändern.

from openai import OpenAI
import base64
import requests
def provide_image_description(img_path):

    client = OpenAI()

    api_key = 'YOUR-API-KEY'
    # Function to encode the image
    def encode_image(image_path):
      with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
   
    # Path to your image
    image_path = img_path
   
    # Getting the base64 string
    base64_image = encode_image(image_path)
   
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
    }
   
    payload = {
      "model": "gpt-4-vision-preview",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": """Can you describe this image? """
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 300
    }
   
    response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

    return response.json()['choices'][0]['message']['content']

 

Dieses Bild zeigt einen Flügel an einem ruhigen Strand. Das Klavier ist weiß, was auf eine Lackierung hinweist, die oft mit Eleganz assoziiert wird. Das Instrument steht direkt am Ufer, wo die sanften Wellen sanft den Sand streicheln und einen Schaum erzeugen, der gerade den Sockel des Klaviers und den dazugehörigen Hocker berührt. Die Strandumgebung vermittelt ein Gefühl der Ruhe und Isolation mit klarem blauen Himmel, flauschigen Wolken in der Ferne und einem ruhigen Meer, das sich bis zum Horizont erstreckt. Rund um das Klavier sind im Sand zahlreiche Muscheln unterschiedlicher Größe und Form verstreut, die die natürliche Schönheit und die ruhige Atmosphäre der Umgebung unterstreichen. Durch die Gegenüberstellung eines klassischen Musikinstruments in einer natürlichen Strandumgebung entsteht eine surreale und visuell poetische Komposition.

Sie können die Textwerte im Wörterbuch oben anpassen, um sie an die Anforderungen Ihres Vision-Modells anzupassen.

OpenAI bietet auch ein Modell zur Audiogenerierung basierend auf ihrem Text-to-Speech-Modell. Es ist sehr einfach zu bedienen, obwohl der Spracherzählstil begrenzt ist. Außerdem unterstützt das Modell viele Sprachen, wie Sie hier sehen können Seite zur Sprachunterstützung.

Um das Audio zu generieren, können Sie den folgenden Code verwenden.

from openai import OpenAI
client = OpenAI()

speech_file_path = "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="I love data science and machine learning"
)

response.stream_to_file(speech_file_path)

 

Sie sollten die Audiodatei in Ihrem Verzeichnis sehen. Versuchen Sie, es zu spielen und sehen Sie, ob es Ihrem Standard entspricht. 

Derzeit gibt es nur wenige Parameter, die Sie für das Text-to-Speech-Modell verwenden können:

  • Modell: Das zu verwendende Text-to-Speech-Modell. Es sind nur zwei Modelle verfügbar (tts-1 oder tts-1-hd), wobei tts-1 die Geschwindigkeit und tts-1-hd die Qualität optimiert.
  • Stimme: Der zu verwendende Sprachstil, bei dem die gesamte Stimme für Englisch optimiert ist. Zur Auswahl stehen Alloy, Echo, Fable, Onyx, Nova und Shimmer.
  • Antwortformat: Die Audioformatdatei. Derzeit werden die Formate MP3, Opus, AAC, Flac, WAV und PCM unterstützt.
  • Geschwindigkeit: Die generierte Audiogeschwindigkeit. Sie können Werte zwischen 0.25 und 4 auswählen. 
  • Eingabe: Der Text zum Erstellen des Audios. Derzeit unterstützt das Modell nur bis zu 4096 Zeichen.

OpenAI stellt die Modelle zum Transkribieren und Übersetzen von Audiodaten bereit. Mithilfe des Flüstermodells können wir Audiodaten aus der unterstützten Sprache in Textdateien transkribieren und ins Englische übersetzen.

Versuchen wir es mit einer einfachen Transkription der zuvor erstellten Audiodatei.

from openai import OpenAI
client = OpenAI()

audio_file= open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)

print(transcription.text)

 

Ich liebe Datenwissenschaft und maschinelles Lernen.

Es ist auch möglich, die Audiodateien in die englische Sprache zu übersetzen. Das Modell kann noch nicht in eine andere Sprache übersetzt werden.

from openai import OpenAI
client = OpenAI()

audio_file = open("speech.mp3", "rb")
translate = client.audio.translations.create(
  model="whisper-1",
  file=audio_file
)

Wir haben mehrere Modelldienste untersucht, die OpenAI bereitstellt, von Textgenerierungs-, Bildgenerierungs-, Audiogenerierungs-, Vision- und Text-to-Speech-Modellen. Jedes Modell hat seine eigenen API-Parameter und Spezifikationen, die Sie vor der Verwendung kennen lernen müssen.
 
 

Cornellius Yudha Wijaya ist stellvertretender Manager und Datenautor im Bereich Data Science. Während er Vollzeit bei Allianz Indonesia arbeitet, teilt er gerne Python- und Datentipps über soziale Medien und Schreibmedien. Cornellius schreibt über eine Vielzahl von Themen zu KI und maschinellem Lernen.

spot_img

Neueste Intelligenz

spot_img