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/routing/records.rb,
lib/legion/extensions/llm/canonical/params.rb,
lib/legion/extensions/llm/inventory/errors.rb,
lib/legion/extensions/llm/model/modalities.rb,
lib/legion/extensions/llm/routing/lane_key.rb,
lib/legion/extensions/llm/settings_cascade.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/inventory/records.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/inventory/evidence.rb,
lib/legion/extensions/llm/inventory/identity.rb,
lib/legion/extensions/llm/inventory/registry.rb,
lib/legion/extensions/llm/inventory/snapshot.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/inventory/publisher.rb,
lib/legion/extensions/llm/stop_reason_mapping.rb,
lib/legion/extensions/llm/fleet/publish_safety.rb,
lib/legion/extensions/llm/transport/fleet_lane.rb,
lib/legion/extensions/llm/actors/metering_flush.rb,
lib/legion/extensions/llm/canonical/tool_schema.rb,
lib/legion/extensions/llm/fleet/token_validator.rb,
lib/legion/extensions/llm/inventory/probe_token.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/inventory/weight_schema.rb,
lib/legion/extensions/llm/responses/chat_response.rb,
lib/legion/extensions/llm/fleet/provider_responder.rb,
lib/legion/extensions/llm/routing/provider_outcome.rb,
lib/legion/extensions/llm/canonical/tool_definition.rb,
lib/legion/extensions/llm/fleet/envelope_validation.rb,
lib/legion/extensions/llm/inventory/callable_handle.rb,
lib/legion/extensions/llm/inventory/immutable_value.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/inventory/probe_coordinator.rb,
lib/legion/extensions/llm/inventory/weight_reconciler.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: Actor, AutoRegistration, Canonical, Capabilities, CapabilityPolicy, CredentialSources, Errors, Fleet, Inventory, MimeType, Model, ProviderContract, ProviderSettings, Responses, Routing, SettingsCascade, StopReasonMapping, 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.7.6'
Class Method Summary
collapse
Class Method Details
.chat ⇒ Object
202
203
204
|
# File 'lib/legion/extensions/llm.rb', line 202
def chat(...)
Chat.new(...)
end
|
.config ⇒ Object
234
235
236
|
# File 'lib/legion/extensions/llm.rb', line 234
def config
@config ||= Configuration.new
end
|
230
231
232
|
# File 'lib/legion/extensions/llm.rb', line 230
def configure
yield config
end
|
.context {|context_config| ... } ⇒ Object
196
197
198
199
200
|
# File 'lib/legion/extensions/llm.rb', line 196
def context
context_config = config.dup
yield context_config if block_given?
Context.new(context_config)
end
|
.default_settings ⇒ Object
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
# File 'lib/legion/extensions/llm.rb', line 247
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
206
207
208
|
# File 'lib/legion/extensions/llm.rb', line 206
def embed(...)
Embedding.embed(...)
end
|
.logger ⇒ Object
238
239
240
241
242
243
244
|
# File 'lib/legion/extensions/llm.rb', line 238
def logger
@logger ||= config.logger || Logger.new(
config.log_file,
progname: 'Legion::Extensions::Llm',
level: config.log_level
)
end
|
.models ⇒ Object
222
223
224
|
# File 'lib/legion/extensions/llm.rb', line 222
def models
Models.instance
end
|
.moderate ⇒ Object
210
211
212
|
# File 'lib/legion/extensions/llm.rb', line 210
def moderate(...)
Moderation.moderate(...)
end
|
.paint ⇒ Object
214
215
216
|
# File 'lib/legion/extensions/llm.rb', line 214
def paint(...)
Image.paint(...)
end
|
.provider_settings ⇒ Object
287
288
289
|
# File 'lib/legion/extensions/llm.rb', line 287
def self.provider_settings(...)
ProviderSettings.build(...)
end
|
.remote_invocable? ⇒ Boolean
194
|
# File 'lib/legion/extensions/llm.rb', line 194
def remote_invocable? = false
|