diff --git a/adaptive-rag/src/main/java/dev/langchain4j/adaptiverag/AdaptiveRag.java b/adaptive-rag/src/main/java/dev/langchain4j/adaptiverag/AdaptiveRag.java index 19f8872..600ae46 100644 --- a/adaptive-rag/src/main/java/dev/langchain4j/adaptiverag/AdaptiveRag.java +++ b/adaptive-rag/src/main/java/dev/langchain4j/adaptiverag/AdaptiveRag.java @@ -2,6 +2,7 @@ import dev.langchain4j.data.segment.TextSegment; import dev.langchain4j.store.embedding.EmbeddingSearchResult; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import lombok.var; import org.bsc.langgraph4j.CompiledGraph; @@ -57,17 +58,22 @@ public List documents() { private final String openApiKey; private final String tavilyApiKey; - private final ChromaStore chroma; + @Getter(lazy = true) + private final ChromaStore chroma = openChroma(); public AdaptiveRag( String openApiKey, String tavilyApiKey ) { Objects.requireNonNull(openApiKey, "no OPENAI APIKEY provided!"); Objects.requireNonNull(tavilyApiKey, "no TAVILY APIKEY provided!"); this.openApiKey = openApiKey; this.tavilyApiKey = tavilyApiKey; - this.chroma = ChromaStore.of(openApiKey); + //this.chroma = ChromaStore.of(openApiKey); } + private ChromaStore openChroma() { + return ChromaStore.of(openApiKey); + } + /** * Node: Retrieve documents * @param state The current graph state @@ -78,7 +84,7 @@ private Map retrieve( State state ) { String question = state.question(); - EmbeddingSearchResult relevant = this.chroma.search( question ); + EmbeddingSearchResult relevant = this.getChroma().search( question ); List documents = relevant.matches().stream() .map( m -> m.embedded().text() )