(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:
- Wie viele Menschen leben in Freiburg?
- Sind die Schulferien im ganzen Kanton Freiburg gleichzeitig?
- Wo kann ich einen neuen Reisepass erhalten?
- Was ist der höchste Berg in Freiburg?
- Was ist die Klimastrategie des Kantons?
- Was tut Freiburg, um Fahrräder zu fördern?
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!