Sporturlaub am Wasser suchen

Für eine Unterkunftsvermittlung und Buchungsagentur: erst der Spot nach den Bedingungen am Wasser (Wind, Wellen, Saison), dann mit KI die eigenen Vorlieben, dann Hotels, Apartments und Privatunterkünfte auf der Karte – und von dort direkt zur Buchung oder zum Buchungsagenten.

So funktioniert es
  1. Bedingungen je Spot
  2. Wunsch in eigenen Worten
  3. KI erkennt Vorlieben
  4. Spots & Unterkünfte auf der Karte
  5. Auswahl auf der Karte
  6. Buchung oder Agent
Beschreibung

Die Aufgabe

Wer Sporturlaub am Wasser sucht, fragt nicht nach einem Hotel, sondern nach den Bedingungen: Wo gibt es im Februar Wind und Wellen – für ein Paar, in einem privaten Apartment? Eine Buchungsplattform beantwortet das nicht, eine Wetter-App auch nicht. Die Unterkunftsvermittlung wollte genau diese Frage beantworten können – und die Antwort direkt in eine Buchung verwandeln.

Was entstanden ist

  • Spots nach Bedingungen: über hundert Wassersport-Reviere weltweit mit einer Statistik der guten Tage je Monat aus fünf Jahren, dazu Temperaturen und Wellen, gemessen an Stationen, wo es welche gibt, sonst aus einem globalen Datensatz; dazu die Lage jetzt, die nächsten Tage und die Saison.
  • Suche in eigenen Worten: Die Frage wird so gestellt, wie man sie einem Menschen stellen würde. Die KI liest daraus die Vorlieben – Monat, Windstärke, Wellen oder Flachwasser, Kurse, Nightlife, Adults only, Hotel, Apartment oder privat – und macht daraus Filter, die man sieht und ändern kann.
  • Alles auf einer Karte: passende Spots und die Unterkünfte der Agentur nebeneinander, jede mit Bildern, Videos und Beschreibung. Man wählt direkt auf der Karte aus.
  • Weiter zur Buchung: Die Auswahl geht in die Buchung oder als Anfrage an den Buchungsagenten – mit allem, was die Suche ergeben hat.

Wie die Grundkarte aussieht, zeigt Wind an den Spots: dieselbe Karte mit den Spots, ihrem Wind und der Statistik der guten Tage – dort ohne Unterkünfte.

Spotfinder ausprobieren: Auf Wind an den Spots sucht der Spotfinder den passenden Spot – in eigenen Worten, auch ohne Anmeldung. Wie er arbeitet, woher seine Daten kommen und wo seine Grenzen liegen, steht in den Kapiteln dieser Seite.

Die Kartenverwaltung

Die Agentur pflegt ihre Unterkünfte selbst: als Orte mit Position, Bildern, Videos, Text und Sichtbarkeit, auf einer oder mehreren Karten, dazu Flächen für Reviere und Marker. Neues bleibt Entwurf, bis es veröffentlicht wird. Dieselben Karten und dieselbe Verwaltung laufen auf mahevi in Produktion – für Ruderreviere, Pegel und Windspots.

Warum es schnell ging

Die Bausteine waren da: das Kartenmodell mit Orten, Flächen und Verwaltung, die Statistiken und Prognosen der Werkzeuge für Wind und Wasserstände, kleine Bedienelemente, die in einem Chat erscheinen können. Neu war vor allem die Domäne der Agentur – was eine Unterkunft ausmacht, welche Vorlieben zählen und wie aus einer Suche eine Buchung wird.

Der Spotfinder

Der Wunsch in eigenen Worten

Man schreibt, was man sucht – so, wie man es einem Menschen sagen würde: „Im November windsurfen, mindestens 20 Grad, Wellen sind ok, aber 15 Knoten an der Hälfte der Tage.“ Der Spotfinder übersetzt das in eine Suche nach Monat, Windstärke, Anteil guter Tage, Temperatur, Wellen oder Flachwasser, Können und Region und antwortet mit einer Liste der passenden Spots – die bestpassenden zuerst, jeweils mit dem Grund.

Fehlt Wesentliches, fragt er nach, statt zu raten: welche Sportart (Windsurfen, Wingfoilen, Kiten – oder Wellenreiten, für das die Daten nicht gemacht sind), welcher Zeitraum, welche Region. Nennt jemand einen Ort wie „Fuerte“ oder „Gardasee“, sucht er dort. Er antwortet in der Sprache der Frage.

Die Karte als gemeinsamer Bildschirm

Chat und Karte kennen einander. Der Spotfinder weiß, welcher Spot gerade gewählt ist und welche Spots die Karte zeigt – „wie ist der Wind hier?“ oder „welcher der sichtbaren ist im März am besten?“ beziehen sich darauf. Umgekehrt bringt jede Antwort Knöpfe mit: zu jedem genannten Spot, „Alle auf der Karte zeigen“ für eine Auswahl und – wenn ein Spot alle Wünsche erfüllt – den Weg zur Buchung. Diese Knöpfe baut die Seite selbst aus geprüften Spot-Kennungen; das Sprachmodell schreibt keine Links.

Eigene Daten

Die Grundlage sind die eigenen Spotdaten: über hundert Spots mit Lage, Region, besten Monaten, Windrichtungen, Wasser und Niveau, eine Beschreibung je Spot in vier Sprachen mit ihren Quellen und eine Statistik der guten Tage je Monat über fünf Jahre – mit Wind, Temperatur und Wellen. All das wird auf der Seite gepflegt, ohne Entwickler.

Offene Wetterdaten

Was jetzt weht und was kommt, stammt aus offenen Quellen: Messstationen von GeoSphere Austria, dem Deutschen Wetterdienst, ARPA Lombardia und Meteotrentino; Vorhersagen aus den Modellen ICON-D2 (DWD), AROME (GeoSphere) und MET Norway; Wellen aus NOAA GFS-Wave; die langjährige Statistik aus NASA POWER oder – wo ein lokaler Wind sie braucht – aus einer Station am Ufer. Jede Quelle wird mit ihrer Lizenz genannt.

Wie eine Antwort entsteht

Wissensbasis mit Embeddings

Die Spotbeschreibungen sind in Abschnitte zerlegt und als Vektoren (Embeddings) in PostgreSQL mit pgvector gespeichert. Vor jeder Antwort wird die Frage ebenfalls zum Vektor und mit den Abschnitten verglichen; die passendsten gehen als Nachschlagetext in die Anweisung an das Modell. Gesucht wird nur in den Spotbeschreibungen und nur in dem, was die fragende Person lesen darf.

Werkzeuge statt erfundener Zahlen

Das Sprachmodell rechnet nicht und kennt keine Wetterdaten. Es bekommt vier Werkzeuge (Function Calling), jedes mit einem genauen Schema: Spots nach einem Wunsch suchen und reihen, einen Spot im Detail lesen, den Wind jetzt und in den nächsten 48 Stunden, und wo heute oder am Wochenende guter Wind ist. Das Modell liefert nur die Argumente – etwa Monat 11, mindestens 20 °C, 15 Knoten. Der Server prüft sie gegen das Schema, führt das Werkzeug aus und gibt ein knappes Ergebnis zurück. Zahlen in der Antwort stammen deshalb immer aus den Daten.

Ein kurzer, agentischer Ablauf

Eine Antwort entsteht in Runden: Das Modell ruft ein Werkzeug auf, liest das Ergebnis, ruft bei Bedarf ein weiteres auf – zum Beispiel erst die Suche, dann die Details zum besten Treffer – und schreibt erst dann die Antwort. Die Zahl der Runden ist begrenzt, jede Runde wird gebucht, und vor jeder weiteren wird geprüft, ob das Budget noch reicht. Die Person sieht währenddessen, dass gesucht wird.

Festes Antwortformat

Die Antwort ist kein freier Text, sondern ein JSON-Objekt nach einem strikten Schema: der Text für die Person, die genannten Spots, ob die Auswahl auf die Karte soll, ein Spot für die Buchung, bis zu drei Vorschläge für die nächste Frage und – nach einer Websuche – die Quellen. Die Seite prüft jede Spot-Kennung gegen ihre eigene Liste und baut Knöpfe und Adressen selbst – ein Link kann nicht kaputt, falsch oder in der falschen Sprache ankommen.

Das Modell ist eine Einstellung

Welches Sprachmodell antwortet, ist eine Einstellung des Agenten, kein Teil des Codes. Heute ist es ein kleines, günstiges Modell auf Azure OpenAI; andere Anbieter lassen sich anschließen. Für die Werkzeuge braucht es ein Modell mit Function Calling in der unterstützten Form.

Aktuelle Daten, schnelle Antworten

Einmal laden, im Speicher halten

Eine Suche vergleicht über hundert Spots auf einmal. Damit das in Millisekunden geht, liegen die Spotliste und die fertig berechnete Statistik im Arbeitsspeicher des Servers. Geladen werden sie beim Start aus der Datenbank – und die Spotliste neu, sobald jemand einen Spot speichert. Nur die Beschreibung eines Spots wird bei jedem Aufruf frisch aus der Datenbank gelesen, damit eine Änderung sofort gilt.

Liefern und im Hintergrund erneuern

Messwerte und Vorhersagen werden nicht bei jeder Frage abgerufen. Jede Anfrage bekommt sofort die Kopie aus dem Speicher; ist sie zu alt, holt der Server im Hintergrund die neue, und die nächste Anfrage hat sie. Messstationen werden alle fünf bis zehn Minuten gelesen, Vorhersagen spätestens nach einer halben Stunde. Fällt eine Quelle aus, bleibt der letzte gültige Stand stehen und wird als solcher gekennzeichnet.

Hintergrund-Jobs

Was aufwendig ist, erledigen Jobs: Neue Läufe des Modells ICON-D2 und der Wellenvorhersage werden eingelesen, sobald sie erscheinen; die Fünf-Jahres-Statistik wird neu berechnet, wenn sie einen Monat alt ist, ein Jahr abgeschlossen ist oder ein Spot verschoben wurde – und als Ergebnis gespeichert, sodass ein Neustart nichts neu abrufen muss.

Der Bedarf steuert die Last

Ein Spot, nach dem jemand fragt, wird öfter erneuert als einer, den nur die Übersichtskarte zeigt. Vorhersagen werden komprimiert übertragen und nur, wenn sie sich geändert haben; von großen Modelldateien wird nur gelesen, was die Spots brauchen. Die Grenzen der Datenanbieter werden eingehalten.

Ein neuer Spot

Ein neu angelegter Spot steht sofort in der Liste und auf der Karte, seine Beschreibung wird beim Speichern automatisch in die Wissensbasis aufgenommen, und seine Statistik ist spätestens nach einer Stunde berechnet. Bis dahin nennt der Spotfinder ihn nicht als Empfehlung, sondern zählt ihn als „noch ohne Statistik“.

Grenzen und Kosten

Ohne Anmeldung

Den Spotfinder kann jeder fragen, auch ohne Konto. Weil diese Fragen kein Konto trägt, gelten eigene Tagesgrenzen: je Besucher, je Internetanschluss und für alle Besucher zusammen. Der Chat zeigt, was vom Tag noch übrig ist. Wer mehr fragen möchte, meldet sich an und findet dann auch seine Gespräche wieder.

Mit Konto

Angemeldete Personen haben ein Tagesbudget an Tokens und Anfragen, gestaffelt nach Kontostufe. Ist es aufgebraucht, wird die Frage schon an der Tür abgelehnt – nicht erst, nachdem Nachschlagen und Modell bezahlt sind. Eine laufende Antwort endet, wenn das Budget während des Schreibens erreicht wird, und sagt das.

Pro Minute und gleichzeitig

Eine Ratenbegrenzung pro Minute verhindert, dass ein Skript in kurzer Zeit viele Antworten anstößt, und eine Person kann nur wenige Antworten gleichzeitig laufen lassen.

Der Mandant

Darüber liegen die Obergrenzen des Mandanten pro Tag und Monat. Sie gelten für alle seine Agenten und Konten zusammen und werden vor jeder Antwort und vor jeder weiteren Werkzeugrunde geprüft.

Pro Antwort

Jede Antwort hat eine Höchstlänge und eine Höchstzahl an Werkzeugrunden. Die Werkzeuge liefern knappe, gerundete Ergebnisse, weil jedes Zeichen in der nächsten Runde wieder gelesen und bezahlt wird.

Nachvollziehbar

Jede Runde, jedes Nachschlagen und jeder Werkzeugaufruf wird gebucht und protokolliert – mit Modell, Tokens und Kosten. So lässt sich jede Antwort nachvollziehen und jede Grenze im Betrieb anpassen, ohne neue Software auszuliefern.

Chat, Websuche, Sprache, Echtzeit

Der einfache Chat

So läuft der Spotfinder heute: Frage tippen, die Antwort erscheint Wort für Wort, darunter Spot-Knöpfe, der Weg zur Karte und Vorschläge zum Antippen. Ohne Anmeldung nutzbar; mit Konto bleiben die Gespräche erhalten.

Diktieren und Vorlesen

Verfügbar nach Freischaltung: die Frage per Mikrofon diktieren und die Antwort vorlesen lassen. Vorgelesen wird nur der Antworttext – nicht die Knöpfe und nicht das JSON dahinter. Gehörte Minuten und gesprochene Zeichen haben eigene Grenzen, je Konto und je Mandant.

Das Echtzeit-Gespräch

Verfügbar nach Freischaltung: ein Gespräch mit Stimme in beide Richtungen über WebRTC. Der Schlüssel zur Sprach-KI verlässt dabei nie den Server, und der Server bleibt der einzige, der Antworten anstößt. Weil eine Stimme kein festes Antwortformat kennt, wird das Format des Spotfinders zu einem Werkzeug, über das die Spots und die Karte trotzdem in der Seite ankommen. Die Gesprächsdauer ist begrenzt.

Websuche

Eingeschaltet, aber gezielt: Der Spotfinder sucht nur dann im Internet, wenn ausdrücklich nach Aktuellem gefragt wird, das nicht in seinen Daten steht – Events und Wettbewerbe, Sperrungen, Öffnungszeiten, Anreise oder Regeln an einem Spot. Wind, Statistik, Temperatur und Wellen kommen weiter nur aus den Werkzeugen.

Die gefundenen Seiten erscheinen als Quellen-Knöpfe unter der Antwort; im Text selbst stehen keine Links. Für die Websuche gelten eigene Tagesgrenzen – ohne Anmeldung je Adresse, mit Konto je Person, dazu je Mandant und insgesamt. Ist sie für heute aufgebraucht, antwortet der Spotfinder aus seinen Daten und sagt das in einem Satz.

Die Suchanfrage verlässt dabei die Datenschutzgrenze der Azure-Dienste und geht an Microsoft Bing; die Datenschutzerklärung beschreibt das. Name, Konto und IP-Adresse werden nicht mitgeschickt.

Nächster Schritt

Passt das zu deinem Vorhaben?

Erzähl mir in ein paar Sätzen, worum es geht – Prozess, Daten, Ziel. Den Rest klären wir im Gespräch.