Class: LlmConductor::PromptManager
- Inherits:
-
Object
- Object
- LlmConductor::PromptManager
- Defined in:
- lib/llm_conductor/prompt_manager.rb
Overview
Manages registration and creation of prompt classes
Defined Under Namespace
Classes: InvalidPromptClassError, PromptNotFoundError
Class Attribute Summary collapse
-
.registry ⇒ Object
readonly
Returns the value of attribute registry.
Class Method Summary collapse
-
.clear! ⇒ Object
Clear all registrations (useful for testing).
-
.create(type, data = {}) ⇒ Object
Create a prompt instance.
-
.get(type) ⇒ Object
Get a registered prompt class.
-
.register(type, prompt_class) ⇒ Object
Register a prompt class with a given type.
-
.registered?(type) ⇒ Boolean
Check if a prompt type is registered.
-
.render(type, data = {}) ⇒ Object
Create and render a prompt in one step.
-
.types ⇒ Object
List all registered prompt types.
-
.unregister(type) ⇒ Object
Unregister a prompt type (useful for testing).
Class Attribute Details
.registry ⇒ Object (readonly)
Returns the value of attribute registry.
12 13 14 |
# File 'lib/llm_conductor/prompt_manager.rb', line 12 def registry @registry end |
Class Method Details
.clear! ⇒ Object
Clear all registrations (useful for testing)
42 43 44 |
# File 'lib/llm_conductor/prompt_manager.rb', line 42 def clear! @registry.clear end |
.create(type, data = {}) ⇒ Object
Create a prompt instance
47 48 49 50 |
# File 'lib/llm_conductor/prompt_manager.rb', line 47 def create(type, data = {}) prompt_class = get(type) prompt_class.new(data) end |
.get(type) ⇒ Object
Get a registered prompt class
27 28 29 |
# File 'lib/llm_conductor/prompt_manager.rb', line 27 def get(type) @registry[type.to_sym] || raise(PromptNotFoundError, "Prompt type :#{type} not found") end |
.register(type, prompt_class) ⇒ Object
Register a prompt class with a given type
15 16 17 18 19 |
# File 'lib/llm_conductor/prompt_manager.rb', line 15 def register(type, prompt_class) validate_prompt_class!(prompt_class) @registry[type.to_sym] = prompt_class end |
.registered?(type) ⇒ Boolean
Check if a prompt type is registered
32 33 34 |
# File 'lib/llm_conductor/prompt_manager.rb', line 32 def registered?(type) @registry.key?(type.to_sym) end |
.render(type, data = {}) ⇒ Object
Create and render a prompt in one step
53 54 55 |
# File 'lib/llm_conductor/prompt_manager.rb', line 53 def render(type, data = {}) create(type, data).render end |
.types ⇒ Object
List all registered prompt types
37 38 39 |
# File 'lib/llm_conductor/prompt_manager.rb', line 37 def types @registry.keys end |
.unregister(type) ⇒ Object
Unregister a prompt type (useful for testing)
22 23 24 |
# File 'lib/llm_conductor/prompt_manager.rb', line 22 def unregister(type) @registry.delete(type.to_sym) end |