ReliableProviders

org.llm4s.reliability.ReliableProviders

Convenience methods for wrapping provider clients with reliability features.

Provides easy-to-use factory methods for creating reliable versions of each LLM provider client (OpenAI, Anthropic, Gemini, Ollama, OpenRouter, Zai).

Example usage:

// Create a reliable OpenAI client with default settings
val client = ReliableProviders.openai(
 OpenAIConfig(
   apiKey = "sk-...",
   model = "gpt-4o"
 )
)

// Or with custom reliability config
val aggressiveClient = ReliableProviders.openai(
 OpenAIConfig(apiKey = "sk-...", model = "gpt-4o"),
 ReliabilityConfig.aggressive
)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def anthropic(config: AnthropicConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable Anthropic client.

Create a reliable Anthropic client.

Value parameters

config

Anthropic configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping AnthropicClient, or Left(LLMError) on failure

def azureOpenAI(config: AzureConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable Azure OpenAI client.

Create a reliable Azure OpenAI client.

Value parameters

config

Azure OpenAI configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping OpenAIClient, or Left(LLMError) on failure

def gemini(config: GeminiConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable Gemini client.

Create a reliable Gemini client.

Value parameters

config

Gemini configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping GeminiClient, or Left(LLMError) on failure

def ollama(config: OllamaConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable Ollama client.

Create a reliable Ollama client.

Value parameters

config

Ollama configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping OllamaClient, or Left(LLMError) on failure

def openRouter(config: OpenAIConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable OpenRouter client.

Create a reliable OpenRouter client.

OpenRouter uses OpenAI-compatible configuration.

Value parameters

config

OpenAI configuration (works with OpenRouter)

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping OpenRouterClient, or Left(LLMError) on failure

def openai(config: OpenAIConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable OpenAI client.

Create a reliable OpenAI client.

Value parameters

config

OpenAI configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping OpenAIClient, or Left(LLMError) on failure

def wrap(client: LLMClient, providerName: String, reliabilityConfig: ReliabilityConfig, metrics: Option[MetricsCollector]): LLMClient

Wrap any existing LLMClient with reliability features.

Wrap any existing LLMClient with reliability features.

Use this when you already have a configured LLMClient instance.

Value parameters

client

The client to wrap

metrics

Optional metrics collector

providerName

Explicit provider name for metrics (e.g., "openai", "anthropic")

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

ReliableClient wrapping the provided client

def zai(config: ZaiConfig, reliabilityConfig: ReliabilityConfig, metrics: MetricsCollector): Result[LLMClient]

Create a reliable Zai client.

Create a reliable Zai client.

Value parameters

config

Zai configuration

metrics

Metrics collector (default: noop)

reliabilityConfig

Reliability configuration (default: ReliabilityConfig.default)

Attributes

Returns

Right(ReliableClient) wrapping ZaiClient, or Left(LLMError) on failure