Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:java:learningunits:lu12:aufgaben:a04 [2025/11/24 01:12] – angelegt apeterde:modul:ffit:3-jahr:java:learningunits:lu12:aufgaben:a04 [2025/12/16 11:04] (aktuell) apeter
Zeile 1: Zeile 1:
 ==== LU12.A04 pgVector in SpringAI verwenden ==== ==== LU12.A04 pgVector in SpringAI verwenden ====
  
-Holen Sie sich die Tests mit einem Cherry-Pick auf ''TODO''.+Holen Sie sich die Tests mit einem Cherry-Pick auf ''f6c5bc4''.
  
-Erstellen Sie eine neue Datenbank und einen neuen Benutzer. Sie dürfen natürlich eigene Namen/Passwort verwenden+Erstellen Sie einen Datenbank-Benutzer und eine Database. Sie können dabei auch andere Namen bzw. Passwörter wählen.
 <code sql> <code sql>
 CREATE DATABASE ragdb; CREATE DATABASE ragdb;
 +\c ragdb;
 CREATE USER rag_user WITH PASSWORD 'secret'; CREATE USER rag_user WITH PASSWORD 'secret';
 GRANT ALL PRIVILEGES ON DATABASE ragdb TO rag_user; 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;
 </code> </code>
  
-Legen Sie in ihrem Projekt unter ''src/main/resources/'' eine Datei namens ''application.properties'' an mit folgendem Inhalt. Diese Datei dient wie das bestehende ''application.yml'' für Properties verwendet, aber wird im Gegensatz zu letzterem selbstverständlicherweise nicht in Git eingecheckt.  +Erstellen Sie ein ''application.properties'' unter ''src/main/resources/'' mit folgenden Einstellungen
-<code application.properties>+<code properties>
 spring.datasource.url=jdbc:postgresql://localhost:5432/ragdb spring.datasource.url=jdbc:postgresql://localhost:5432/ragdb
 spring.datasource.username=rag_user spring.datasource.username=rag_user
Zeile 17: Zeile 20:
 </code> </code>
  
-Überprüfen Sie zudemob alle Annotationen wie z.B. ''@Slf4j'' in ''ApplicationMain.java'' in Ihrer IDE importiert werden können.+Studieren Sie die Änderungen gründlich und stellen Sie sicherdass der Test ''StoreServiceTest.java'' ohne Fehler ausgeführt werden kann. 
 +<code bash> 
 +./gradlew test 
 +</code> 
 + 
 +Ergänzen Sie allenfalls das application.yml, um sicherzustellen, dass beim Suchen dasselbe Embedding und diesselbe Distanz- beziehungsweise Ähnlichkeitsfunktion verwendet wird, wie beim Abspeichern. 
 +<code yaml> 
 +    vectorstore: 
 +      pgvector: 
 +        enabled: true 
 +        table-name: vector_store 
 +        indexType: "IVFFlat" 
 +        lists: 100 
 +        distance-type: "COSINE_DISTANCE" 
 +</code> 
 + 
 +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. 
 + 
 +Falls zu wenig oder völlig falsche Dokumente vom VectorStore zurückgegeben werden, könnte allenfalls die Indexierung fehlerhaft sein. Sie können diese manuell neu erstellen mit folgenden Befehlen. 
 + 
 +<code bash> 
 +psql -U postgres -d ragdb 
 +</code> 
 +<code sql> 
 +REINDEX TABLE vector_store; 
 +</code> 
 + 
  • de/modul/ffit/3-jahr/java/learningunits/lu12/aufgaben/a04.1763943176.txt.gz
  • Zuletzt geändert: 2025/11/24 01:12
  • von apeter