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.