SpringAiLlmService

constructor(name: String, provider: String, chatModel: <Error class: unknown class>, optionsConverter: <Error class: unknown class><out <Error class: unknown class>> = DefaultOptionsConverter, knowledgeCutoffDate: LocalDate? = null, promptContributors: List<<Error class: unknown class>> = buildList { knowledgeCutoffDate?.let { add(KnowledgeCutoffDate(it)) } }, pricingModel: <Error class: unknown class>? = null, thinkingSupported: Boolean = false, toolResponseContentAdapter: ToolResponseContentAdapter = ToolResponseContentAdapter.PASSTHROUGH, nativeStructuredOutputConfigurer: SpringAiNativeStructuredOutputConfigurer = SpringAiNativeStructuredOutputConfigurer.NOOP, nativeSupport: <Error class: unknown class>? = null)

Parameters

name

Name of the LLM

provider

Name of the provider (e.g., "OpenAI", "Anthropic")

chatModel

The Spring AI ChatModel to use for LLM calls

optionsConverter

Function to convert LlmOptions to Spring AI ChatOptions

knowledgeCutoffDate

Model's knowledge cutoff date, if known

promptContributors

List of prompt contributors for this model. Knowledge cutoff is automatically included if knowledgeCutoffDate is set.

pricingModel

Pricing model for this LLM, if known

thinkingSupported

Whether this model supports Embabel thinking operations, including generic thinking extraction or provider-native reasoning exposed through Embabel's thinking mode.

toolResponseContentAdapter

Adapts tool response content for provider-specific format requirements. Defaults to ToolResponseContentAdapter.PASSTHROUGH. Google GenAI requires JSON; OpenAI/Anthropic accept plain text.

nativeStructuredOutputConfigurer

Spring AI-specific translator for native structured-output request metadata. Defaults to no-op so unsupported providers keep prompt-schema fallback.