Übersicht der Lösung
Die Hauptfunktion unserer Lösung besteht darin, Schlüsseldaten aus Benutzeranfragen zu extrahieren und passende Stadtführerprofile mithilfe von vektorbasierter Suche und Text-Embeddings zu finden. Zu Beginn werden alle Guide-Profile eingebettet und in der Datenbank gespeichert, die auch die Verfügbarkeit der Guides für bestimmte Zeiträume verfolgt. Bei Änderungen eines Profils wird es neu eingebettet und gespeichert.
Angemeldete Benutzer reichen Anfragen über ein spezielles Formular ein, wobei viele die Felder für Zeitraum und Stadt nicht ausfüllen, sondern alle Informationen im Textfeld eingeben. Daher extrahiert das LLM die folgenden Daten aus den Benutzeranfragen:
- Reisedatum
- Rückreisedatum
- Land und Stadt
- Liste der benötigten Dienstleistungen
Das LLM generalisiert gut auch dann präzise Daten berechnen, wenn der Benutzer Anfragen wie das Land vergisst oder «1 Woche» statt des Rückreisedatums angibt.
Die Liste der benötigten Dienstleistungen wird mithilfe von Text-Embeddings (Text-Embedding-Ada-002 Modell von OpenAI) vektorisiert. Die Suche in der Datenbank erfolgt mit diesem Vektor, zusammen mit dem Zeitraum und der Stadt, unter Verwendung des pgvector-Plugins und einer SQL-Abfrage.
Das Ergebnis ist eine Liste von verfügbaren Stadtführern, die nach der Wahrscheinlichkeit der Übereinstimmung mit den Dienstleistungsanforderungen sortiert ist. Die drei besten Übereinstimmungen werden in einer E-Mail an den Benutzer übermittelt.
Falls keine Übereinstimmungen gefunden werden oder das LLM die Daten nicht extrahieren kann, wird die Anfrage zur manuellen Überprüfung markiert, um Probleme zu identifizieren und Material zur Verbesserung des LLM-Prompts zu sammeln.
Der Benutzer erhält anschließend eine E-Mail mit den drei am besten passenden Stadtführern, direkten Links zu deren Profilen und einem Button zur Buchung eines Dienstes.