HCL Domino · LLM · OpenAI · API-Engine

E-Mails in HCL Domino direkt durch ein LLM analysieren

Moderne Large Language Models können weit mehr als Texte erzeugen. Sie können strukturierte Daten bewerten, Inhalte klassifizieren und Ergebnisse in einer definierten Form zurückgeben. Mit der SL Net-Solutions Domino API-Engine lässt sich ein solcher Dienst direkt in einen serverseitigen Domino-Prozess integrieren.

Ein neues Beispiel im API-Engine Evaluation Package zeigt dies anhand einer praktischen Aufgabe: E-Mails werden aus einer Domino-Datenbank gelesen, einschließlich relevanter RFC822-Header und MIME-Inhalte, über HTTPS an die OpenAI Responses API übertragen und anschließend direkt in Domino klassifiziert.

Für den Zugriff auf den LLM-Dienst ist keine zusätzliche Middleware erforderlich. Die API-Engine erzeugt den JSON-Request, führt den HTTPS-Aufruf aus, verarbeitet die strukturierte JSON-Antwort und schreibt das Ergebnis wieder in das ursprüngliche Domino-Dokument.

Praktisches Beispiel

Spam-Wert, Klassifizierung und Inhaltsangabe

Das Beispielskript OPENAI_TEST verarbeitet E-Mail-Dokumente aus einer Domino-Datenbank und übergibt die für die Bewertung relevanten Informationen an ein Large Language Model.

Das Modell erhält unter anderem Mail-Header, Authentifizierungsinformationen sowie den eigentlichen Nachrichteninhalt. Die Antwort wird über Structured Outputs auf ein fest definiertes JSON-Schema beschränkt.

Spam Score LLMSpamRating

Bewertung von 0 bis 100. Ein niedriger Wert steht für eine wahrscheinlich legitime Nachricht, ein hoher Wert für einen starken Spam-Verdacht.

Classification LLMCategory

Einordnung in genau eine der Kategorien Advertising, Spam, Malware oder Correspondence.

Summary LLMSummary

Eine kurze sachliche Zusammenfassung des Inhalts, unabhängig von der Sprache der ursprünglichen E-Mail.

{
  "score": 92,
  "category": "Malware",
  "summary": "Suspicious invoice e-mail containing an HTML attachment and indicators of phishing."
}

Ablauf

Vom Domino-Dokument zur strukturierten LLM-Antwort

Die gesamte Verarbeitung findet innerhalb des serverseitigen API-Engine-Prozesses statt. Domino-Daten müssen dafür nicht zunächst über eine separate Anwendung oder Middleware exportiert werden.

Domino Mail Document RFC822 header · MIME body · mail metadata
API-Engine JSON generation · HTTPS · processing
OpenAI Responses API LLM analysis · Structured Outputs
Domino Result Fields score · category · summary

Technischer Ablauf

Was das Testskript tatsächlich macht

1
Domino-Dokument lesen

Die API-Engine sucht Mail-Dokumente, für die noch keine LLM-Bewertung vorliegt.

2
RFC822- und MIME-Daten auslesen

Relevante Header und der Nachrichtentext werden direkt aus dem Domino-Dokument verarbeitet.

3
JSON-Request erzeugen

Der Request für die OpenAI Responses API wird innerhalb des API-Engine-Skripts als JSON-Struktur aufgebaut.

4
HTTPS-Aufruf durchführen

Die API-Engine kommuniziert direkt mit dem externen REST-Dienst. Ein zusätzlicher Proxy oder eigener Middleware-Service ist für das Beispiel nicht erforderlich.

5
Structured Output verarbeiten

Das Modell liefert die Klassifizierung anhand eines fest definierten JSON-Schemas zurück.

6
Ergebnis in Domino speichern

Score, Kategorie und Zusammenfassung werden direkt als Items in das ursprüngliche Domino-Dokument geschrieben.

Structured Outputs

Ein LLM-Ergebnis, das sich zuverlässig weiterverarbeiten lässt

Für automatisierte Prozesse reicht eine frei formulierte Antwort eines Sprachmodells häufig nicht aus. Deshalb verwendet das Beispiel ein definiertes JSON-Schema.

Damit wird beispielsweise sichergestellt, dass der Spam-Wert eine Ganzzahl zwischen 0 und 100 ist und die Kategorie ausschließlich einen der vorgesehenen Werte enthält.

{
  "type": "object",
  "properties": {
    "score": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "category": {
      "type": "string",
      "enum": [
        "Advertising",
        "Spam",
        "Malware",
        "Correspondence"
      ]
    },
    "summary": {
      "type": "string"
    }
  },
  "required": [
    "score",
    "category",
    "summary"
  ],
  "additionalProperties": false
}

Dadurch lässt sich die Antwort wie jede andere strukturierte Schnittstellenantwort verarbeiten. Das Sprachmodell wird nicht als interaktiver Chat verwendet, sondern als Bestandteil eines automatisierten Datenverarbeitungsprozesses.

Mail-Analyse

Mehr als nur der sichtbare Nachrichtentext

Für eine sinnvolle Bewertung werden nicht nur die sichtbaren Inhalte einer E-Mail betrachtet. Auch technische Header können wichtige Hinweise liefern.

Authentication

SPF, DKIM und DMARC

Erfolgreiche Authentifizierungsprüfungen können als positive Indikatoren in die Bewertung einfließen.

Mail Headers

From und Envelope-From

Abweichende Absenderinformationen werden berücksichtigt, gelten aber nicht automatisch als Spam-Indiz.

Content

MIME und Nachrichtentext

Links, Formulierungen, Werbeinhalte und andere Merkmale können zusammen mit den technischen Daten bewertet werden.

LLM-Sicherheit

E-Mail-Inhalte sind Daten, keine Anweisungen

Sobald fremde Inhalte an ein Sprachmodell übergeben werden, muss berücksichtigt werden, dass diese Inhalte selbst Anweisungen enthalten können.

Das Beispiel weist das Modell deshalb ausdrücklich an, sämtliche Inhalte der E-Mail ausschließlich als zu analysierende Daten und niemals als Instruktionen zu behandeln.

Diese Trennung ist insbesondere bei automatisierten LLM-Prozessen wichtig. Die Nachricht selbst darf nicht bestimmen, wie das Modell den übergeordneten Analyseauftrag ausführt.

Wichtige Abgrenzung

Ein Klassifizierungsbeispiel – kein Ersatz für einen Virenscanner

Die Kategorie Malware beschreibt im Beispiel Nachrichten, deren Inhalt, Links, Header oder andere erkennbare Merkmale auf Phishing, Schadsoftware oder einen Angriff hindeuten.

Das Beispiel führt keine technische Malware-Analyse von Dateianhängen durch. Es ersetzt daher weder einen Virenscanner noch ein spezialisiertes Mail-Security-Gateway.

Das Skript ist bewusst als technisches Evaluierungsbeispiel ausgelegt. Für einen produktiven Einsatz wären je nach Umgebung unter anderem Fehlerbehandlung, Logging, Rate Limits, Datenschutzanforderungen, Schlüsselverwaltung und weitere Sicherheitsmaßnahmen zu berücksichtigen.

Integration

Warum dieses Beispiel für Domino interessant ist

Der eigentliche Punkt des Beispiels ist nicht nur die Klassifizierung einer E-Mail. Es zeigt vielmehr, wie sich moderne REST- und AI-Dienste in bestehende Domino-Prozesse integrieren lassen, ohne die eigentliche Verarbeitung aus Domino heraus verlagern zu müssen.

Domino

Daten bleiben Teil des Domino-Prozesses

NSF-Dokumente können direkt gelesen, verarbeitet und nach dem externen API-Aufruf wieder aktualisiert werden.

REST

Externe APIs direkt ansprechen

HTTP, HTTPS und JSON werden innerhalb desselben Engine-Prozesses verarbeitet.

Automation

Automatisch im Hintergrund

Der gleiche Ansatz kann zeit-, ereignis- oder prozessgesteuert auf große Mengen von Domino-Dokumenten angewendet werden.

Domino IQ

Wie ordnet sich dieses Beispiel gegenüber Domino IQ ein?

Mit HCL Domino 14.5 stellt Domino IQ eine native Integration von Large Language Models in die Domino-Plattform bereit. Domino-Anwendungen können über die LotusScript-Klassen NotesLLMRequest und NotesLLMResponse generative AI-Anfragen über Domino ausführen.

Das hier vorgestellte API-Engine-Beispiel verfolgt einen anderen Ansatz. Es kommuniziert über HTTPS und JSON direkt mit der OpenAI Responses API. Ziel des Beispiels ist daher nicht, Domino IQ zu ersetzen, sondern zu zeigen, wie externe AI- und REST-Dienste unmittelbar in einen Verarbeitungsprozess der API-Engine eingebunden werden können.

Domino IQ

Native AI-Integration in Domino

Domino IQ stellt in aktuellen Domino-Versionen eine integrierte AI-Inferenzschicht bereit und macht LLM-Funktionen über dafür vorgesehene Schnittstellen für Domino-Anwendungen verfügbar.

API-Engine

Direkte Integration externer APIs

Die API-Engine kann externe REST-Dienste direkt ansprechen und solche Aufrufe innerhalb desselben Prozesses mit NSF-, MIME-, RFC822-, JSON-, SQL- und weiterer Datenverarbeitung kombinieren.

Kompatibilität

Auch für ältere Domino-Umgebungen interessant

Das Beispiel OPENAI_TEST läuft ab HCL Domino 10 und benötigt daher keine Domino-Version, in der Domino IQ verfügbar ist.

Beide Ansätze schließen sich nicht gegenseitig aus. Domino IQ stellt eine native AI-Schicht für aktuelle Domino-Umgebungen bereit. Die API-Engine eignet sich dagegen insbesondere dort, wo externe APIs direkt angesprochen und mit Datenaufbereitung, Domino-Verarbeitung und nachgelagerten Integrationsschritten kombiniert werden sollen.

Evaluation Package

Das Beispiel selbst ausprobieren

Das aktuelle API-Engine V12.12 Evaluation Package enthält das vollständige Beispielskript OPENAI_TEST.

OPENAI_TEST

Das Beispiel demonstriert die Verarbeitung von RFC822- und MIME-Daten, den Aufbau eines JSON-Requests, den direkten HTTPS-Aufruf der OpenAI Responses API, Structured Outputs sowie die Verarbeitung und Speicherung des Ergebnisses in Domino.

Das Beispiel läuft mit HCL Domino 10 und neuer. Es sollte voraussichtlich auch mit Domino 9 funktionieren, wurde dort jedoch nicht ausdrücklich getestet.

Fazit

LLMs als weiterer Baustein für Domino-Prozesse

Large Language Models müssen nicht als separate Anwendung neben Domino stehen. Sie können wie andere externe Dienste Bestandteil eines automatisierten Domino-Prozesses sein.

Die API-Engine übernimmt dabei die technische Integration: Domino-Daten lesen, JSON erzeugen, HTTPS-Requests ausführen, Antworten verarbeiten und die Ergebnisse wieder direkt in Domino bereitstellen.

Das E-Mail-Beispiel ist nur ein möglicher Anwendungsfall. Der gleiche Ansatz lässt sich beispielsweise für Dokumentklassifikation, Datenextraktion, Zusammenfassungen, Textanalyse oder die strukturierte Verarbeitung von Geschäftsdokumenten einsetzen.