1. Erstellung von API-Anfragen
1.1 Senden von Anfragen mit CURL
CURL ist ein Befehlszeilentool, das das Senden und Empfangen von Daten über verschiedene Protokolle wie HTTP und HTTPS unterstützt. Um eine Anfrage an die OpenAI API mit CURL zu senden, benötigen Sie zunächst einen gültigen API-Schlüssel, den Sie dann dem Anforderungsheader hinzufügen.
Hier ist ein Beispiel für einen CURL-Befehl, der verwendet wird, um eine Anfrage an die OpenAI-API zu senden:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Sag, dass dies ein Test ist!"}],
"temperature": 0.7
}'
Sie müssen $OPENAI_API_KEY
durch Ihren API-Schlüssel ersetzen. Aus Sicherheitsgründen vermeiden Sie die Offenlegung Ihres API-Schlüssels in öffentlichen Einstellungen.
1.2 Analyse der Anforderungsheader
In dem oben genannten CURL-Befehl haben wir zwei wichtige Anforderungsheader verwendet: Content-Type
und Authorization
.
-
Content-Type
: Dies informiert den Server darüber, dass Daten im JSON-Format gesendet werden. Sein Wert ist typischerweiseapplication/json
. -
Authorization
: Dies ist die Anmeldeinformation, die zur Authentifizierung der API-Anforderung verwendet wird, und ihr Format ist immerBearer (Ihr API-Schlüssel)
.
Die Richtigkeit dieser beiden Header ist entscheidend für den Erfolg der Anfrage.
1.3 Erstellung des Anfragekörpers
Der Anfragekörper ist ein JSON-formatierter String, der OpenAI über unsere Absichten informiert. In dieser Anfrage verwenden wir model
, um das verwendete Modell anzugeben, übergeben ein messages
-Array, das die Eingabe des Benutzers definiert, und setzen eine temperature
, um die Variabilität der Antwort anzupassen.
Das JSON sieht so aus:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Sag, dass dies ein Test ist!"}],
"temperature": 0.7
}
In diesem Beispiel fordern wir das Modell auf, eine Testantwort basierend auf der Eingabemeldung zu generieren.
1.4 Ausführliche Erklärung der Anforderungsparameter
Im Anfragekörper gibt es mehrere wichtige Parameter zu beachten:
-
model
: Gibt das KI-Modell an, das wir verwenden möchten. OpenAI bietet mehrere Modelle, von denen jedes unterschiedliche Funktionalitäten und Effekte aufweist. -
messages
: Dies ist ein Array, das eine oder mehrere Nachrichtenobjekte enthält, wobei jede Nachricht einerole
enthält, die die Rolle der Nachricht angibt, undcontent
, das den Inhalt der Nachricht darstellt. -
temperature
: Steuert die Gewissheit der Antwort. Eine niedrigeretemperature
erzeugt sicherere Antworten, während ein höherer Wert zu mehr Zufälligkeit führt.
2. Analyse von API-Antworten
2.1 Verständnis der Antwort
Wenn Sie eine Anfrage senden, gibt der Server einen HTTP-Statuscode und möglicherweise einen Antwortkörper zurück. Typischerweise erhält eine erfolgreiche Anfrage einen Statuscode in der 200er-Reihe. Die zurückgegebene JSON-Daten enthalten das Ergebnis der Anfrage, und ein Beispiel für die Antwort ist wie folgt:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\nDies ist ein Test!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
In dieser Antwort sehen wir die Abschluss-ID, den Erstellungszeitstempel, das verwendete Modell, die Token-Verwendung und den tatsächlichen Inhalt der Antwort (im Feld choices
).
2.2 Vollständigkeit und Fehlerbehandlung
Das Feld finish_reason
gibt an, warum die API aufgehört hat, mehr Inhalt auszugeben. Häufige Abschlussgründe sind stop
, length
und idle
. Wenn ein Fehler auftritt, wie das Überschreiten von Token-Limits oder ein falscher API-Schlüssel, erhalten Sie die entsprechende Fehlermeldung und den Statuscode. Es ist wichtig, diese Fehler ordnungsgemäß zu behandeln, um die Kontinuität der Benutzererfahrung und die Stabilität Ihrer Anwendung zu gewährleisten. Für die Fehlerbehandlung können Sie je nach dem zurückgegebenen Statuscode und der Fehlermeldung eine geeignete Fehlerbehandlungsstrategie festlegen, z.B. erneutes Senden der Anfrage oder Rückmeldung an den Benutzer, um den Grund für den Fehler zu erklären.
2.3 API-Anfragen mit Python SDK senden
Hier ist ein Beispiel für die Verwendung des offiziellen OpenAI Python SDK zum Tätigen von API-Anfragen.
Zuerst musst du die openai-Bibliothek installieren, was mit pip möglich ist:
pip install --upgrade openai
Im Anschluss kannst du folgenden Python-Code verwenden, um eine ähnliche API-Anfrage wie im obigen Beispiel zu stellen. Denke daran, YOUR_OPENAI_API_KEY
durch deinen API-Schlüssel zu ersetzen.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Sie sind ein professioneller Entwicklungsassistent, der geschickt ist, verschiedene Programmierprobleme zu lösen."},
{"role": "user", "content": "Schreiben Sie eine Funktion für Quicksort in Go."}
]
)
print(completion.choices[0].message)