Holen Sie sich die Tests mit einem Cherry-Pick auf f6c5bc4.

Erstellen Sie einen Datenbank-Benutzer und eine Database. Sie können dabei auch andere Namen bzw. Passwörter wählen.

CREATE DATABASE ragdb;
\c ragdb;
CREATE USER rag_user WITH PASSWORD 'secret';
GRANT ALL PRIVILEGES ON DATABASE ragdb TO rag_user;
GRANT USAGE, CREATE ON SCHEMA public TO rag_user;
GRANT ALL PRIVILEGES ON SCHEMA public TO rag_user;

Erstellen Sie ein application.properties unter src/main/resources/ mit folgenden Einstellungen.

spring.datasource.url=jdbc:postgresql://localhost:5432/ragdb
spring.datasource.username=rag_user
spring.datasource.password=secret

Studieren Sie die Änderungen gründlich und stellen Sie sicher, dass der Test StoreServiceTest.java ohne Fehler ausgeführt werden kann.

./gradlew test

Ergänzen Sie allenfalls das application.yml, um sicherzustellen, dass beim Suchen dasselbe Embedding und diesselbe Distanz- beziehungsweise Ähnlichkeitsfunktion verwendet wird, wie beim Abspeichern.

    vectorstore:
      pgvector:
        enabled: true
        table-name: vector_store
        indexType: "IVFFlat"
        lists: 100
        distance-type: "COSINE_DISTANCE"

An dieser Stelle sei angemerkt, dass der Test die echte Datenbank verwendet anstatt einer separaten Testdatenbank oder einem Mock. Damit nicht bei jeder Testausführung Duplikate hinzugefügt werden, wurde in der Klasse DocumentFactory die id deterministisch basierend auf dem Text erstellt. Dadurch werden Datensätze mit demselben Inhalt überschrieben anstatt neu angelegt.

  • de/modul/ffit/3-jahr/java/learningunits/lu12/aufgaben/a04.txt
  • Zuletzt geändert: 2025/12/02 08:36
  • von apeter