OpenAI API

In Moodle steht jedem Team ein API-Key für die OpenAI-Plattform zur Verfügung. Hier wird grob beschrieben, wie dieser API-Key mit der OpenAI-Hilfsbibliothek in einem Node.js-Projekt verwendet werden kann.

API-Key in .env speichern

Erstellen Sie im Projektverzeichnis eine Datei .env und fügen Sie den OpenAI-API-Key Ihrer Gruppen wie folgt ein:

OPENAI_API_KEY=sk-...

In der Datei .env werden in der Regel Umgebungsvariablen und geheime Schlüssel in Node.js-Projekten gespeichert. Zu beachten ist der Punkt (→ .) am Anfang des Dateinamens. Dadruch ist diese Datei „versteckt“ und in der Standardkonfiguration des Datei-Explorers (Windows) oder Finder (Mac) nicht sichtbar.

Die Datei .env wird nicht dem Git-Repository hinzugefügt, da sie geheime Informationen enthält. Dies wird durch einen entsprechenden Eintrag in der Datei .gitignore sichergestellt:

# Folgende Zeile muss in .gitignore stehen
.env
❗️

Bitte achten Sie darauf, dass der API-Key nicht öffentlich zugänglich ist und dass der oben beschriebene Eintrag in der .gitignore-Datei vorhanden ist.

OpenAI API nutzen

Die OpenAI API kann in Node.js-Projekten wie folgt eingebunden werden. Im Projektverzeichnis muss dieses Terminal-Kommando ausgeführt werden, um die Hilfsbibliothek von OpenAI zu installieren:

npm install openai

Anschließend kann die API in einem Node.js-Programm wie folgt verwendet werden.

Zunächst muss die Klasse OpenAI aus der Hilfsbibliothek importiert und ein entsprechendes Objekt initialisiert werden. Es folgt auch ein Beispiel für die Verwendung der Chat-API von OpenAI:

import OpenAI from 'openai';
 
// OpenAI initialisieren (API-Key aus .env-Datei wird geladen)
const openai = new OpenAI();
 
// hier könnte eine Eingabe erfolgen hier „simuliert“ mit einer Variablen
let input = 'Hauptstadt der Schweiz';
 
// Dies zeigt einen API-Aufruf der OpenAI-Responses-API
const response = await openai.responses.create({
  model: 'gpt-4o',
  input: [
    {
      role: 'developer',
      content:
        'Du bekommst Beschreibungen von Orten und lieferst nur die passende Stadt. Wenn du keine Stadt findest, dann antwortest du mit "no result". Sonst gibst du mir keine weiteren Texte.',
    },
    { role: 'user', content: input },
  ],
});
 
console.log('Ergebnis der KI-Suche:', response.output_text);

Programm mit .env-Datei starten

Wir müssen nun dafür sorgen, dass die Umgebungsvariablen aus der Datei .env in unserem Programm geladen werden. Dazu kann in der Datei package.json ein scripts-Eintrag erstellt werden:

{
  "name": "openai-example",
  "version": "1.0.0",
  "main": "main.js",
  "type": "module",
  "scripts": {
    "start": "node --env-file=.env main.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  // usw.
}

Dies ermöglicht den Start des Programms mit dem Befehl

npm start

Dabei wird der entsprechende Eintrag in scripts in der Datei package.json ausgeführt. Bei uns ist dies der Befehl node --env-file=.env main.js, womit aus .env die Umgebungsvariablen geladen werden und das Programm main.js gestartet wird.

Mehr Infos gibt es in der Dokumentation der (umfangreichen!) API von OpenAI, z.B. für die Arbeit mit Text: https://platform.openai.com/docs/guides/text?api-mode=responses

→ Bei den Code-Beispielen javascript auswählen.

Tipp: Eine beliebte Alternative zur OpenAI-Bibliothek ist das umfangreiche „AI SDK“ von Vercel: https://sdk.vercel.ai