´Ka-min : Zeiten / Entfernungen

Erkennung von Zeiten

Ich bin sehr gut im Erkennen von Zeiten. Durch meine einprogrammierten Custom Entities kann ich die entsprechenden Nutzerinfomrationen aus der natürlichen Sprache extrahieren. Beispielsweise macht es mir keine Schwierigkeiten von Kunden ausgesprochenen Zeiten wie z.B. “mittags um halb 4”, “nächsten Freitag um 9” “übermorgen am vormittag” in die korrekten Formate zu transkribieren.

Überprüfung von Verfügbarkeiten und intelligentes Routing

Wenn bei mir eine Terminanfrage eingeht, dann prüfe ich an Hand von mehreren Bedingungen ob ein Termin verfügbar ist. In Abhängigkeit der Verfügbarkeit und deren Gesamtanzahl gebe ich entweder die freien oder belegten Termin wieder zurück

Unter anderem prüfe ich:

  • ob der Termin innerhalb der Arbeitszeiten und -tage fällt
  • ob die maximalen Buchungen pro Tag bereits erreicht sind
  • ob ein Termin am Vormittag/Nachmittag gewünscht wird
  • ob der Termin in die eingestellten Vor- und Nachlaufzeiten reinpasst
  • ob ein Termin als gesperrt markiert wurde
  • ob ein Termin in Abhängigkeit von der Entfernung zu umliegenden Terminen überhaupt durchgeführt werden kann

Bei einer Terminanfrage des Kunden prüfe ich im Hintergrund ob die oben genannten Kriterien eingehalten werden. 

Die betrieblichen Kriterien (also ob ein Termin innerhalb die Arbeitszeiten fällt oder die max. Anzahl von Buchungen pro Tag bereits erreicht wurde usw.) entnehme ich direkt aus den hinterlegten Kalendereinstellungen.

Schwieriger wird es wenn ich noch die Entfernung mit berücksichtigen muss. Hier kommt mein intelligentes Routing zur Anwendung: Sollte ein Termin nicht buchbar sein, so biete ich dem Kunden in Abhängigkeit von seinen gemachten Vorgaben automatisch noch freie, buchbare Zeiten an. Denn manchmal kann es sein, dass z.B. nur 30 Minuten vor oder nach dem vom Kunden gewünschten Termin noch Zeiten frei sind. Diese Termine suche ich selbstständig heraus. Falls erforderlich, erweitere ich die Terminsuche auf eine größere Zeitspanne, so dass z.B. der 8 Uhr nicht buchbar ist, jedoch um 11 Uhr noch was möglich wäre. In Extremfällen erweitere ich die Suche auf den ganzen Tag. Sollte sich beim besten Willen immer noch kein Termin finden lassen, so verweise automatisch auf die nächstmöglichen Buchungstermine an anderen Tagen. So vermeide ich Endlosabfragen und sorge für ein optimales Kundenerlebnis.

Außerdem kann ich alle freien Zeiten innerhalb eines Zeitraumes zurückgeben wenn der Kunde nach freien Terminen innerhalb eins “Von…Bis” Zeitraumes fragt.

Man hat mich so programmiert, dass ich “meine eigenen” Termine im Backend auch mehrfach belegen, also überbuchen kann. So bleibe ich flexibel.

Für Coder: Auf der rechten Seite nebenan kannst du mich beobachten wie ich beim Rechnen vorgehe

Warum ich wissen muss dass der Radius der Erdkugel 6371 Kilometer beträgt ?

Ganz einfach: Damit berechne ich die Entfernung zwischen zwei Adressen. Ich rechne ganz genau, denn ich berücksichtige auch noch die Erdkrümmung

dlon = lon2 – lon1
dlat = lat2 – lat1
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
c = 2 * asin(sqrt(a))

# Radius of earth in kilometers. Use 3956 for miles
r = 6371

return (c * r)