pfx Assistant – echte KI für Proffix Px5

Was wäre, wenn man Proffix Px5 einfach nach einer Adresse fragen könnte ? Oder der Rechnung an den Kunden X vom letzten Dezember ? Wir haben’s möglich gemacht – mit pfx Assistant.

pfx Assistant in Aktion

Die Idee von Sprachsteuerung und Proffix war schon lange vorhanden: ein früher Entwurf datiert aus dem Jahr 2015: im damaligen Prototypen konnten Rapporte bereits mit Sprachsteuerung eingegeben werden. Unglücklicherweise wurde gerade dann die offizielle Proffix Rest-API veröffentlicht – und wir mussten das damalige pApp komplett neu schreiben. Entsprechend bliebs beim Prototypen…

Der Hype

Seit Anfang 2024 gibt’s einen echten Hype auf KI – ausgelöst durch Chat-GPT. Plötzlich war jeder «KI-Experte», und jede Software und jedes Produkt war plötzlich «KI-optimiert» oder hatte zumindest irgendwo eine Knopf welcher dem Benutzer die Illusion von KI ermöglichte.

Uns hat sich dann doch die Frage gestellt: Sollen wir es noch einmal versuchen ? Wenn’s doch so viele KI- Experten und Profis gibt ? Irgendjemand wird wohl eine Lösung für die typischen KMU’s welche Proffix Px5 verwenden entwickeln – oder ?

Leider nicht: häufig sind’s irgendwelche Dienste oder Services die auf die kompliziert möglichste Art und Weise an Produkte angeschlossen werden. Eine tiefe Integration findet – wenn überhaupt – nur bei den «Grossen» wie Microsoft oder Google statt. Also wie gehabt: es liegt an uns, das auch für kleinere Unternehmen besser zu machen.

Der lange Weg zu pfx Assistant

Wo wir schon einmal dabei sind: was wäre, wenn die KI Daten nicht einfach nur anzeigen, sondern auch verstehen würde um was es sich handelt ?

Das Stichwort dazu lautet Kontext – dazu unten aber mehr.

Stand heute ist pfx Assistant in der Lage komplexe Abfragen vorzunehmen. Er berücksichtigt dabei alle Benutzerberechtigungen und kann auch Aktionen («Öffne die Adresse») ausführen.

Und selbstverständlich kann man auch einfach mit Ihm über das Wetter sprechen oder fragen wieviel 1+2 gibt…

Damit das überhaupt möglich ist, mussten wir sehr viel testen.

Mit OpenAI / ChatGPT, mit Google Gemini, Meta’s Llama diversen kleineren Anbietern – sogar mit lokal gehosteten KIs.

Schlussendlich entstanden zwei mögliche Ansätze:

Variante 1: Eine KI mit den eigenen Daten trainieren

Den grössten Nachteil sieht man z.B. auch bei ChatGPT: die KI müsste ständig «nachtrainiert» werden – ansonsten liefert sie keine Live – Daten sondern würde einfach nur Informationen bis zum Zeitpunkt X haben.

Zudem ist der Aufwand enorm; Daten müssen aufbereitet werden, Modelle erstellt und trainiert und alles auch noch irgendwie geprüft werden…

Will man das skalieren (sprich: auch anderen KMU’s mit Proffix Px5 ermöglichen KI zu verwenden) müsste man dasselbe noch einmal machen.

Der Ansatz funktioniert in unserem Umfeld nicht. Übrigens auch für viele grössere Unternehmen nicht.

Variante 2: Der KI beibringen sich Daten selbst live zu besorgen

Was wäre wenn man stattdessen der KI nur beibringen würde wo sie sich die passenden Informationen besorgen kann ? Dadurch wären die Daten immer Live und auch der Zugriff entsprechend selektiv reglementierbar.

Was einfach klingt ist in Wahrheit recht komplex. Denn zum einen verwendet Proffix mit der Proffix Rest-API eine «eigene Schnittstelle» mit eigener Authentifizierung und vielen kleinen Besonderheiten – zum anderen ist sind auch die Daten oft stark verschachtelt.

Zum Glück haben wir mit pfx Core bereits ein stabiles Framework welches uns beispielsweise das ganze Handling der Sessions und der Authentifizierung abnimmt. Entsprechend konnten wir uns «nur» auf das trainieren und anpassen der Hauptfunktionen konzentrieren.

Beispiel:

«Zeig mir die Adresse von Hans Muster».

Die KI muss erkennen das der Benutzer:

  • Eine Adresse sucht
  • Den Vornamen Hans und den Nachnamen Muster extrahieren.

Diese Angaben gehen dann in den internen Adapter wo daraus eine Abfrage an die Proffix Rest-API erfolgt.

Adresse oder Kontakt ?

In Proffix Px5 gibt es sowohl Adressen wie auch untergeordnete Kontakte. Ist Hans Muster jetzt eine Adresse (die Privatperson Hans Muster) oder ein Kontakt (Hans Muster von der Muster AG) ? Selbst Menschen können diese Aufgaben nicht direkt lösen sondern müssen – um sicherzugehen – bei beiden nachschauen.

Noch kniffliger wirds wenn man beispielsweise die Abfrage stellt: «Zeig mir das Total aller Rechnungen von Hans Muster im Juli 2024 an»

Hier muss die KI zuerst einmal:

  • Feststellen, dass man nur Rechnungen sehen möchte
  • Die Adresse «Hans Muster» identifizieren und die korrekte Adressnummer in Proffix Px5 evaluieren
  • Erkennen, dass man nur Informationen aus einem bestimmten Zeitrahmen (Juli 2024) haben möchte
  • Aufgrund der erhaltenen Informationen erkennen was das Total ist und dieses summieren

Am Anfang waren wir etwas zu optimistisch und gingen davon aus, dass wir die KI auf die – gerade in solchen Fällen – komplexen Suchabfragen der Proffix Rest-API trainieren könnten.

Das funktionierte aber nur mässig – dafür wurden die Abfragen schlicht zu ressourcenintensiv und teuer (dazu mehr im Abschnitt «Kosten«)

Erst mit der Entwicklung eines Adapters welcher der KI dedizierte Filterparameter zur Verfügung stellt und diese dann in Proffix Rest-API Syntax umwandelt wurden die Ergebnisse besser.

Gib mir Kontext

An sich funktioniert eine KI ähnlich wie ein Mensch. Es ist ein Unterschied ob man mit jemandem über Hans Muster spricht – vielleicht noch einen Anekdote erzählt – und dann fragt: «Wie viele Rechnungen hat hatte er im Juli 2024» anstelle einfach in den Raum hineinzufragen: «Wie viele Rechnungen hatte Hans im letzten Monat ?»

Tipp: Komplexere Abfragen unbedingt in einzelnen Teilabfragen unterteilen – es müssen dafür auch nicht immer ganze und orthografisch korrekte Sätze sein…

Kosten

Nicht zu vernachlässigen sind die Kosten bzw. Ressourcen. Je grösser eine Abfrage desto ressourcenintensiver und teurer wird sie.

Die Proffix Rest-API liefert im Gegensatz zu vielen anderen APIs sehr tiefe Abfragen. Bei der Abfrage einer Adresse werden z.B. auch komplette Land- Objekte eingebettet. In diesen wiederum Objekte für Währungen – und in diesen dann wiederum weitere Objekte.

Beispiel:

{
    "AdressNr": 7,
    "Name": "Muster",
    "Vorname": "Hans",
    "Strasse": "Mustergasse",
    "PLZ": "7323",
    "Region": {
        "RegionNr": "SG"
    },
 "Land": {
      "LandNr": "CH",
      "Bezeichnung": "Schweiz",
      "Vorwahl": "+41",
      "Waehrung": {
        "WaehrungNr": "CHF",
        "Bezeichnung": "Schweizer Franken",
        "Kurs": 1
      },
      "SADCode": 1,
      "CodePost": "CH",
      "LaufNr": 3,
    }
}

Obwohl die Proffix Rest-API über einen Parameter verfügt um die Tiefe zu reduzieren, liefert sie meistens viel zu viele Informationen die wir gar nicht benötigen. Das betrifft zum Beispiel auch alle leeren Felder.

Also haben wir auch hier einen Adapter entwickelt, welcher Antworten der Rest-API an die KI vorgängig erst behandelt und auf ein Minimum komprimiert. Wir sparen damit fast 60% an Kosten pro Abfrage ein (!)

Sicherheit

Wie bereits in der Dokumentation von pfx erläutert, werden Daten aus pfx immer direkt an die kundenindividuelle Proffix Datenbank übermittelt – ohne Umwege über fremde Server.

Auch mit pfx Assistant ändert sich daran nichts. Die komplette Authentifizierung und sämtliche Login – Daten für Proffix Px5 bleiben auf dem Gerät und werden nicht extern verwendet.

Die AI erhält nur reduzierte Daten aus den jeweiligen Abfragen – und auch diese nur für die Zeit in welcher die Sitzung (Kontext…) offen bleibt.

Sollte jemand gar keine Lust haben die künstliche Intelligenz auszuprobieren oder sonstige Bedenken haben, kann man sie unter Einstellungen auch komplett deaktivieren.

Zukunft

Die Grundlagen sind gelegt.

pfx verfügt über eine tiefe Integration in die persönliche Proffix Px5 Instanz – die Verbindung zur KI steht, ist stabil und bereit für den Ausbau.

Die Entwicklung in pfx Core erlaubt uns die Funktionen schnell auch für alle anderen pfx Apps auszubreiten. Und optional auch für kundenindividuelle Apps bereitzustellen.

pfx Assistant ist dabei ein Generalist: für spezifische Aufgaben werden wir KI – Funktionen einführen.

Diese können komplexe und eingegrenzte Aufgaben genau und präzise erledigen.

Zum Beispiel Adressen automatisch erkennen – oder Belege automatisch einlesen (selbstverständlich positionsbasiert).

Die Möglichkeiten sind praktisch grenzenlos – und alles ohne Umwege über fremde Server.

Ideen für solche Funktionen können gerne an [email protected] gesendet werden.

pfx Assistant kann umkompliziert getestet werden – einfach pfx Adressen installieren, mit eigener Proffix – Instanz verbinden und loslegen.

Eine kurze Dokumentation zu pfx Assistant findet sich hier.

Hinterlassen Sie einen Kommentar