Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

HTTP-Anfragen und JSON

Nach dieser Lektion: Ich kann eine HTTP-Anfrage und einen JSON-Body lesen und schreiben.

Lektion, 60 Min.2 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Wie Programme über ein Netzwerk sprechen

HTTP ist die Art, wie zwei Programme über ein Netzwerk sprechen: Eines sendet eine Anfrage, das andere schickt eine Antwort zurück. JSON ist das Textformat, das sie meist für die Daten nutzen.

Jede Modell-API arbeitet so. Wer eine Anfrage und eine Antwort lesen kann, kann jede davon nutzen.

Am Ende dieser Lektion

Notiz

Ich kann eine HTTP-Anfrage und einen JSON-Body lesen und schreiben.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Anfragewas ein Programm sendet, um etwas anzufordern
Antwortwas als Erwiderung auf eine Anfrage zurückkommt
Headereine benannte Angabe zu einer Anfrage oder Antwortcontent-type
Statuscodeeine Zahl, die sagt, wie die Anfrage verlief200
JSONein Textformat für Daten aus Schlüsseln und Werten

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Anfrage hat vier Teile

Die Methode sagt, was zu tun ist: GET liest, POST sendet Daten. Die URL sagt, wohin. Header fügen Angaben hinzu, etwa den Typ der Daten. Der Body sind die Daten selbst.

Eine Modell-API erwartet ein POST mit einem JSON-Body, der Ihre Nachrichten enthält.

Beispiel: eine Anfrage, Teil für Teil

TeilWas er enthältIn unserem Aufruf
MethodeWas zu tun istPOST
URLWohin sie gehthttp://ai:4000/v1/chat/completions
HeaderDer Typ des Bodyscontent-type: application/json
BodyDie Daten als JSONmodel, messages, max_tokens

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Anfrage ausgeben, die ein Skript senden würde

Befehl
docker exec -w /home/node/project agent node -e "const koerper={model:'lab',messages:[{role:'user',content:'Sagen Sie Hallo'}],max_tokens:20};console.log('POST /v1/chat/completions');console.log('content-type: application/json');console.log(JSON.stringify(koerper,null,2))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

JSON ist Text aus Schlüsseln und Werten

JSON schreibt Daten als Text. Ein Objekt sind geschweifte Klammern um Paare "schluessel": wert. Eine Liste steht in eckigen Klammern. Schlüssel stehen immer in doppelten Anführungszeichen.

Ihr Programm macht aus Daten JSON-Text, um sie zu senden (JSON.stringify), und aus JSON-Text wieder Daten, um sie zu lesen (JSON.parse).

Eine Antwort hat einen Status und einen Body

Das Erste an einer Antwort ist der Statuscode. Eine Zahl von 200 bis 299 heißt: Es hat geklappt. Eine Zahl von 400 bis 499 heißt: Die Anfrage war fehlerhaft. Ab 500 lag der Fehler beim Dienst.

Lesen Sie den Status, bevor Sie den Body lesen.

Beispiel: Statuscodes, die Ihnen begegnen

StatusBedeutungWas Sie tun
200Es hat geklapptDen Body lesen
400Die Anfrage ist falschDen Body korrigieren
401Schlüssel fehlt oder ist falschDen Schlüssel prüfen
403Nicht erlaubtDie Meldung lesen
429Zu viele AnfragenWarten, dann erneut versuchen
503Noch nicht bereitSpäter erneut versuchen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Modell aufrufen und den Status lesen

Befehl
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const zeigen=(s,t,k,m)=>{console.log('Status: '+s);console.log('Inhaltstyp: '+t);console.log('Schlüssel der obersten Ebene: '+k);console.log('Antwort: '+m)};(async()=>{try{const r=await fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:'Sagen Sie Hallo in drei Wörtern.'}],max_tokens:20})});const j=await r.json();if(r.ok===false)throw new Error(r.status+' '+j.error.message);zeigen(r.status,r.headers.get('content-type'),Object.keys(j).join(', '),j.choices[0].message.content)}catch(e){console.log('Keine Antwort ('+e.message+'). Aufgezeichnetes Beispiel:');zeigen(200,'application/json','id, object, model, choices, usage','Hallo, guter Freund.')}})()"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele glauben, Status 200 heiße, die Antwort sei richtig. Er heißt nur, dass die Anfrage geklappt hat. Ein Modell kann 200 mit einer falschen oder seltsamen Antwort liefern. Prüfen Sie erst den Status, dann den Inhalt.

Weiter: die Anfrage ändern

Ändern Sie die Ausführung, die die Anfrage ausgibt. Fügen Sie dem Body temperature: 0 hinzu und führen Sie sie erneut aus. Setzen Sie dann max_tokens auf 5.

Notieren Sie jedes Mal, welchen Teil Sie geändert haben: die Methode, die URL, einen Header oder den Body.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.