CaritasGo sieht von aussen aus wie ein einziger Chatbot. Tatsächlich handelt es sich aber um eine Orchestrierung von 22 spezialisierten Assistenzbots. Ein zentraler Dirigent steuert und koordiniert diese Assistenzbots.
Ein klasssicher Chatbot hat in der Regel einen (sehr) langen Prompt. Je mehr Anweisungen man dem Chatbot geben muss, desto fehleranfälliger wird er. Der Bot vergisst, was schon besprochen worden ist und beginnt im Verlauf des Gesprächs vermehrt zu halluzinieren. Bei CaritasGo gibt es mehrere Herausforderungen, die der Bot gleichzeitig bewältigen muss, was zu einem extrem langen Prompt führen würde. Hier nur eine kleine Auswahl:
Nebenbei erwähnt: CaritasGo enthält zusätzlich auch einen klassischen RAG-Suchbot. Man kann ihn zum Ende der Konversation aufrufen und in den offiziellen Dokumenten nach spezifischen Informationen suchen. Die ratsuchenden Personen sollen jedoch grundsätzlich schlank und schnell zu Informationen kommen. Sie sollen nichts suchen müssen und nur mit Inhalten bedient werden, die für sie relevant sind. Was mich an CaritasGo am meisten fasziniert ist nicht, was der Bot sagt, sondern was er alles nicht sagt.
Für CaritasGo hat sich eine regelbasierte Bot-Orchestrierung auch aus weiteren Gründen angeboten:
Die Gesprächsführung soll umgekehrt verlaufen. Während bei Google oder ChatGPT der Nutzer Fragen stellt, soll bei CaritasGo der Bot das Gespräch führen und die ratsuchende Person durch die Konversation leiten. Ein grosser Vorteil davon ist, dass der Nutzer überhaupt kein thematisches Vorwissen benötigt. Er muss sich nicht einmal überlegen, was er den Bot fragen soll. Zu Beginn des Projekts hat sich die Frage gestellt: wie kommen wir zu den wichtigsten Informationen bezüglich Lebenslage der ratsuchenden Person (z.B. ist sie erwerbslos? In Ausbildung? Hat sie Kleinkinder? Gibt es eine Gesundheitsproblematik in der Familie?). Wo früher lange Fragebogen oder das Anklicken von diversen Filterfunktionen der Weg zum Ziel waren, kann nun ein Chatbot die relevanten Fragen in einem Dialog stellen. Und das Tolle daran ist: es werden nur plausible Fragen gestellt. Ist jemand 20 Jahre alt und lebt alleine, entfällt beispielsweise das Thema Rente vollständig. In der Regel reichen 2 bis 4 Nachfragen aus, damit sich der zuständige Assistenzbot ein Bild über die Lebenslage im betreffenden Haushalt machen kann.
Eine Anforderung im Projekt war, dass die ratsuchenden Personen sehr gezielt über staatliche und andere Unterstützungsangebote informiert werden. Müssen zum Beispiel für bestimmte Sozialleistungen Antragsformulare ausgefüllt werden, soll mitgeteilt werden, dass man in der LernLounge der Caritas Unterstützung beim Ausfüllen der Formulare bekommt. Diese Informationen müssen also gezielt ausgegeben werden können.
Entsprechend haben wir für jede Sozialleistung und jedes Unterstützungsangebot, das der Chatbot erwähnen kann, einen Assistenzbot gebaut. Je nach Lebenslagen, die zu Beginn der Gesprächs identifiziert worden sind, werden im späteren Verlauf des Gesprächs die dafür relevanten Assistenzbots aufgerufen. Die Assistenzbots werden angewiesen, bei Bedarf noch weitere Informationen von der Nutzerin einzuholen und dann eine Empfehlung abzugeben. Die Empfehlungen basieren auf klar definierten Regeln. Zum Beispiel soll bei Personen mit Behinderungen oder chronischen Krankheiten nachgefragt werden, ob sie eine IV-Rente beziehen. Je nach Ausgangslage soll der Bot anders reagieren:
Der Bot weiss aus dem bisherigen Gespräch, dass die behinderte Person schon im Rentenalter ist. Personen im Rentenalter haben keine IV-Renten. Entsprechend wird der Assistent stillschweigend abgebrochen. Der Nutzer merkt nicht, dass hier im Hintergrund wichtige Denkarbeit geleistet worden ist. Die Konversation wird dem nächsten Assistenten übergeben.
Der Bot fragt nach der Invalidenrente und der Nutzer sagt, dass die behinderte Person keine Invalidenrente bezieht. In diesem Fall gibt es keinen weiteren Beratungsbedarf. Der Bot bedankt sich für die Information und die Konversation wird an den nächsten Assistenten übergeben.
Die Person bestätigt, dass die behinderte Person eine Invalidenrente bezieht. In diesem Fall informiert der Bot über Ergänzungsleistungen zur IV. Hier der Ausschnitt aus dem Prompt:
Falls die Person eine Invalidenrente (IV) hat, dann informiere die Person kurz und knapp. Übersetze folgenden Informationstext auf {{_language}}, belasse die Bezeichnung von Institutionen und Adressen jedoch in Deutsch. Und formatiere den Text wie folgt: hinterlege den Link in markdown-format und zeige den Titel mit einer Stufe-4-Überschrift "####":
------INFORMATIONSTEXT------
Reicht die IV-Rente nicht aus, helfen Ergänzungsleistungen (EL).
Wenn die IV-Rente nicht für den täglichen Bedarf reicht, übernehmen Ergänzungsleistungen den Rest, auch Krankheitskosten.
Hier ist das Formular für Ergänzungsleistungen:
https://www.was-luzern.ch/sites/default/files/documents/AK_Anmeldung_EL_0.pdf
Das Ausfüllen ist kompliziert. Pro Infirmis Luzern hilft beim Ausfüllen:
Telefon: 058 775 12 12
E-Mail: luownw@proinfirmis.ch
In einer akuten Notlage kann das Sozialamt der Wohngemeinde helfen.
------ENDE INFORMATIONSTEXT------
Regelbasierte Bots haben eine transparente Logik. Die Logik kann im Projekt in Zusammenarbeit mit Personen aus dem Business ausgearbeitet werden. Auch für die Konfiguration der jeweiligen Assistenten braucht es keinen Informatiker. Die inhaltlich Verantwortlichen können den Chatbot direkt und eigenhändig aufbauen und pflegen.
Soll ein Chatbot skalierbar sein, eignet sich der regelbasierte und auf Agenten abgestellte Ansatz wunderbar. Es soll eine weitere Leistung empfohlen werden? Kein Problem, es wird einfach ein zusätzlicher Assistent integriert. Der Chatbot soll auch Personen aus einem anderen Kanton beraten? Kein Problem, die Assistenten können ganz einfach konfiguriert werden.
Wie immer suchen wir Lösungen, die für unsere Kunden zu möglichst tiefen Betriebskosten führen. CaritasGo nutzt ausschliesslich Lambda-Funktionen – ein Serverless-Computing-Service von Amazon Web Services. Es müssen also weder von poemAI noch von Caritas Zentralschweiz Server angeschafft und betrieben werden. Verrechnet wird nach Nutzung – das bedeutet, wir müssen uns nicht überlegen, wie viele Anfragen der Bot wohl verarbeiten muss. Gibt es keine Chat-Konversationen fallen keine Server-Kosten an; wird der Chatbot überrannt, wird automatisch hochskaliert.
Zusammen mit der Caritas Zentralschweiz haben wir GPT von OpenAI in diversen Sprachen getestet
Zusammen mit der Caritas Zentralschweiz haben wir GPT von OpenAI in diversen Sprachen getestet