WatsonXProvider

org.llm4s.llmconnect.provider.WatsonXProvider

Registration for IBM watsonx.ai.

'''Beta - built on deprecated endpoints.''' IBM's February 2026 release notes (https://www.ibm.com/docs/en/software-hub/5.3.x?topic=new-watsonxai) deprecate the watsonx.ai "Infer text" and "Infer text event stream" endpoints (/ml/v1/text/generation and /generation_stream) this module uses; IBM points to the chat API. This module has never been run against the live service (no watsonx account), its API is not frozen, and tools are unsupported because of the endpoint. Migration to the chat API: https://github.com/llm4s/llm4s/issues/1314.

A section names the model and the projectId (or spaceId) inference runs in, and takes the IBM Cloud API key as apiKey - or from llm4s.credentials.watsonx.apiKey, which WATSONX_API_KEY binds. baseUrl selects the region and defaults to Dallas (us-south).

watsonx-main {
 provider  = "watsonx"
 model     = "ibm/granite-13b-instruct-v2"
 projectId = ${?WATSONX_PROJECT_ID}
}

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

Constructs the client for a ProviderConfig this provider produced.

Constructs the client for a ProviderConfig this provider produced.

config is whatever the caller passed, so implementations must check the type rather than cast — ProviderDescriptor.expectConfig does that and produces the standard mismatch error.

Attributes

def buildConfig(providerName: String, section: NamedProviderConfig)(using ContextWindowResolver): Result[ProviderConfig]

Turns a validated config section into the runtime ProviderConfig for this provider.

Turns a validated config section into the runtime ProviderConfig for this provider.

The section has already been checked against configSpec, so required fields are present and section.extras holds exactly the declared provider-specific keys that have a value (defaults applied, deprecated aliases resolved). A Left here means something configSpec cannot express (a malformed value, say).

Value parameters

providerName

the user's instance name (llm4s.providers.<name>), for error messages.

Attributes

Inherited methods

def aliases: Set[String]

Alternative spellings accepted in provider = "...", folded onto id.

Alternative spellings accepted in provider = "...", folded onto id.

For example Gemini accepts "google". Aliases are matched after the same trim/lowercase canonicalisation as id itself.

Attributes

Inherited from:
ProviderDescriptor

What this provider's client implements. Defaults to the full interface.

What this provider's client implements. Defaults to the full interface.

Attributes

Inherited from:
ProviderDescriptor

Live model discovery, when the provider's API offers it.

Live model discovery, when the provider's API offers it.

Attributes

Inherited from:
ProviderDescriptor

Concrete fields

val ApiVersionKey: String

The key giving the watsonx API version date.

The key giving the watsonx API version date.

Attributes

val IamUrlKey: String

The key giving the IAM token endpoint.

The key giving the IAM token endpoint.

Attributes

val ProjectIdKey: String

The key naming the watsonx project.

The key naming the watsonx project.

Attributes

val SpaceIdKey: String

The key naming a watsonx deployment space, used instead of a project.

The key naming a watsonx deployment space, used instead of a project.

Attributes

Which config fields this provider requires, its default endpoint, and the provider-specific keys (ProviderConfigSpec.extras) its section accepts.

Which config fields this provider requires, its default endpoint, and the provider-specific keys (ProviderConfigSpec.extras) its section accepts.

Attributes

val id: ProviderId

Canonical id, e.g. ProviderId("openai"). Must be unique within a registry.

Canonical id, e.g. ProviderId("openai"). Must be unique within a registry.

Attributes