# Voraussetzung: Python und das Paket openai; OPENAI_API_KEY in der Umgebung. # Erst bei eigenem Start werden Texte an OpenAI gesendet und API-Kosten erzeugt. import json import math from openai import OpenAI texte = ["Die Monatsrechnung steht unter Abrechnung.", "Das Passwort lässt sich in den Kontoeinstellungen ändern.", "Die Lieferung kommt am nächsten Werktag."] frage = "Wo ändere ich mein Kennwort?" antwort = OpenAI().embeddings.create( model="text-embedding-3-small", input=texte + [frage]) vektoren = [x.embedding for x in sorted(antwort.data, key=lambda x: x.index)] def cos(a, b): norm = math.sqrt(sum(x*x for x in a) * sum(y*y for y in b)) if norm == 0: raise ValueError("Nullvektor: Ergebnis separat prüfen") return sum(x*y for x,y in zip(a,b)) / norm rang = sorted(range(len(texte)), key=lambda i: cos(vektoren[i], vektoren[-1]), reverse=True) print(json.dumps({"treffer_id": "D" + str(rang[0]+1)}, ensure_ascii=False))