LU13.A04 Knowledge Base testen
Nun da die Seiten dieses Moduls in der Vektordatenbank gespeichert sind, können wir versuchen Fragen zum Unterrichtstoff zu stellen.
Welche URL's werden Ihnen bei der Frage „Was ist Lombok?“ zurückgegeben? Sie können nachfolgenden Code nutzen, um die Suche auszuführen.
package ch.bzz.rag; import ch.bzz.rag.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.ai.document.Document; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import java.util.List; @Slf4j @SpringBootApplication public class ApplicationMain { public static void main(String[] args) { ConfigurableApplicationContext ctx = SpringApplication.run(ApplicationMain.class, args); StoreService storeService = ctx.getBean(StoreService.class); storeService.updateIndex(); int numberOfResults = 5; String query = "Was ist Lombok?"; List<Document> docs = storeService.search(query, numberOfResults); for(Document doc : docs){ log.info("Doc with id '{}' and metadata '{}'", doc.getId() , doc.getMetadata()); } ctx.close(); } }
Falls nicht 5 Resultate oder völlig falsche zurückgegeben werden, kann die an einem fehlerhaften Index liegen. In diesem Fall können Sie den Index mit folgendem Code löschen.
Beim Start der Applikation sollte der Index automatisch wieder angelegt werden aufgrund der Implementation in VectorTableInitializer.java.
DROP INDEX IF EXISTS vector_store_embedding_idx;