Module: Omakase
- Defined in:
- lib/omakase.rb,
lib/omakase/doc.rb,
lib/omakase/mcp.rb,
lib/omakase/type.rb,
lib/omakase/agent.rb,
lib/omakase/memory.rb,
lib/omakase/schema.rb,
lib/omakase/skills.rb,
lib/omakase/request.rb,
lib/omakase/version.rb,
lib/omakase/executor.rb,
lib/omakase/fake_chat.rb,
lib/omakase/generation.rb,
lib/omakase/strategies.rb,
lib/omakase/tools/ruby.rb,
lib/omakase/capabilities.rb,
lib/omakase/strategies/predict.rb,
lib/omakase/strategies/code_act.rb
Defined Under Namespace
Modules: Capabilities, Doc, Executor, MCP, Skills, Strategies, Tools Classes: Agent, FakeChat, Generation, Memory, Request, Schema, Type
Constant Summary collapse
- Error =
Class.new(StandardError)
- ContractError =
The answer did not match the declared return type.
Class.new(Error)
- ProviderError =
The model or its provider failed. RubyLLM has already retried what it retries.
Class.new(Error)
- VERSION =
"0.2.0"
Class Attribute Summary collapse
-
.listener ⇒ Object
Returns the value of attribute listener.
Class Method Summary collapse
-
.configure ⇒ Object
Providers, keys, default model, timeouts, logging — all of it is RubyLLM's.
-
.configure_from_env(env = ENV) ⇒ Object
Reads every provider credential RubyLLM knows from the environment: ANTHROPIC_API_KEY, OPENROUTER_API_KEY, OLLAMA_API_BASE, VERTEXAI_PROJECT_ID, ….
- .embedder ⇒ Object
-
.embedder=(embedder) ⇒ Object
How text becomes a vector, for Memory.
- .emit(event, **payload) ⇒ Object
- .executor ⇒ Object
-
.executor=(executor) ⇒ Object
Where generated code runs.
- .provider_options ⇒ Object
Class Attribute Details
.listener ⇒ Object
Returns the value of attribute listener.
70 71 72 |
# File 'lib/omakase.rb', line 70 def listener @listener end |
Class Method Details
.configure ⇒ Object
Providers, keys, default model, timeouts, logging — all of it is RubyLLM's.
27 |
# File 'lib/omakase.rb', line 27 def configure(&) = RubyLLM.configure(&) |
.configure_from_env(env = ENV) ⇒ Object
Reads every provider credential RubyLLM knows from the environment: ANTHROPIC_API_KEY, OPENROUTER_API_KEY, OLLAMA_API_BASE, VERTEXAI_PROJECT_ID, …
31 32 33 34 35 36 37 38 |
# File 'lib/omakase.rb', line 31 def configure_from_env(env = ENV) configure do |config| .each do |option| value = env[option.to_s.upcase] config.public_send(:"#{option}=", value) if value end end end |
.embedder ⇒ Object
61 |
# File 'lib/omakase.rb', line 61 def = @embedder ||= ->(text) { RubyLLM.(text).vectors } |
.embedder=(embedder) ⇒ Object
How text becomes a vector, for Memory. Anything answering call(text)
will do; the model and its provider are RubyLLM's to configure.
57 58 59 |
# File 'lib/omakase.rb', line 57 def () @embedder = callable!(, "embedder") end |
.emit(event, **payload) ⇒ Object
72 |
# File 'lib/omakase.rb', line 72 def emit(event, **payload) = @listener&.call(event, **payload) |
.executor ⇒ Object
53 |
# File 'lib/omakase.rb', line 53 def executor = @executor ||= Executor |
.executor=(executor) ⇒ Object
Where generated code runs. Anything answering call(agent, code, timeout:)
will do — swap in a subprocess or a container to get real isolation.
49 50 51 |
# File 'lib/omakase.rb', line 49 def executor=(executor) @executor = callable!(executor, "executor") end |
.provider_options ⇒ Object
40 41 42 43 44 45 |
# File 'lib/omakase.rb', line 40 def slugs = RubyLLM::Provider.providers.keys RubyLLM::Configuration..select do |option| slugs.any? { |slug| option.to_s.start_with?("#{slug}_") } end end |