FunctionInvocation<T> Class
- java.lang.Object
- reactor.core.publisher.Mono
- com.microsoft.semantickernel.orchestration.FunctionInvocation<T>
Type Parameters
- T
The type of the result of the function invocation.
public class FunctionInvocation<T>
extends reactor.core.publisher.Mono<FunctionResult<T>>
FunctionInvocation supports fluent invocation of a function in the kernel.
Field Summary
Constructor Summary
Method Summary
Methods inherited from java.lang.Object
java.lang.Object.clone
java.lang.Object.equals
java.lang.Object.finalize
java.lang.Object.getClass
java.lang.Object.hashCode
java.lang.Object.notify
java.lang.Object.notifyAll
java.lang.Object.wait
java.lang.Object.wait
java.lang.Object.wait
Methods inherited from reactor.core.publisher.Mono
reactor.core.publisher.Mono.<E>cast
reactor.core.publisher.Mono.<E>doOnError(java.lang.Class<E>,java.util.function.Consumer<
reactor.core.publisher.Mono.<E>onErrorContinue
reactor.core.publisher.Mono.<E>onErrorContinue
reactor.core.publisher.Mono.<E>onErrorMap(java.lang.Class<E>,java.util.function.Function<
reactor.core.publisher.Mono.<E>onErrorResume(java.lang.Class<E>,java.util.function.Function<
reactor.core.publisher.Mono.<E>onErrorReturn
reactor.core.publisher.Mono.<E>subscribeWith
reactor.core.publisher.Mono.<I>fromDirect(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.<P>as(java.util.function.Function<
reactor.core.publisher.Mono.<R>doOnDiscard(java.lang.Class<R>,java.util.function.Consumer<
reactor.core.publisher.Mono.<R>flatMap(java.util.function.Function<
reactor.core.publisher.Mono.<R>flatMapIterable(java.util.function.Function<
reactor.core.publisher.Mono.<R>flatMapMany(java.util.function.Function<
reactor.core.publisher.Mono.<R>flatMapMany(java.util.function.Function<
reactor.core.publisher.Mono.<R>handle(java.util.function.BiConsumer<
reactor.core.publisher.Mono.<R>map(java.util.function.Function<
reactor.core.publisher.Mono.<R>mapNotNull(java.util.function.Function<
reactor.core.publisher.Mono.<R>publish(java.util.function.Function<
reactor.core.publisher.Mono.<R>zip(java.lang.Iterable<
reactor.core.publisher.Mono.<R>zip(java.util.function.Function<
reactor.core.publisher.Mono.<R>zipDelayError(java.lang.Iterable<
reactor.core.publisher.Mono.<R>zipDelayError(java.util.function.Function<
reactor.core.publisher.Mono.<T,D>using(java.util.concurrent.Callable<
reactor.core.publisher.Mono.<T,D>using(java.util.concurrent.Callable<
reactor.core.publisher.Mono.<T,D>usingWhen(org.reactivestreams.Publisher<D>,java.util.function.Function<
reactor.core.publisher.Mono.<T,D>usingWhen(org.reactivestreams.Publisher<D>,java.util.function.Function<
reactor.core.publisher.Mono.<T1,T2,O>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6,T7,T8>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6,T7,T8>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6,T7>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6,T7>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5,T6>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4,T5>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3,T4>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2,T3>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2>zip(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T1,T2>zipDelayError(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T2,O>zipWhen(java.util.function.Function<T,reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T2,O>zipWith(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T2>zipWhen(java.util.function.Function<T,reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T2>zipWith(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T>create
reactor.core.publisher.Mono.<T>defer(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>deferContextual(java.util.function.Function<reactor.util.context.ContextView,
reactor.core.publisher.Mono.<T>deferWithContext(java.util.function.Function<reactor.util.context.Context,
reactor.core.publisher.Mono.<T>empty
reactor.core.publisher.Mono.<T>error
reactor.core.publisher.Mono.<T>error(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>first(java.lang.Iterable<
reactor.core.publisher.Mono.<T>first(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T>firstWithSignal(java.lang.Iterable<
reactor.core.publisher.Mono.<T>firstWithSignal(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T>firstWithValue(java.lang.Iterable<
reactor.core.publisher.Mono.<T>firstWithValue(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<T>from(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.<T>fromCallable(java.util.concurrent.Callable<
reactor.core.publisher.Mono.<T>fromCompletionStage(java.util.concurrent.CompletionStage<
reactor.core.publisher.Mono.<T>fromCompletionStage(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>fromFuture(java.util.concurrent.CompletableFuture<
reactor.core.publisher.Mono.<T>fromFuture(java.util.concurrent.CompletableFuture<
reactor.core.publisher.Mono.<T>fromFuture(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>fromFuture(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>fromRunnable
reactor.core.publisher.Mono.<T>fromSupplier(java.util.function.Supplier<
reactor.core.publisher.Mono.<T>ignoreElements
reactor.core.publisher.Mono.<T>just
reactor.core.publisher.Mono.<T>justOrEmpty
reactor.core.publisher.Mono.<T>justOrEmpty(java.util.Optional<
reactor.core.publisher.Mono.<T>never
reactor.core.publisher.Mono.<T>onAssembly
reactor.core.publisher.Mono.<T>sequenceEqual(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.<T>sequenceEqual(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.<T>sequenceEqual(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.<U>delaySubscription
reactor.core.publisher.Mono.<U>ofType
reactor.core.publisher.Mono.<U>timeout
reactor.core.publisher.Mono.<U>timeout(org.reactivestreams.Publisher<U>,reactor.core.publisher.Mono<
reactor.core.publisher.Mono.<V>then
reactor.core.publisher.Mono.<V>thenMany
reactor.core.publisher.Mono.<V>thenReturn
reactor.core.publisher.Mono.<V>transform(java.util.function.Function<
reactor.core.publisher.Mono.<V>transformDeferred(java.util.function.Function<
reactor.core.publisher.Mono.<V>transformDeferredContextual(java.util.function.BiFunction<
reactor.core.publisher.Mono.<X>dematerialize
reactor.core.publisher.Mono.and(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.block
reactor.core.publisher.Mono.block
reactor.core.publisher.Mono.blockOptional
reactor.core.publisher.Mono.blockOptional
reactor.core.publisher.Mono.cache
reactor.core.publisher.Mono.cache
reactor.core.publisher.Mono.cache
reactor.core.publisher.Mono.cache(java.util.function.Function<
reactor.core.publisher.Mono.cache(java.util.function.Function<
reactor.core.publisher.Mono.cacheInvalidateIf(java.util.function.Predicate<
reactor.core.publisher.Mono.cacheInvalidateWhen(java.util.function.Function<
reactor.core.publisher.Mono.cacheInvalidateWhen(java.util.function.Function<
reactor.core.publisher.Mono.cancelOn
reactor.core.publisher.Mono.checkpoint
reactor.core.publisher.Mono.checkpoint
reactor.core.publisher.Mono.checkpoint
reactor.core.publisher.Mono.concatWith(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.contextWrite
reactor.core.publisher.Mono.contextWrite
reactor.core.publisher.Mono.defaultIfEmpty
reactor.core.publisher.Mono.delay
reactor.core.publisher.Mono.delay
reactor.core.publisher.Mono.delayElement
reactor.core.publisher.Mono.delayElement
reactor.core.publisher.Mono.delaySubscription
reactor.core.publisher.Mono.delaySubscription
reactor.core.publisher.Mono.delayUntil(java.util.function.Function<
reactor.core.publisher.Mono.doAfterSuccessOrError(java.util.function.BiConsumer<
reactor.core.publisher.Mono.doAfterTerminate
reactor.core.publisher.Mono.doFinally
reactor.core.publisher.Mono.doFirst
reactor.core.publisher.Mono.doOnCancel
reactor.core.publisher.Mono.doOnEach(java.util.function.Consumer<
reactor.core.publisher.Mono.doOnError(java.util.function.Consumer<
reactor.core.publisher.Mono.doOnError(java.util.function.Predicate<
reactor.core.publisher.Mono.doOnNext(java.util.function.Consumer<
reactor.core.publisher.Mono.doOnRequest
reactor.core.publisher.Mono.doOnSubscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.doOnSuccess(java.util.function.Consumer<
reactor.core.publisher.Mono.doOnSuccessOrError(java.util.function.BiConsumer<
reactor.core.publisher.Mono.doOnTerminate
reactor.core.publisher.Mono.elapsed
reactor.core.publisher.Mono.elapsed
reactor.core.publisher.Mono.expand(java.util.function.Function<
reactor.core.publisher.Mono.expand(java.util.function.Function<
reactor.core.publisher.Mono.expandDeep(java.util.function.Function<
reactor.core.publisher.Mono.expandDeep(java.util.function.Function<
reactor.core.publisher.Mono.filter(java.util.function.Predicate<
reactor.core.publisher.Mono.filterWhen(java.util.function.Function<
reactor.core.publisher.Mono.flux
reactor.core.publisher.Mono.hasElement
reactor.core.publisher.Mono.hide
reactor.core.publisher.Mono.ignoreElement
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.log
reactor.core.publisher.Mono.materialize
reactor.core.publisher.Mono.mergeWith(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.metrics
reactor.core.publisher.Mono.name
reactor.core.publisher.Mono.onErrorComplete
reactor.core.publisher.Mono.onErrorComplete(java.lang.Class<
reactor.core.publisher.Mono.onErrorComplete(java.util.function.Predicate<
reactor.core.publisher.Mono.onErrorContinue
reactor.core.publisher.Mono.onErrorMap(java.util.function.Function<
reactor.core.publisher.Mono.onErrorMap(java.util.function.Predicate<
reactor.core.publisher.Mono.onErrorResume(java.util.function.Function<
reactor.core.publisher.Mono.onErrorResume(java.util.function.Predicate<
reactor.core.publisher.Mono.onErrorReturn
reactor.core.publisher.Mono.onErrorReturn(java.util.function.Predicate<
reactor.core.publisher.Mono.onErrorStop
reactor.core.publisher.Mono.onTerminateDetach
reactor.core.publisher.Mono.or(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.publishOn
reactor.core.publisher.Mono.repeat
reactor.core.publisher.Mono.repeat
reactor.core.publisher.Mono.repeat
reactor.core.publisher.Mono.repeat
reactor.core.publisher.Mono.repeatWhen(java.util.function.Function<reactor.core.publisher.Flux<java.lang.Long>,
reactor.core.publisher.Mono.repeatWhenEmpty(int,java.util.function.Function<reactor.core.publisher.Flux<java.lang.Long>,
reactor.core.publisher.Mono.repeatWhenEmpty(java.util.function.Function<reactor.core.publisher.Flux<java.lang.Long>,
reactor.core.publisher.Mono.retry
reactor.core.publisher.Mono.retry
reactor.core.publisher.Mono.retryWhen
reactor.core.publisher.Mono.share
reactor.core.publisher.Mono.single
reactor.core.publisher.Mono.subscribe
reactor.core.publisher.Mono.subscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.subscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.subscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.subscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.subscribe(java.util.function.Consumer<
reactor.core.publisher.Mono.subscribe(org.reactivestreams.Subscriber<
reactor.core.publisher.Mono.subscribe(reactor.core.CoreSubscriber<
reactor.core.publisher.Mono.subscribeOn
reactor.core.publisher.Mono.subscriberContext
reactor.core.publisher.Mono.subscriberContext
reactor.core.publisher.Mono.subscriberContext
reactor.core.publisher.Mono.switchIfEmpty(reactor.core.publisher.Mono<
reactor.core.publisher.Mono.tag
reactor.core.publisher.Mono.take
reactor.core.publisher.Mono.take
reactor.core.publisher.Mono.takeUntilOther(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.then
reactor.core.publisher.Mono.thenEmpty
reactor.core.publisher.Mono.timed
reactor.core.publisher.Mono.timed
reactor.core.publisher.Mono.timeout
reactor.core.publisher.Mono.timeout(java.time.Duration,reactor.core.publisher.Mono<
reactor.core.publisher.Mono.timeout(java.time.Duration,reactor.core.publisher.Mono<
reactor.core.publisher.Mono.timeout
reactor.core.publisher.Mono.timestamp
reactor.core.publisher.Mono.timestamp
reactor.core.publisher.Mono.toFuture
reactor.core.publisher.Mono.toProcessor
reactor.core.publisher.Mono.toString
reactor.core.publisher.Mono.when(java.lang.Iterable<
reactor.core.publisher.Mono.when(org.reactivestreams.Publisher<
reactor.core.publisher.Mono.whenDelayError(java.lang.Iterable<
reactor.core.publisher.Mono.whenDelayError(org.reactivestreams.Publisher<
Field Details
arguments
protected KernelFunctionArguments arguments
contextVariableTypes
protected final ContextVariableTypes contextVariableTypes
function
protected final KernelFunction<?> function
hooks
protected KernelHooks.UnmodifiableKernelHooks hooks
kernel
protected final Kernel kernel
promptExecutionSettings
protected PromptExecutionSettings promptExecutionSettings
resultType
protected final ContextVariableType<T> resultType
toolCallBehavior
protected ToolCallBehavior toolCallBehavior
Constructor Details
FunctionInvocation
public FunctionInvocation(Kernel kernel, KernelFunction<?> function, ContextVariableType<T> resultType)
Create a new function invocation.
Parameters:
kernel
- The kernel to invoke the function on.
function
- The function to invoke.
resultType
- The type of the result of the function invocation.
FunctionInvocation
public FunctionInvocation(Kernel kernel, KernelFunction<T> function)
Create a new function invocation.
Parameters:
kernel
- The kernel to invoke the function on.
function
- The function to invoke.
Method Details
withResultType
public FunctionInvocation withResultType(ContextVariableType resultType)
Supply the result type of function invocation.
Parameters:
resultType
- The arguments to supply to the function invocation.
Returns:
A new FunctionInvocation for fluent chaining.
withResultType
public FunctionInvocation withResultType(Class resultType)
Supply the result type of function invocation. Uses the global context variable types.
Parameters:
resultType
- The arguments to supply to the function invocation.
Returns:
A new FunctionInvocation for fluent chaining.
withResultTypeAutoConversion
public FunctionInvocation withResultTypeAutoConversion(Class resultType)
Supply the result type of function invocation. Also registers a type converter for the given type using `` ContextVariableJacksonConverter.create}.
Parameters:
resultType
- The arguments to supply to the function invocation.
Returns:
A new FunctionInvocation for fluent chaining.
addKernelHook
public FunctionInvocation<T> addKernelHook(KernelHook<?> hook)
Add a kernel hook to the function invocation.
Parameters:
hook
- The kernel hook to add.
Returns:
this FunctionInvocation for fluent chaining.
addKernelHooks
public FunctionInvocation<T> addKernelHooks(KernelHooks hooks)
Add kernel hooks to the function invocation.
Parameters:
hooks
- The kernel hooks to add.
Returns:
this FunctionInvocation for fluent chaining.
subscribe
public void subscribe(CoreSubscriber<? super FunctionResult<T>> coreSubscriber)
This method handles the reactive stream when the KernelFunction is invoked.
Overrides:
FunctionInvocation<T>.subscribe(CoreSubscriber<? super FunctionResult<T>> coreSubscriber)
Parameters:
coreSubscriber
- The subscriber to subscribe to the function invocation.
withArguments
public FunctionInvocation<T> withArguments(KernelFunctionArguments arguments)
Supply arguments to the function invocation.
Parameters:
arguments
- The arguments to supply to the function invocation.
Returns:
this FunctionInvocation for fluent chaining.
withInvocationContext
public FunctionInvocation<T> withInvocationContext(InvocationContext invocationContext)
Use an invocation context variable to supply the types, tool call behavior, prompt execution settings, and kernel hooks to the function invocation.
Parameters:
invocationContext
- The invocation context to supply to the function invocation.
Returns:
this FunctionInvocation for fluent chaining.
withPromptExecutionSettings
public FunctionInvocation<T> withPromptExecutionSettings(PromptExecutionSettings promptExecutionSettings)
Supply prompt execution settings to the function invocation.
Parameters:
promptExecutionSettings
- The prompt execution settings to supply to the function
invocation.
Returns:
this FunctionInvocation for fluent chaining.
withToolCallBehavior
public FunctionInvocation<T> withToolCallBehavior(ToolCallBehavior toolCallBehavior)
Supply tool call behavior to the function invocation.
Parameters:
toolCallBehavior
- The tool call behavior to supply to the function invocation.
Returns:
this FunctionInvocation for fluent chaining.
withTypeConverter
public FunctionInvocation<T> withTypeConverter(ContextVariableTypeConverter<?> typeConverter)
Supply a type converter to the function invocation.
Parameters:
typeConverter
- The type converter to supply to the function invocation.
Returns:
this FunctionInvocation for fluent chaining.
withTypes
public FunctionInvocation<T> withTypes(ContextVariableTypes contextVariableTypes)
Supply a context variable type to the function invocation.
Parameters:
contextVariableTypes
- The context variable types to supply to the function invocation.
Returns:
this FunctionInvocation for fluent chaining.