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/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/model/modalities.rb,
lib/legion/extensions/llm/routing/lane_key.rb,
lib/legion/extensions/llm/provider_settings.rb,
lib/legion/extensions/llm/model/pricing_tier.rb,
lib/legion/extensions/llm/stream_accumulator.rb,
lib/legion/extensions/llm/transport/fleet_lane.rb,
lib/legion/extensions/llm/model/pricing_category.rb,
lib/legion/extensions/llm/routing/model_offering.rb,
lib/legion/extensions/llm/routing/offering_registry.rb,
lib/legion/extensions/llm/provider/open_ai_compatible.rb
Overview
Legion-native namespace for the shared LLM provider framework.
Defined Under Namespace
Modules: MimeType, Model, ProviderSettings, Routing, Streaming, Transport, Types, Utils
Classes: Agent, Aliases, Attachment, BadRequestError, Chat, Chunk, Configuration, ConfigurationError, Connection, Content, Context, ContextLengthExceededError, Embedding, Error, ErrorMiddleware, ForbiddenError, Image, InvalidRoleError, InvalidToolChoiceError, Message, ModelNotFoundError, Models, Moderation, OverloadedError, Parameter, PaymentRequiredError, PromptNotFoundError, Provider, RateLimitError, ServerError, ServiceUnavailableError, StreamAccumulator, Thinking, Tokens, Tool, ToolCall, Transcription, UnauthorizedError, UnsupportedAttachmentError
Constant Summary
collapse
- Schema =
::RubyLLM::Schema
- VERSION =
'0.1.5'
Class Method Summary
collapse
Class Method Details
.chat ⇒ Object
58
59
60
|
# File 'lib/legion/extensions/llm.rb', line 58
def chat(...)
Chat.new(...)
end
|
.config ⇒ Object
90
91
92
|
# File 'lib/legion/extensions/llm.rb', line 90
def config
@config ||= Configuration.new
end
|
86
87
88
|
# File 'lib/legion/extensions/llm.rb', line 86
def configure
yield config
end
|
.context {|context_config| ... } ⇒ Object
52
53
54
55
56
|
# File 'lib/legion/extensions/llm.rb', line 52
def context
context_config = config.dup
yield context_config if block_given?
Context.new(context_config)
end
|
.default_settings ⇒ Object
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# File 'lib/legion/extensions/llm.rb', line 103
def self.default_settings
{
fleet: {
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: 300_000,
endpoint: {
enabled: false,
empty_lane_backoff_ms: 250,
idle_backoff_ms: 1_000,
max_consecutive_pulls_per_lane: 0,
accept_when: []
}
}
}
end
|
.embed ⇒ Object
62
63
64
|
# File 'lib/legion/extensions/llm.rb', line 62
def embed(...)
Embedding.embed(...)
end
|
.logger ⇒ Object
94
95
96
97
98
99
100
|
# File 'lib/legion/extensions/llm.rb', line 94
def logger
@logger ||= config.logger || Logger.new(
config.log_file,
progname: 'Legion::Extensions::Llm',
level: config.log_level
)
end
|
.models ⇒ Object
78
79
80
|
# File 'lib/legion/extensions/llm.rb', line 78
def models
Models.instance
end
|
.moderate ⇒ Object
66
67
68
|
# File 'lib/legion/extensions/llm.rb', line 66
def moderate(...)
Moderation.moderate(...)
end
|
.paint ⇒ Object
70
71
72
|
# File 'lib/legion/extensions/llm.rb', line 70
def paint(...)
Image.paint(...)
end
|
.provider_settings ⇒ Object
125
126
127
|
# File 'lib/legion/extensions/llm.rb', line 125
def self.provider_settings(...)
ProviderSettings.build(...)
end
|
.providers ⇒ Object
82
83
84
|
# File 'lib/legion/extensions/llm.rb', line 82
def providers
Provider.providers.values
end
|