(Dieser Blog-Beitrag folgt auf den Artikel ĂŒber ZüriCityGPT und seine Versionen fĂŒr Lausanne und Genf.)

Jetzt kannst du FreiurgGPT jede Frage zum Kanton Fribourg stellen, und du erhÀltst eine direkte Antwort, nicht nur eine Sammlung potenziell relevanter Seitenlinks.

In den meisten FĂ€llen liefert der Bot nĂŒtzliche Antworten, solange der Inhalt der Website die Anfrage abdecken kann. Du bist nicht auf Französisch beschrĂ€nkt - andere Sprachen funktionieren auch, und der Bot antwortet in derselben Sprache.

Fragst du dich, welche Art von Fragen du stellen kannst? Hier sind einige Beispiele:

Und natĂŒrlich gibt es noch viele weitere Fragen, die du stellen kannst.

Der Bot ist nicht unfehlbar, daher empfehlen wir dringend, deine Antworten mit den bereitgestellten offiziellen Seiten zu ĂŒberprĂŒfen, wenn Genauigkeit wichtig ist.

Die technischen Details: Wie FreiburgGPT entstanden ist

Angeregt durch einen Blog-Beitrag von Supabase, welcher in unserem AI Slack-Kanal geteilt wurde, werfen wir einen Blick auf unser Produkt.

Beschaffung und Indexierung des Inhalts:

  • FĂŒr das Backend haben wir NestJS verwendet.
  • Das Frontend ist eine sehr einfache React-App, die die Frage an das Backend sendet und das Ergebnis anzeigt.
  • Wir haben eine Datenbank mit PostgreSQL und der pgvector-Erweiterung eingerichtet.
  • Wir haben die gesamte Website verantwortungsbewusst mit SimpleCrawler durchsucht und die Daten in die Datenbank eingegeben.
  • Wir haben den relevanten Inhalt mit Cheerio extrahiert und in die Datenbank eingefĂŒgt.
  • Wir haben dann diese Textschnipsel an OpenAIs Embedding-APIs gesendet und die empfangenen Embeddings in der Datenbank gespeichert.

Abfrage des Inhalts:

  • Nach Erhalt einer Frage senden wir sie an OpenAIs Embedding-API, um einen Einbettungsvektor zu erhalten.
  • Wir verwenden diesen Vektor, um die Datenbank zu durchsuchen, Textschnipsel und URLs zu extrahieren.
  • Ein Prompt wird erstellt, welcher Schnipsel bis zur maximalen Token-Grenze enthĂ€lt.
  • Diese Tokens werden an OpenAIs createChatCompletion-API gesendet und das Ergebnis wird ĂŒber Server Sent Events an den Browser zurĂŒckgestreamt.
  • Alle in unserer Datenbank gefundenen verwandten Links werden ebenfalls fĂŒr die korrekten Quellen zurĂŒckgegeben.

Wir haben in letzter Zeit einige Optimierungen vorgenommen. Jetzt verwenden wir nur noch die ersten Inhaltsfragmente fĂŒr den Prompt und fĂŒllen das Ende mit Links und Titeln. Dies gibt ChatGPT etwas mehr Kontext, aber offensichtlich nicht so viel wie der gesamte Inhalt. ZunĂ€chst haben wir versucht, nur Links zu senden, aber dies fĂŒhrte nicht immer zu zufriedenstellenden Ergebnissen und hatte sogar "halluzinierten" Antworten zur Folge, da gpt-3.5 tatsĂ€chlich nicht alle diese Links auflöst.

Denke daran, dieses Tool hat keine Verbindung zum Kanton Freiburg und dient hauptsÀchlich als Machbarkeitsnachweis.

Wir sind begeistert von dem Potenzial dieser Technologie zur Verbesserung des Zugangs zu öffentlichen Informationen und hoffen, dass du Spass hast, Freiburg mit FreiburgGPT zu erkunden!

(Foto von Janesca auf Unsplash)