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/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/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: Actor, AutoRegistration, Canonical, Capabilities, CapabilityPolicy, CredentialSources, Errors, Fleet, Inventory, MimeType, Model, ProviderContract, ProviderSettings, Responses, Routing, 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.6.9'
Class Method Summary
collapse
Class Method Details
.chat ⇒ Object
182
183
184
|
# File 'lib/legion/extensions/llm.rb', line 182
def chat(...)
Chat.new(...)
end
|
.config ⇒ Object
214
215
216
|
# File 'lib/legion/extensions/llm.rb', line 214
def config
@config ||= Configuration.new
end
|
210
211
212
|
# File 'lib/legion/extensions/llm.rb', line 210
def configure
yield config
end
|
.context {|context_config| ... } ⇒ Object
176
177
178
179
180
|
# File 'lib/legion/extensions/llm.rb', line 176
def context
context_config = config.dup
yield context_config if block_given?
Context.new(context_config)
end
|
.default_settings ⇒ Object
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
265
|
# File 'lib/legion/extensions/llm.rb', line 227
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
186
187
188
|
# File 'lib/legion/extensions/llm.rb', line 186
def embed(...)
Embedding.embed(...)
end
|
.logger ⇒ Object
218
219
220
221
222
223
224
|
# File 'lib/legion/extensions/llm.rb', line 218
def logger
@logger ||= config.logger || Logger.new(
config.log_file,
progname: 'Legion::Extensions::Llm',
level: config.log_level
)
end
|
.models ⇒ Object
202
203
204
|
# File 'lib/legion/extensions/llm.rb', line 202
def models
Models.instance
end
|
.moderate ⇒ Object
190
191
192
|
# File 'lib/legion/extensions/llm.rb', line 190
def moderate(...)
Moderation.moderate(...)
end
|
.paint ⇒ Object
194
195
196
|
# File 'lib/legion/extensions/llm.rb', line 194
def paint(...)
Image.paint(...)
end
|
.provider_settings ⇒ Object
267
268
269
|
# File 'lib/legion/extensions/llm.rb', line 267
def self.provider_settings(...)
ProviderSettings.build(...)
end
|
.remote_invocable? ⇒ Boolean
174
|
# File 'lib/legion/extensions/llm.rb', line 174
def remote_invocable? = false
|