Module: LlmGateway
- Defined in:
- lib/llm_gateway.rb,
lib/llm_gateway/tool.rb,
lib/llm_gateway/utils.rb,
lib/llm_gateway/client.rb,
lib/llm_gateway/errors.rb,
lib/llm_gateway/prompt.rb,
lib/llm_gateway/version.rb,
lib/llm_gateway/base_client.rb,
lib/llm_gateway/clients/groq.rb,
lib/llm_gateway/clients/openai.rb,
lib/llm_gateway/adapters/adapter.rb,
lib/llm_gateway/clients/anthropic.rb,
lib/llm_gateway/provider_registry.rb,
lib/llm_gateway/adapters/option_mapper.rb,
lib/llm_gateway/adapters/groq/option_mapper.rb,
lib/llm_gateway/clients/claude_code/oauth_flow.rb,
lib/llm_gateway/adapters/anthropic/input_mapper.rb,
lib/llm_gateway/clients/openai_codex/oauth_flow.rb,
lib/llm_gateway/adapters/anthropic/output_mapper.rb,
lib/llm_gateway/adapters/anthropic/stream_mapper.rb,
lib/llm_gateway/adapters/anthropic_option_mapper.rb,
lib/llm_gateway/adapters/input_message_sanitizer.rb,
lib/llm_gateway/adapters/openai/responses_adapter.rb,
lib/llm_gateway/clients/claude_code/token_manager.rb,
lib/llm_gateway/adapters/openai/file_output_mapper.rb,
lib/llm_gateway/adapters/openai_codex/input_mapper.rb,
lib/llm_gateway/clients/openai_codex/token_manager.rb,
lib/llm_gateway/adapters/anthropic/messages_adapter.rb,
lib/llm_gateway/adapters/openai/acts_like_responses.rb,
lib/llm_gateway/adapters/openai_codex/option_mapper.rb,
lib/llm_gateway/adapters/anthropic/acts_like_messages.rb,
lib/llm_gateway/adapters/groq/chat_completions_adapter.rb,
lib/llm_gateway/adapters/openai/responses/input_mapper.rb,
lib/llm_gateway/adapters/openai/responses/option_mapper.rb,
lib/llm_gateway/adapters/openai/responses/output_mapper.rb,
lib/llm_gateway/adapters/openai/responses/stream_mapper.rb,
lib/llm_gateway/adapters/openai_codex/responses_adapter.rb,
lib/llm_gateway/adapters/openai/chat_completions_adapter.rb,
lib/llm_gateway/adapters/openai/acts_like_chat_completions.rb,
lib/llm_gateway/adapters/openai/prompt_cache_option_mapper.rb,
lib/llm_gateway/adapters/openai/chat_completions/input_mapper.rb,
lib/llm_gateway/adapters/openai/chat_completions/option_mapper.rb,
lib/llm_gateway/adapters/openai/chat_completions/output_mapper.rb,
lib/llm_gateway/adapters/openai/chat_completions/stream_mapper.rb,
lib/llm_gateway/adapters/anthropic/bidirectional_message_mapper.rb,
lib/llm_gateway/adapters/openai/responses/bidirectional_message_mapper.rb,
lib/llm_gateway/adapters/openai/chat_completions/input_message_sanitizer.rb,
lib/llm_gateway/adapters/openai/chat_completions/bidirectional_message_mapper.rb
Defined Under Namespace
Modules: Adapters, Clients, Errors, Utils
Classes: BaseClient, Client, Error, Prompt, ProviderRegistry, Tool
Constant Summary
collapse
- DIRECTION_IN =
Direction constants for message mappers
:in
- DIRECTION_OUT =
:out
- VERSION =
"0.4.0"
Class Method Summary
collapse
Class Method Details
.build_provider(config) ⇒ Object
106
107
108
109
110
111
112
113
|
# File 'lib/llm_gateway.rb', line 106
def self.build_provider(config)
config = config.transform_keys(&:to_sym)
provider_name = config.delete(:provider)
entry = ProviderRegistry.resolve(provider_name)
client = entry[:client].new(**config)
entry[:adapter].new(client)
end
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# File 'lib/llm_gateway.rb', line 115
def self.configure(configs)
@configured_clients ||= {}
configs.each do |entry|
name = entry[:name] || entry["name"]
config = entry[:config] || entry["config"]
raise ArgumentError, "Each config entry must have a :name" unless name
client = build_provider(config)
@configured_clients[name.to_sym] = client
define_singleton_method(name.to_sym) { @configured_clients[name.to_sym] }
end
end
|
131
132
133
|
# File 'lib/llm_gateway.rb', line 131
def self.configured_clients
@configured_clients ||= {}
end
|
.reset_configuration! ⇒ Object
135
136
137
138
139
140
|
# File 'lib/llm_gateway.rb', line 135
def self.reset_configuration!
@configured_clients&.each_key do |name|
singleton_class.remove_method(name) if respond_to?(name)
end
@configured_clients = {}
end
|