LOKALE KI – MIT DATENBANKEN UNTERHALTEN


Wenn die Datenbank antwortet: Nao bringt KI und PostgreSQL zusammen

Künstliche Intelligenz kann nicht nur Texte erzeugen oder als klassischer Chatbot eingesetzt werden. Besonders interessant wird sie, wenn ein Sprachmodell auf strukturierte Daten zugreifen und daraus selbstständig Analysen erstellen kann.

In meinem CloudLab habe ich deshalb mit Nao eine Plattform aufgebaut, die eine PostgreSQL-Datenbank mit einem Large Language Model verbindet. Als Datenquelle dient eine DVD-Rental-Beispieldatenbank mit Kunden, Filmen, Ausleihen, Zahlungen, Mitarbeitern und Filialen.

Ziel war es nicht, SQL durch KI zu ersetzen. Vielmehr sollte eine zusätzliche Analyseschicht entstehen, über die sich auch komplexere Fragestellungen in natürlicher Sprache formulieren lassen.

Die eigentliche Stärke entsteht durch das Zusammenspiel der Komponenten: PostgreSQL stellt die strukturierten Daten bereit, Nao kennt das Datenmodell und übersetzt fachliche Fragestellungen in Datenbankabfragen, während Ollama das benötigte Sprachmodell bereitstellt.

Was ist Nao ?

Entwickelt wird Nao als Open-Source-Projekt. Neben der offiziellen Nao-Webseite stehen die Nao-Dokumentation und der Quellcode auf GitHub zur Verfügung.

Ziel des Projekts

Das Ergebnis ist eine KI-gestützte Datenanalyseplattform, über die sich eine PostgreSQL-Datenbank in natürlicher Sprache untersuchen lässt. Anwender sollen nicht für jede neue Fragestellung zunächst Tabellenstrukturen untersuchen, JOIN-Bedingungen ermitteln und anschließend eine SQL-Abfrage entwickeln müssen.

Stattdessen kann beispielsweise gefragt werden:

„Welche zehn Kunden haben insgesamt den höchsten Umsatz erzeugt?“

Oder wesentlich umfassender:

„Erstelle eine Management-Zusammenfassung der DVD-Rental-Datenbank: Umsatzentwicklung, Top-Kunden, erfolgreichste Filmkategorien, stärkste Filiale und drei auffällige Trends. Begründe jede Aussage mit den zugrunde liegenden Daten.“

Nao verbindet diese fachliche Fragestellung mit dem zuvor aufgebauten Datenbankkontext, erzeugt die erforderlichen SQL-Abfragen und bereitet die Ergebnisse anschließend verständlich auf.

Die beteiligten Komponenten

PostgreSQL als Datenquelle

PostgreSQL stellt die eigentlichen Daten für die Analyse bereit. Für den Test kommt die DVD-Rental-Datenbank zum Einsatz. Sie besitzt ein ausreichend komplexes relationales Datenmodell mit 24 Tabellen.

Nao als Analyseplattform

Nao bildet die zentrale Vermittlungsschicht zwischen Benutzer, Datenbank und Sprachmodell.Beim Synchronisieren einer Datenquelle untersucht Nao deren Struktur und erzeugt daraus einen Kontext für das Sprachmodell. Dazu gehören beispielsweise Tabellen, Spalten und Beziehungen zwischen den Tabellen. Nao übernimmt dabei die Übersetzung zwischen der fachlichen Frage und den dafür notwendigen SQL-Abfragen.

Ollama als LLM-Backend

Ollama stellt die von Nao verwendeten Sprachmodelle bereit.

Die Trennung zwischen Nao und Ollama ist dabei ein wichtiger Bestandteil der Architektur. Nao kümmert sich um Datenbankkontext, SQL-Generierung und Ergebnisaufbereitung, während das Sprachmodell die eigentliche sprachliche Interpretation und Schlussfolgerung übernimmt.

Neben lokalen Modellen können über Ollama auch Cloud-Modelle eingesetzt werden. Das ist insbesondere dann interessant, wenn für größere Modelle lokal nicht genügend CPU-, GPU- oder Arbeitsspeicherressourcen vorhanden sind.

Bei Cloud-Modellen muss allerdings berücksichtigt werden, dass die für eine Anfrage benötigten Informationen die eigene Infrastruktur verlassen können.

Betrieb in Docker

Nao und die anderen Komponenten werden in meinem CloudLab als Docker-Container betrieben.

Sicherheitsaspekte

Der Einsatz eines KI-Systems für Datenbankanalysen sollte nicht dazu führen, dass das Sprachmodell unnötig weitreichende Datenbankrechte erhält.

Eigener Datenbankbenutzer

Für Nao wurde deshalb der PostgreSQL-Benutzer angelegt. Dieser besitzt ausschließlich Leserechte auf den benötigten Tabellen und Views. Damit kann Nao Daten analysieren, ohne fachliche Daten verändern oder löschen zu können.

Datenschutz bei Cloud-Modellen

Werden lokale Ollama-Modelle verwendet, können Datenbank und Sprachmodell innerhalb der eigenen Infrastruktur verbleiben.

Bei der Verwendung eines Ollama-Cloud-Modells sieht die Situation anders aus. Die für die Bearbeitung einer Anfrage benötigten Informationen können an den externen Modelldienst übertragen werden. Welche Daten Nao für eine konkrete Anfrage als Kontext an das Modell übermittelt, sollte deshalb bei produktiven oder vertraulichen Daten berücksichtigt werden.

Für besonders schützenswerte Daten ist ein vollständig lokales Modell die konsequentere Variante.

Ergebnisse aus dem Projekt

Für einen Praxistest sollte Nao nicht nur einfache Fragen beantworten, sondern selbstständig eine umfangreichere Analyse durchführen.

Die Aufgabenstellung lautete:

„Erstelle eine Management-Zusammenfassung der DVD-Rental-Datenbank: Umsatzentwicklung, Top-Kunden, erfolgreichste Filmkategorien, stärkste Filiale und drei auffällige Trends. Begründe jede Aussage mit den zugrunde liegenden Daten.“

Das Ergebnis zeigt gut, welchen Mehrwert der Datenbankkontext bietet.

Erweiterungsmöglichkeiten

Die Architektur lässt sich schrittweise auf weitere Datenbanken und Fragestellungen ausweiten. Interessant ist insbesondere die Möglichkeit, für unterschiedliche Datenquellen getrennte Nao-Projekte anzulegen. Dadurch kann beispielsweise ein Projekt ausschließlich eine Testdatenbank analysieren, während ein anderes Projekt einen vollständig anderen fachlichen Datenbestand und Kontext besitzt.

Erfahrungen aus dem Projekt

Die Einrichtung der PostgreSQL-Verbindung und des eigentlichen Datenbankzugriffs ist vergleichsweise unkompliziert. Etwas mehr Aufmerksamkeit benötigt die Frage, welche Metadaten und Berechtigungen Nao für eine sinnvolle Analyse erhalten soll.

Besonders wichtig ist ein sauber aufgebauter Datenbankkontext. Je besser Tabellen, Beziehungen und Spalten beschrieben sind, desto leichter kann das Sprachmodell fachliche Fragestellungen korrekt auf das Datenmodell übertragen.

Positiv fällt auf, dass auch komplexere Fragen gestellt werden können, ohne vorher die benötigte SQL-Abfrage vollständig planen zu müssen.

Gerade die Management-Zusammenfassung zeigt diesen Vorteil. Aus einer einzigen fachlichen Aufgabenstellung entstanden mehrere Analysen über Umsatz, Kunden, Kategorien, Filialen und auffällige Entwicklungen.

Die Ergebnisse sollten dennoch nicht ungeprüft übernommen werden. Ein LLM kann Zusammenhänge interpretieren und Hypothesen formulieren, aber daraus entsteht nicht automatisch ein nachgewiesener kausaler Zusammenhang. Die Kombination aus nachvollziehbarer SQL-Abfrage, Ergebnis und sprachlicher Interpretation ist deshalb besonders wertvoll.

Positives Fazit

Die Kombination aus PostgreSQL, Nao und Ollama zeigt, wie sich klassische relationale Datenbanken mit modernen KI-Verfahren verbinden lassen. PostgreSQL stellt die strukturierten Daten bereit. Nao übernimmt Datenbankkontext, Abfragegenerierung und Ergebnisaufbereitung. Ollama liefert flexibel austauschbare Sprachmodelle.

Besonders überzeugend sind:

  • Fragen an eine relationale Datenbank in natürlicher Sprache
  • automatische Erzeugung komplexerer SQL-Abfragen
  • Nutzung des vorhandenen Datenmodells als KI-Kontext
  • Trennung zwischen Datenbank, Analyseplattform und LLM
  • Zugriff über einen dedizierten Read-only-Datenbankbenutzer
  • austauschbare lokale und Cloud-basierte Modelle
  • automatische Zusammenfassungen umfangreicher Analyseergebnisse
  • die Möglichkeit, unterschiedliche Datenbanken als getrennte Projekte zu verwalten

Nao ersetzt damit weder PostgreSQL noch SQL-Kenntnisse. Gerade für Administratoren und Entwickler bleibt es wichtig, erzeugte Abfragen und Ergebnisse nachvollziehen zu können.

Der entscheidende Vorteil liegt vielmehr in einer neuen Zugangsschicht zu den vorhandenen Daten.

Aus

SELECT ...
FROM ...
JOIN ...
GROUP BY ...
ORDER BY ...

wird zunehmend eine fachliche Frage wie:

„Welche Entwicklungen fallen in meinen Daten auf und warum?“

Das Projekt zeigt damit sehr anschaulich, wie KI und klassische Datenbanktechnologie sinnvoll zusammenspielen können.

Ausblick

Der nächste interessante Schritt besteht darin, Nao nicht nur mit einer bekannten Beispieldatenbank, sondern mit umfangreicheren und heterogeneren Datenmodellen zu testen. Besonders spannend wäre beispielsweise die Analyse einer Betriebsdatenbank mit deutlich mehr Tabellen und komplexeren Beziehungen. Dabei ließe sich untersuchen, wie zuverlässig Nao auch größere Datenmodelle versteht und welche zusätzlichen Beschreibungen notwendig sind, um einen guten fachlichen Kontext aufzubauen.

Damit verschiebt sich der Schwerpunkt von der klassischen Frage „Welche SQL-Abfrage brauche ich?“ zunehmend zu der wesentlich interessanteren Frage:
„Was möchte ich über meine Daten wissen?“

Die Datenbank bleibt dabei, was sie immer war: die verlässliche Quelle strukturierter Informationen. Nao schafft lediglich einen neuen, deutlich natürlicheren Zugang zu diesen Daten.

Hinweis: Bei der Erstellung dieses Artikels wurde KI zur sprachlichen und redaktionellen Unterstützung eingesetzt. Inhalt, technische Angaben und Ergebnisse wurden geprüft und redaktionell bearbeitet.

Nach oben scrollen