enaio® KAIROS-Dashlet (beta)
Das enaio® KAIROS-Dashlet ist nicht Bestandteil einer Standardinstallation. Es kann ausschließlich im Rahmen von Projekten eingebunden werden. Wenden Sie sich an Ihre Kontaktperson bei OPTIMAL SYSTEMS GmbH für weitere Informationen.
Dashlets stehen aktuell noch nicht in enaio® mobile zur Verfügung und allgemein nicht auf mobilen Endgeräten, einschließlich enaio® webclient auf mobilen Endgeräten.
Funktionen
Mit Hilfe des enaio® KAIROS-Dashlet können rechnungsspezifische Dokumente automatisch klassifiziert und Indexdaten extrahiert werden.
Die im enaio® KAIROS-Dashlet hinzugefügten Dokumente werden mit Unterstützung von künstlicher Intelligenz analysiert. enaio® KAIROS erkennt sowohl den Dokumenttyp durch vordefinierte Kategorien (z. B. Rechnung) als auch grundlegende Daten, die als Indexdaten extrahiert werden (z. B. Absender, IBAN, Rechnungsnummer). Alle Daten können manuell nachbearbeitet werden. Anschließend können die Dokumente in enaio® angelegt werden.
KAIROS und LLM
Bei der KI-Unterstützung im Dashlet wird zwischen zwei Typen unterschieden:
-
KAIROS: Einsatz eines kundenspezifisch trainierten Modells, das auf vordefinierte Dokumenttypen zurückgreift.
-
LLM: Einsatz eines untrainierten, privaten Large Language Models (kein Austausch mit öffentlich verfügbaren KI-Lösungen), das anhand der Objektdefinition von enaio® versucht, passende Daten zuzuordnen.
Konfiguriert wird, ob Benutzer beide Modelle oder nur eines von beiden einsetzen können. Benutzer können entscheiden, welche der ihnen zur Verfügung stehenden Modelle sie jeweils zur Klassifikation und zur Indexdatenextraktion einsetzen möchten.
Unterstützte Datei-Formate
Neben PDF-Dokumenten werden auch Microsoft-Office-Formate unterstützt. Alle Formate, die in folgender Liste sowohl 'text rendition' als auch 'pdf rendition' unterstützen, können mit dem Dashlet angelegt werden: Supported Formats
Konfiguration
Die Konfiguration des enaio® KAIROS-Dashlet erfolgt über die Konfigurationsdateien ai-connector-prod.yml und restdashlet-prod.yml aus dem Verzeichnis \config von enaio® service-manager.
Anpassungen an Konfigurationsdateien erfordern einen Neustart der Services.
Objektdefinition
Für die das Anlegen von Dokumenten über das enaio® KAIROS-Dashlet steht eine Objektdefinitionsdatei zur Verfügung, die als Vorlage für die Konfiguration der Dokumenttypen in enaio® editor verwendet werden kann.
Service 'ai-connector' - ai-connector-prod.yml
Die notwendigen Konfigurationsdaten für den Zugriff des Services auf KAIROS AI Cloud Services erhalten Sie auf Anfrage von OPTIMAL SYSTEMS.
Beispiel:
ai-connector:
ai-cloud:
url: url #ai cloud service instance url
username: username #ai cloud service username
password: password #ai cloud service password
tenant: tenant #ai cloud service tenant
object:
type: appAiinvoice:aiDocument #yM object type where we want to save our document
Parameter:
ai-connector.ai-cloud.url | URL für den Zugriff auf KAIROS AI Cloud Services |
ai-connector.ai-cloud.username | Benutzername |
ai-connector.ai-cloud.password | Passwort |
ai-connector.ai-cloud.tenant | Tenant |
ai-connector.ai-cloud.object.type |
Objekttyp für das Speichern in KAIROS AI Cloud Services. Der Wert appAiinvoice:aiDocument ist vorgegeben. |
Service 'restdashlet' - restdashlet-prod.yml
Über die Konfiguration des Service 'restdashlet' werden die Modelle KAIROS und LLM aktiviert und die Zuordnung von Dokumenttypen und von Daten zu Felder der Dokumenttypen konfiguriert.
Die Konfigurationsdatei restdashlet-prod.yml muss im Verzeichnis \config von enaio® service-manager angelegt werden.
Das folgende Beispiel zeigt eine Konfigurationsdatei, die auf die zur Verfügung gestellte Objektdefinition abgestimmt ist und als Vorlage verwendet werden kann.

ai:
kairos:
llmEnabled: true
kairosEnabled: true
mapping:
llm:
- object-type-internal-name: "Angebot"
classification-class: "Angebot"
- object-type-internal-name: "kairosRechnung"
classification-class: "Rechnung"
- object-type-internal-name: "order"
classification-class: "Bestellung"
- object-type-internal-name: "deliveryNotice"
classification-class: "Lieferschein"
- object-type-internal-name: "Protokoll"
classification-class: "Protokoll"
- object-type-internal-name: "contract"
classification-class: "Vertrag"
- object-type-internal-name: "presentation"
classification-class: "Präsentation"
custom:
"Angebot":
schemaObjectTypeId: "offer"
object-type-internal-name: "Angebot"
field-mapping:
"AngebotsNr": "angebots_nr"
"Strasse": "strasse"
"PLZ": "PLZ"
"Angebotsdatum": "angebotsdatum"
"Ort": "Ort"
"Rechnung":
schemaObjectTypeId: "invoice"
object-type-internal-name: "kairosRechnung"
field-mapping:
"[appAIInvoice:aiReceivingCompanyName]": "receiving_company_name"
"[appAIInvoice:aiIssuingCompanyName]": "IssuingCompanyName"
"[appAIInvoice:aiAmount]": "Amount"
"[appAIInvoice:aiInvoiceNumber]": "InvoiceNumber"
"[appAIInvoice:aiIssuedDate]": "Issueddate"
"[appAIInvoice:aiBaseAmount]": "BaseAmount"
"[appAIInvoice:aiReceivingCompanyTaxNumber]": "ReceivingCompanyTaxNumber"
"[appAIInvoice:aiIssuingCompanyTaxNumber]": "IssuingCompanyTaxNumber"
"[appAIInvoice:aiTaxAmount]": "TaxAmount"
"[appAIInvoice:aiTaxPercentage]": "TaxPercentage"
"[appAIInvoice:aiIban]": "IBAN"
"[appAIInvoice:aiCurrency]": "Currency"
"[appAIInvoice:aiReverseCharge]": "ReverseCharge"
"[appAIInvoice:aiSupplyDate]": "SupplyDate"
"[appAIInvoice:aiTaxExempt]": "TaxExempt"
"[appAIInvoice:aiSteuerNumber]": "SteuerNumber"
"[appAIInvoice:aiSwiftBicNumber]": "SwiftBICNumber"
"Bestellung":
object-type-internal-name: "Bestellung"
schemaObjectTypeId: "order"
field-mapping:
"order_Reference_Number": "enaio_order_Reference_Number"
"order_receiver_address": "enaio_order_receiver_address"
"order_receiver_name": "enaio_order_receiver_name"
"order_issuer_address": "enaio_ORDER_ISSUER_ADRESS"
"order_issuer_name": "enaio_order_issuer_name"
"order_date": "enaio_order_date"
"order_total_amount": "enaio_order_total_amount"
"Lieferschein":
object-type-internal-name: "Lieferschein"
schemaObjectTypeId: "deliveryNotice"
field-mapping:
"Lieferschein_datum": "enaio_Lieferschein_datum"
"Lieferschein_nummer": "enaio_Lieferschein_nummer"
"[Empfänger]": "enaio_Empfaenger"
"Absender": "enaio_Absender"
"Protokoll":
object-type-internal-name: "Protokoll"
"[VE-Vertrag]":
object-type-internal-name: "contract"
schemaObjectTypeId: "contract"
field-mapping:
"Contract_Reference_Number": "enaio_Contract_Reference_Number"
"Contract_Version_Number": "enaio_Contract_Version_Number"
"Contract_Party_1": "enaio_Contract_Party_1"
"Contract_Party_2": "enaio_Contract_Party_2"
"Contract_Start_Date": "enaio_Contract_Start_Date"
"Contract_End_Date": "enaio_Contract_End_Date"
"Contract_Notice_Period": "enaio_Contract_Notice_Period"
"[Präsentation]":
object-type-internal-name: "presentation"
Konfiguration LLM
Das Modell LLM wird über den Parameter ai.kairos.llmEnabled mit dem Wert true aktiviert.
Angegeben werden die Dokumenttypen, denen extrahierte Dateien zugeordnet werden können.
Beispiel:
ai:
kairos:
llmEnabled: true
kairosEnabled: true
mapping:
llm:
- object-type-internal-name: "order"
classification-class: "Bestellung"
Angegeben wird der interne Name der Dokumenttypen. Angegeben wird ebenfalls über den Parameter classification-class ein Begriff, der zusätzlich zum internen Namen zur Klassifizierung verwendet wird. Verwenden Sie beispielsweise die neutrale oder sprachspezifische Bezeichnung des Dokumenttyps.
Konfiguration KAIROS
Das Modell KAIROS wird über den Parameter ai.kairos.kairosEnabled mit dem Wert true aktiviert.
Angegeben wird jeweils ein Klassifikationsmodell, ein Extraktionsmodell und ein Dokumenttyp. Den Felder des Dokumenttyps werden Daten des Extraktionsmodells zugeordnet.
Klassifikationsmodelle und Extraktionsmodelle können im Projekt angepasst und erweitert werden.
Beispiel:
ai:
kairos:
llmEnabled: true
kairosEnabled: true
mapping:
custom:
"Angebot":
schemaObjectTypeId: "offer"
object-type-internal-name: "Angebot"
field-mapping:
"AngebotsNr": "angebots_nr"
"Strasse": "strasse"
"PLZ": "PLZ"
"Angebotsdatum": "angebotsdatum"
"Ort": "Ort"
Parameter:
Parameter | Wert |
---|---|
ai.kairos.mapping.custom |
Klassifikationsmodell Beispiel: "Angebot" |
schemaObjectTypeId |
Extraktionsmodell Beispiel: "offer" |
object-type-internal-name |
Dokumenttyp, interner Name Beispiel: "Angebot" |
field-mapping |
Konfigurationsabschnitt für die Zuordnung von extrahierten Daten zu Feldern des Dokumenttyps. Beispiel: "AngebotsNr": "angebots_nr" |
Kairos: Klassifikation und Extraktion
Klassifikationsmodelle und Extraktionsmodelle können im Projekt angepasst und erweitert werden. Zurzeit ist jedem Klassifikationsmodell ein Extraktionsmodell zugeordnet.
Klassifikationsmodelle | Extraktionsmodell |
---|---|
Angebot | offer |
Rechnung | invoice |
Bestellung | order |
Lieferschein | deliveryNotice |
[VE-Vertrag] | contract |
Protokoll | protocol |
[Präsentation] | presentation |
Konfigurationsdaten mit Umlauten müssen in eckigen Klammern angegeben werden.
Kairos: Feldzuordnung
Im Konfigurationsabschnitt field-mapping werden Extraktionsdaten zeilenweise Feldern des Dokumenttyps zugeordnet.
Die Extraktionsdaten der Extraktionsmodelle können über den Endpunkt /api/extraction/properties des Services 'ai-connector' angezeigt werden.
Beispiel für das Extraktionsmodell 'offer':
"objectTypeId": "offer",
"properties": [
"AngebotsNr",
"Strasse",
"PLZ",
"Angebotsdatum",
"Ort"
]
Zuordnungsbeispiel:
field-mapping:
"AngebotsNr": "angebots_nr"
Dem Extraktionsdatum AngebotsNr wird das Dokumenttypfeld angebots_nr zugeordnet. Dokumenttypfelder werden über den internen Namen angegeben.
Konfigurationsdaten mit Umlauten müssen in eckigen Klammern angegeben werden.
Einbinden des Dashlets
Das enaio® KAIROS-Dashlet kann inenaio® client, enaio® webclient und enaio® webclient als Desktop-Anwendung eingebunden werden:
-
enaio® client
Das Einbinden erfolgt über enaio® enterprise-manager.
Home-URL: http://<service-manager-ip>/restdashlet/kairos?sessionguid={sessionguid}&locale={localename}
-
enaio® webclient und enaio® webclient als Desktop-Anwendung
Das Einbinden erfolgt über die Datei dashlets.json.
Beispiel:
[
{
"objectTypes": "*",
"platforms": [
"web",
"desktop_app",
],
"uri": "http://<service-manager-ip>/restdashlet/kairos",
"title_EN": "Kairos",
"title_DE": "Kairos",
"title_FR": "Kairos"
}
]