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/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/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/fleet/token_validator.rb,
lib/legion/extensions/llm/fleet/worker_execution.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/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, CredentialSources, Errors, Fleet, MimeType, Model, ProviderContract, ProviderSettings, Responses, Routing, Streaming, 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, 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.5.0'
Class Method Summary
collapse
Class Method Details
.chat ⇒ Object
172
173
174
|
# File 'lib/legion/extensions/llm.rb', line 172
def chat(...)
Chat.new(...)
end
|
.config ⇒ Object
204
205
206
|
# File 'lib/legion/extensions/llm.rb', line 204
def config
@config ||= Configuration.new
end
|
200
201
202
|
# File 'lib/legion/extensions/llm.rb', line 200
def configure
yield config
end
|
.context {|context_config| ... } ⇒ Object
166
167
168
169
170
|
# File 'lib/legion/extensions/llm.rb', line 166
def context
context_config = config.dup
yield context_config if block_given?
Context.new(context_config)
end
|
.default_settings ⇒ Object
217
218
219
220
221
222
223
224
225
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
|
# File 'lib/legion/extensions/llm.rb', line 217
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
176
177
178
|
# File 'lib/legion/extensions/llm.rb', line 176
def embed(...)
Embedding.embed(...)
end
|
.logger ⇒ Object
208
209
210
211
212
213
214
|
# File 'lib/legion/extensions/llm.rb', line 208
def logger
@logger ||= config.logger || Logger.new(
config.log_file,
progname: 'Legion::Extensions::Llm',
level: config.log_level
)
end
|
.models ⇒ Object
192
193
194
|
# File 'lib/legion/extensions/llm.rb', line 192
def models
Models.instance
end
|
.moderate ⇒ Object
180
181
182
|
# File 'lib/legion/extensions/llm.rb', line 180
def moderate(...)
Moderation.moderate(...)
end
|
.paint ⇒ Object
184
185
186
|
# File 'lib/legion/extensions/llm.rb', line 184
def paint(...)
Image.paint(...)
end
|
.provider_settings ⇒ Object
257
258
259
|
# File 'lib/legion/extensions/llm.rb', line 257
def self.provider_settings(...)
ProviderSettings.build(...)
end
|
.remote_invocable? ⇒ Boolean
164
|
# File 'lib/legion/extensions/llm.rb', line 164
def remote_invocable? = false
|