Module: Legion::Extensions::Llm
- Defined in:
- lib/legion/extensions/llm.rb,
lib/legion/extensions/llm/chat.rb,
lib/legion/extensions/llm/tool.rb,
lib/legion/extensions/llm/agent.rb,
lib/legion/extensions/llm/chunk.rb,
lib/legion/extensions/llm/error.rb,
lib/legion/extensions/llm/image.rb,
lib/legion/extensions/llm/model.rb,
lib/legion/extensions/llm/utils.rb,
lib/legion/extensions/llm/models.rb,
lib/legion/extensions/llm/tokens.rb,
lib/legion/extensions/llm/aliases.rb,
lib/legion/extensions/llm/content.rb,
lib/legion/extensions/llm/context.rb,
lib/legion/extensions/llm/message.rb,
lib/legion/extensions/llm/routing.rb,
lib/legion/extensions/llm/version.rb,
lib/legion/extensions/llm/provider.rb,
lib/legion/extensions/llm/thinking.rb,
lib/legion/extensions/llm/canonical.rb,
lib/legion/extensions/llm/embedding.rb,
lib/legion/extensions/llm/mime_type.rb,
lib/legion/extensions/llm/streaming.rb,
lib/legion/extensions/llm/tool_call.rb,
lib/legion/extensions/llm/attachment.rb,
lib/legion/extensions/llm/connection.rb,
lib/legion/extensions/llm/model/info.rb,
lib/legion/extensions/llm/moderation.rb,
lib/legion/extensions/llm/taxonomies.rb,
lib/legion/extensions/llm/capabilities.rb,
lib/legion/extensions/llm/configuration.rb,
lib/legion/extensions/llm/model/pricing.rb,
lib/legion/extensions/llm/transcription.rb,
lib/legion/extensions/llm/fleet/protocol.rb,
lib/legion/extensions/llm/fleet/settings.rb,
lib/legion/extensions/llm/canonical/chunk.rb,
lib/legion/extensions/llm/canonical/usage.rb,
lib/legion/extensions/llm/canonical/params.rb,
lib/legion/extensions/llm/model/modalities.rb,
lib/legion/extensions/llm/routing/lane_key.rb,
lib/legion/extensions/llm/auto_registration.rb,
lib/legion/extensions/llm/canonical/message.rb,
lib/legion/extensions/llm/canonical/request.rb,
lib/legion/extensions/llm/capability_policy.rb,
lib/legion/extensions/llm/fleet/token_error.rb,
lib/legion/extensions/llm/provider_contract.rb,
lib/legion/extensions/llm/provider_settings.rb,
lib/legion/extensions/llm/canonical/response.rb,
lib/legion/extensions/llm/canonical/thinking.rb,
lib/legion/extensions/llm/credential_sources.rb,
lib/legion/extensions/llm/model/pricing_tier.rb,
lib/legion/extensions/llm/registry_publisher.rb,
lib/legion/extensions/llm/stream_accumulator.rb,
lib/legion/extensions/llm/canonical/tool_call.rb,
lib/legion/extensions/llm/fleet/publish_safety.rb,
lib/legion/extensions/llm/transport/fleet_lane.rb,
lib/legion/extensions/llm/canonical/tool_schema.rb,
lib/legion/extensions/llm/fleet/token_validator.rb,
lib/legion/extensions/llm/fleet/worker_execution.rb,
lib/legion/extensions/llm/inventory/capabilities.rb,
lib/legion/extensions/llm/model/pricing_category.rb,
lib/legion/extensions/llm/registry_event_builder.rb,
lib/legion/extensions/llm/responses/stream_chunk.rb,
lib/legion/extensions/llm/routing/model_offering.rb,
lib/legion/extensions/llm/routing/registry_event.rb,
lib/legion/extensions/llm/canonical/content_block.rb,
lib/legion/extensions/llm/responses/chat_response.rb,
lib/legion/extensions/llm/fleet/provider_responder.rb,
lib/legion/extensions/llm/canonical/tool_definition.rb,
lib/legion/extensions/llm/fleet/envelope_validation.rb,
lib/legion/extensions/llm/routing/offering_registry.rb,
lib/legion/extensions/llm/transport/exchanges/fleet.rb,
lib/legion/extensions/llm/inventory/scoped_refresher.rb,
lib/legion/extensions/llm/provider/open_ai_compatible.rb,
lib/legion/extensions/llm/fleet/default_exchange_reply.rb,
lib/legion/extensions/llm/responses/embedding_response.rb,
lib/legion/extensions/llm/responses/thinking_extractor.rb,
lib/legion/extensions/llm/errors/unsupported_capability.rb,
lib/legion/extensions/llm/transport/messages/fleet_error.rb,
lib/legion/extensions/llm/transport/exchanges/llm_registry.rb,
lib/legion/extensions/llm/transport/messages/fleet_request.rb,
lib/legion/extensions/llm/transport/messages/fleet_response.rb,
lib/legion/extensions/llm/transport/messages/registry_event.rb
Overview
Legion-native namespace for the shared LLM provider framework.
Defined Under Namespace
Modules: AutoRegistration, Canonical, Capabilities, CapabilityPolicy, CredentialSources, Errors, Fleet, Inventory, MimeType, Model, ProviderContract, ProviderSettings, Responses, Routing, Streaming, Taxonomies, Transport, Types, Utils
Classes: Agent, Aliases, Attachment, BadRequestError, Chat, Chunk, Configuration, ConfigurationError, Connection, Content, Context, ContextLengthExceededError, Embedding, Error, ErrorMiddleware, ForbiddenError, HashConfig, Image, InvalidRoleError, InvalidToolChoiceError, Message, ModelNotAllowedError, ModelNotFoundError, Models, Moderation, OverloadedError, Parameter, PaymentRequiredError, PromptNotFoundError, Provider, RateLimitError, RegistryEventBuilder, RegistryPublisher, ServerError, ServiceUnavailableError, StreamAccumulator, Thinking, Tokens, Tool, ToolCall, Transcription, UnauthorizedError, UnsupportedAttachmentError, UnsupportedCapabilityError
Constant Summary
collapse
- Schema =
::RubyLLM::Schema
- VERSION =
'0.6.2'
Class Method Summary
collapse
Class Method Details
.chat ⇒ Object
181
182
183
|
# File 'lib/legion/extensions/llm.rb', line 181
def chat(...)
Chat.new(...)
end
|
.config ⇒ Object
213
214
215
|
# File 'lib/legion/extensions/llm.rb', line 213
def config
@config ||= Configuration.new
end
|
209
210
211
|
# File 'lib/legion/extensions/llm.rb', line 209
def configure
yield config
end
|
.context {|context_config| ... } ⇒ Object
175
176
177
178
179
|
# File 'lib/legion/extensions/llm.rb', line 175
def context
context_config = config.dup
yield context_config if block_given?
Context.new(context_config)
end
|
.default_settings ⇒ Object
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
# File 'lib/legion/extensions/llm.rb', line 226
def self.default_settings
{
fleet: {
consumer: {
enabled: false,
scheduler: :basic_get,
consumer_priority: 0,
queue_expires_ms: 60_000,
message_ttl_ms: 120_000,
queue_max_length: 100,
delivery_limit: 3,
consumer_ack_timeout_ms: 90_000,
empty_lane_backoff_ms: 250,
idle_backoff_ms: 1_000,
max_consecutive_pulls_per_lane: 0
},
auth: {
require_signed_token: true,
issuer: 'legion-llm',
audience: 'lex-llm-fleet-worker',
algorithm: 'HS256',
accepted_issuers: ['legion-llm'],
max_clock_skew_seconds: 30,
replay_ttl_seconds: 600
},
responder: {
require_auth: nil,
require_policy: false,
require_idempotency: true,
idempotency_ttl_seconds: 600
},
request: {
logger: {
request_payload: false
}
}
}
}
end
|
.embed ⇒ Object
185
186
187
|
# File 'lib/legion/extensions/llm.rb', line 185
def embed(...)
Embedding.embed(...)
end
|
.logger ⇒ Object
217
218
219
220
221
222
223
|
# File 'lib/legion/extensions/llm.rb', line 217
def logger
@logger ||= config.logger || Logger.new(
config.log_file,
progname: 'Legion::Extensions::Llm',
level: config.log_level
)
end
|
.models ⇒ Object
201
202
203
|
# File 'lib/legion/extensions/llm.rb', line 201
def models
Models.instance
end
|
.moderate ⇒ Object
189
190
191
|
# File 'lib/legion/extensions/llm.rb', line 189
def moderate(...)
Moderation.moderate(...)
end
|
.paint ⇒ Object
193
194
195
|
# File 'lib/legion/extensions/llm.rb', line 193
def paint(...)
Image.paint(...)
end
|
.provider_settings ⇒ Object
266
267
268
|
# File 'lib/legion/extensions/llm.rb', line 266
def self.provider_settings(...)
ProviderSettings.build(...)
end
|
.remote_invocable? ⇒ Boolean
173
|
# File 'lib/legion/extensions/llm.rb', line 173
def remote_invocable? = false
|