Java & Spring AI

RAG mit Spring AI und pgvector

Spring AI stellt portable APIs für Chatmodelle, Embeddings, Vector Stores und modulare RAG-Flows bereit. In Verbindung mit PostgreSQL und pgvector entsteht eine Java-native Architektur, die sich in bestehende Spring-Boot-Systeme integrieren lässt.

Architektur in einem Satz

Eine Spring-AI-RAG-Anwendung liest Dokumente ein, erzeugt Embeddings, speichert Text und Vektoren in einem VectorStore, ruft bei einer Frage relevante Dokumente ab und übergibt nur den ausgewählten Kontext an das Chatmodell.

Was ist Spring AI?

Spring AI überträgt etablierte Spring-Prinzipien auf generative KI. Das Framework bietet APIs und Auto-Konfigurationen für Chatmodelle, Embedding-Modelle, Vector Stores, Dokumentverarbeitung, Tool Calling und RAG. Anwendungen bleiben dadurch näher an vertrauten Spring-Boot-Mustern und müssen Modellanbieter nicht direkt in jeder Fachkomponente ansprechen.

Für einfache Frage-Antwort-Flows stellt Spring AI den QuestionAnswerAdvisor bereit. Komplexere Abläufe lassen sich mit dem RetrievalAugmentationAdvisor und austauschbaren Modulen für Query-Transformation, Retrieval und Post-Processing strukturieren.

Architektur einer Spring-AI-RAG-Anwendung

Spring-AI-RAG-Architektur mit Dokumentimport, Chunking, Embeddings, PostgreSQL pgvector, Retrieval und Chatmodell
Zwei getrennte Flows: Datenaufnahme und Beantwortung einer Benutzerfrage.

Ingestion

Dokument lesen, bereinigen, in Chunks teilen, Embeddings erzeugen und mit Metadaten speichern.

Query

Frage analysieren, passende Chunks abrufen, Berechtigungen anwenden und Antwort generieren.

Warum PostgreSQL und pgvector?

pgvector erweitert PostgreSQL um Vektortypen und Ähnlichkeitssuche. Damit können relationale Geschäftsdaten, Text, Metadaten und Embeddings in derselben betrieblich bekannten Datenbank liegen. Für viele Anwendungen reduziert dies die Anzahl zusätzlicher Infrastrukturkomponenten.

pgvector unterstützt exakte Suche sowie approximative Indizes wie HNSW und IVFFlat. Ob PostgreSQL ausreicht, hängt von Datenmenge, Filterverteilung, Latenzziel und Betriebsmodell ab. Ein Benchmark mit dem eigenen Datenbestand ist aussagekräftiger als eine pauschale Empfehlung.

Wie sieht ein RAG-Flow mit Spring AI aus?

Der folgende Ausschnitt zeigt den von Spring AI dokumentierten Advisor-Ansatz. Er setzt voraus, dass Dokumente bereits in einem VectorStore gespeichert sind:

ChatClient chatClient = ChatClient.builder(chatModel)
    .defaultAdvisors(
        QuestionAnswerAdvisor.builder(vectorStore).build()
    )
    .build();

String answer = chatClient.prompt()
    .user(question)
    .call()
    .content();

Für Mandantentrennung oder Dokumenttypen reicht ein globaler Similarity Search nicht. Metadatenfilter müssen serverseitig und unabhängig von der Benutzereingabe erzwungen werden. Ein direkter Retrieval-Schritt kann beispielsweise so aussehen:

SearchRequest request = SearchRequest.builder()
    .query(question)
    .topK(8)
    .similarityThreshold(0.35)
    .filterExpression(
        "knowledge_space_id == '" + trustedSpaceId + "'"
    )
    .build();

List<Document> hits = vectorStore.similaritySearch(request);

Der Filterwert muss aus einer vertrauenswürdigen serverseitigen Identität stammen. Benutzereingaben dürfen nicht ungeprüft zu Filterausdrücken zusammengesetzt werden.

Was braucht Spring AI RAG für den Produktivbetrieb?

  • Reproduzierbares Chunking und versionierte Embedding-Modelle
  • Harte Mandanten- und ACL-Filter bereits beim Retrieval
  • Hybrid Search für Semantik und exakte Begriffe
  • Kontextbudget, Duplikatkontrolle und optionales Reranking
  • Schutz vor indirekter Prompt Injection aus Dokumenten
  • Zitatvalidierung und ein klares No-Answer-Verhalten
  • Timeouts, Rate Limits, Monitoring und kontrollierte Fehlerantworten
  • Golden Set und Regressionstests bei Modell- oder Promptänderungen

Weitere Architekturmuster beschreibt die Seite Advanced RAG: Hybrid Retrieval, Guardrails und Evaluation.

Wie misst man die Qualität einer RAG-Pipeline?

Eine Antwort, die in einer Demo gut aussieht, reicht nicht als Qualitätsnachweis. Ein Golden Set sollte erwartete Quellen, beantwortbare Fragen, themenfremde Fragen und Angriffsversuche enthalten. Wichtige Metriken sind Retrieval Precision/Recall, Faithfulness, Citation Accuracy, No-Answer Accuracy sowie p50-/p95-Latenz.

Allerate besitzt dafür eine versionierte Evaluationsgrundlage. Automatisierte Ergebniswerte werden erst veröffentlicht, wenn der vollständige Lauf reproduzierbar ausgeführt wurde.

Primärquellen

  1. Spring AI Reference: Retrieval-Augmented Generation
  2. Spring AI Reference: Advisors API
  3. pgvector – offizielle Projektdokumentation

Spring AI RAG als Proof of Concept

Validieren Sie Datenquellen, Berechtigungen, Antwortqualität und Betrieb mit einem begrenzten realen Use Case.

Fachlich verantwortlich

Verantwortlicher für die technischen Fachinhalte und die öffentlich dokumentierten Spring-Boot-, Spring-AI- und RAG-Projekte von Allerate.

Fachlich geprüft und zuletzt aktualisiert am 30. Juli 2026.