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 resultType
toolCallBehavior
protected ToolCallBehavior toolCallBehavior
Constructor Details
FunctionInvocation
public FunctionInvocation(Kernel kernel, KernelFunction function, ContextVariableType 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 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 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 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> 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 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 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 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 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 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 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.