public class dev.langchain4j.rag.DefaultRetrievalAugmentor extends java.lang.Object implements dev.langchain4j.rag.RetrievalAugmentor
{
private static final org.slf4j.Logger log;
private final dev.langchain4j.rag.query.transformer.QueryTransformer queryTransformer;
private final dev.langchain4j.rag.query.router.QueryRouter queryRouter;
private final dev.langchain4j.rag.content.aggregator.ContentAggregator contentAggregator;
private final dev.langchain4j.rag.content.injector.ContentInjector contentInjector;
private final java.util.concurrent.Executor executor;
public void <init>(dev.langchain4j.rag.query.transformer.QueryTransformer, dev.langchain4j.rag.query.router.QueryRouter, dev.langchain4j.rag.content.aggregator.ContentAggregator, dev.langchain4j.rag.content.injector.ContentInjector, java.util.concurrent.Executor)
{
dev.langchain4j.rag.content.aggregator.ContentAggregator v;
dev.langchain4j.rag.content.injector.ContentInjector v;
dev.langchain4j.rag.query.router.QueryRouter v;
java.util.concurrent.Executor v;
java.util.function.Supplier v, v, v, v;
dev.langchain4j.rag.DefaultRetrievalAugmentor v;
dev.langchain4j.rag.query.transformer.QueryTransformer v;
java.lang.Object v, v, v, v, v;
v := @this: dev.langchain4j.rag.DefaultRetrievalAugmentor;
v := @parameter: dev.langchain4j.rag.query.transformer.QueryTransformer;
v := @parameter: dev.langchain4j.rag.query.router.QueryRouter;
v := @parameter: dev.langchain4j.rag.content.aggregator.ContentAggregator;
v := @parameter: dev.langchain4j.rag.content.injector.ContentInjector;
v := @parameter: java.util.concurrent.Executor;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$init__22: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.util.function.Supplier)>(v, v);
v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.query.transformer.QueryTransformer queryTransformer> = v;
v = staticinvoke <dev.langchain4j.internal.ValidationUtils: java.lang.Object ensureNotNull(java.lang.Object,java.lang.String)>(v, "queryRouter");
v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.query.router.QueryRouter queryRouter> = v;
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$init__23: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.util.function.Supplier)>(v, v);
v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.content.aggregator.ContentAggregator contentAggregator> = v;
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$init__24: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.util.function.Supplier)>(v, v);
v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.content.injector.ContentInjector contentInjector> = v;
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$newCachedThreadPool__25: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <dev.langchain4j.internal.Utils: java.lang.Object getOrDefault(java.lang.Object,java.util.function.Supplier)>(v, v);
v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: java.util.concurrent.Executor executor> = v;
return;
}
public dev.langchain4j.data.message.UserMessage augment(dev.langchain4j.data.message.UserMessage, dev.langchain4j.rag.query.Metadata)
{
dev.langchain4j.rag.content.aggregator.ContentAggregator v;
dev.langchain4j.rag.content.injector.ContentInjector v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
dev.langchain4j.rag.DefaultRetrievalAugmentor v;
dev.langchain4j.rag.query.Query v;
java.util.function.Consumer v;
dev.langchain4j.rag.query.transformer.QueryTransformer v;
java.util.List v;
dev.langchain4j.data.message.UserMessage v, v;
java.util.Map v;
java.lang.String v;
dev.langchain4j.rag.query.Metadata v;
v := @this: dev.langchain4j.rag.DefaultRetrievalAugmentor;
v := @parameter: dev.langchain4j.data.message.UserMessage;
v := @parameter: dev.langchain4j.rag.query.Metadata;
v = virtualinvoke v.<dev.langchain4j.data.message.UserMessage: java.lang.String text()>();
v = staticinvoke <dev.langchain4j.rag.query.Query: dev.langchain4j.rag.query.Query 'from'(java.lang.String,dev.langchain4j.rag.query.Metadata)>(v, v);
staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: void log(dev.langchain4j.rag.query.Query)>(v);
v = v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.query.transformer.QueryTransformer queryTransformer>;
v = interfaceinvoke v.<dev.langchain4j.rag.query.transformer.QueryTransformer: java.util.Collection transform(dev.langchain4j.rag.query.Query)>(v);
staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: void log(java.util.Collection)>(v);
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_augment_2__26: java.util.function.Consumer bootstrap$(dev.langchain4j.rag.DefaultRetrievalAugmentor,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.Collection: void forEach(java.util.function.Consumer)>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: java.util.Map join(java.util.Map)>(v);
v = v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.content.aggregator.ContentAggregator contentAggregator>;
v = interfaceinvoke v.<dev.langchain4j.rag.content.aggregator.ContentAggregator: java.util.List aggregate(java.util.Map)>(v);
staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: void log(java.util.List)>(v);
v = v.<dev.langchain4j.rag.DefaultRetrievalAugmentor: dev.langchain4j.rag.content.injector.ContentInjector contentInjector>;
v = interfaceinvoke v.<dev.langchain4j.rag.content.injector.ContentInjector: dev.langchain4j.data.message.UserMessage inject(java.util.List,dev.langchain4j.data.message.UserMessage)>(v, v);
staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: void log(dev.langchain4j.data.message.UserMessage)>(v);
return v;
}
private java.util.concurrent.CompletableFuture retrieveFromAll(java.util.Collection, dev.langchain4j.rag.query.Query)
{
java.lang.Object[] v;
java.util.Collection v;
java.util.concurrent.CompletableFuture v, v;
java.util.function.Function v, v;
dev.langchain4j.rag.DefaultRetrievalAugmentor v;
dev.langchain4j.rag.query.Query v;
java.util.stream.Stream v, v;
java.util.concurrent.CompletableFuture[] v;
java.lang.Object v;
java.util.stream.Collector v;
v := @this: dev.langchain4j.rag.DefaultRetrievalAugmentor;
v := @parameter: java.util.Collection;
v := @parameter: dev.langchain4j.rag.query.Query;
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_retrieveFromAll_4__27: java.util.function.Function bootstrap$(dev.langchain4j.rag.DefaultRetrievalAugmentor,dev.langchain4j.rag.query.Query)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = newarray (java.util.concurrent.CompletableFuture)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = staticinvoke <java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture allOf(java.util.concurrent.CompletableFuture[])>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_retrieveFromAll_5__28: java.util.function.Function bootstrap$(java.util.List)>(v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture thenApply(java.util.function.Function)>(v);
return v;
}
private static java.util.List retrieve(dev.langchain4j.rag.content.retriever.ContentRetriever, dev.langchain4j.rag.query.Query)
{
java.util.List v;
dev.langchain4j.rag.content.retriever.ContentRetriever v;
dev.langchain4j.rag.query.Query v;
v := @parameter: dev.langchain4j.rag.content.retriever.ContentRetriever;
v := @parameter: dev.langchain4j.rag.query.Query;
v = interfaceinvoke v.<dev.langchain4j.rag.content.retriever.ContentRetriever: java.util.List retrieve(dev.langchain4j.rag.query.Query)>(v);
staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor: void log(dev.langchain4j.rag.query.Query,dev.langchain4j.rag.content.retriever.ContentRetriever,java.util.List)>(v, v, v);
return v;
}
private static java.util.Map join(java.util.Map)
{
java.lang.Object[] v;
java.util.Collection v;
java.util.concurrent.CompletableFuture v, v;
java.util.function.Function v;
java.util.concurrent.CompletableFuture[] v;
java.util.Map v;
java.lang.Object v;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = newarray (java.util.concurrent.CompletableFuture)[0];
v = interfaceinvoke v.<java.util.Collection: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = staticinvoke <java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture allOf(java.util.concurrent.CompletableFuture[])>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_join_7__29: java.util.function.Function bootstrap$(java.util.Map)>(v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture thenApply(java.util.function.Function)>(v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.lang.Object join()>();
return v;
}
private static void log(dev.langchain4j.rag.query.Query)
{
java.lang.String v;
org.slf4j.Logger v;
dev.langchain4j.rag.query.Query v;
v := @parameter: dev.langchain4j.rag.query.Query;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = virtualinvoke v.<dev.langchain4j.rag.query.Query: java.lang.String text()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Original query: \'{}\'", v);
return;
}
private static void log(java.util.Collection)
{
org.slf4j.Logger v;
java.util.Collection v;
java.util.function.Function v, v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
java.util.stream.Collector v;
v := @parameter: java.util.Collection;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$text__30: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_log_8__31: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>("\n");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Transformed queries:\n{}", v);
return;
}
private static void log(dev.langchain4j.rag.query.Query, java.util.Collection)
{
org.slf4j.Logger v;
java.util.Collection v;
java.util.function.Function v;
dev.langchain4j.rag.query.Query v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.lang.String v;
java.util.stream.Collector v;
v := @parameter: dev.langchain4j.rag.query.Query;
v := @parameter: java.util.Collection;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = virtualinvoke v.<dev.langchain4j.rag.query.Query: java.lang.String text()>();
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_log_9__32: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>("\n");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Routing query \'{}\' to the following retrievers:\n{}", v, v);
return;
}
private static void log(dev.langchain4j.rag.query.Query, dev.langchain4j.rag.content.retriever.ContentRetriever, java.util.List)
{
java.lang.Object[] v;
org.slf4j.Logger v;
java.util.function.Function v, v;
dev.langchain4j.rag.content.retriever.ContentRetriever v;
dev.langchain4j.rag.query.Query v;
java.util.List v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
java.lang.String v;
java.util.stream.Collector v;
v := @parameter: dev.langchain4j.rag.query.Query;
v := @parameter: dev.langchain4j.rag.content.retriever.ContentRetriever;
v := @parameter: java.util.List;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = virtualinvoke v.<dev.langchain4j.rag.query.Query: java.lang.String text()>();
v[1] = v;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$textSegment__33: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_log_10__34: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>("\n");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Retrieved the following contents using retriever \'{}\' and query \'{}\':\n{}", v);
return;
}
private static void log(java.util.List)
{
org.slf4j.Logger v;
java.util.function.Function v, v;
java.util.List v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
java.util.stream.Collector v;
v := @parameter: java.util.List;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$textSegment__35: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <dev.langchain4j.rag.DefaultRetrievalAugmentor$lambda_log_11__36: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>("\n");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Aggregated all contents into:\n{}", v);
return;
}
private static void log(dev.langchain4j.data.message.UserMessage)
{
java.lang.String v;
org.slf4j.Logger v;
dev.langchain4j.data.message.UserMessage v;
v := @parameter: dev.langchain4j.data.message.UserMessage;
v = <dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (dev.langchain4j.data.message.UserMessage)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Augmented user message: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
return;
}
public static dev.langchain4j.rag.DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder builder()
{
dev.langchain4j.rag.DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder v;
v = new dev.langchain4j.rag.DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;
specialinvoke v.<dev.langchain4j.rag.DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder: void <init>()>();
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Ldev/langchain4j/rag/DefaultRetrievalAugmentor;");
<dev.langchain4j.rag.DefaultRetrievalAugmentor: org.slf4j.Logger log> = v;
return;
}
}