Class: RubyLLM::MCP::Sample
- Inherits:
-
Object
- Object
- RubyLLM::MCP::Sample
- Defined in:
- lib/ruby_llm/mcp/sample.rb
Defined Under Namespace
Classes: Hint
Constant Summary collapse
- REJECTED_MESSAGE =
"Sampling request was rejected"
Instance Attribute Summary collapse
-
#max_tokens ⇒ Object
readonly
Returns the value of attribute max_tokens.
-
#model_preferences ⇒ Object
readonly
Returns the value of attribute model_preferences.
-
#raw_messages ⇒ Object
readonly
Returns the value of attribute raw_messages.
-
#system_prompt ⇒ Object
readonly
Returns the value of attribute system_prompt.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(result, coordinator) ⇒ Sample
constructor
A new instance of Sample.
- #message ⇒ Object
- #to_h ⇒ Object (also: #to_json)
Constructor Details
#initialize(result, coordinator) ⇒ Sample
Returns a new instance of Sample.
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/ruby_llm/mcp/sample.rb', line 38 def initialize(result, coordinator) params = result.params @id = result.id @coordinator = coordinator @raw_messages = params["messages"] || [] @model_preferences = Hint.new(params["model"], params["modelPreferences"]) @system_prompt = params["systemPrompt"] @max_tokens = params["maxTokens"] end |
Instance Attribute Details
#max_tokens ⇒ Object (readonly)
Returns the value of attribute max_tokens.
36 37 38 |
# File 'lib/ruby_llm/mcp/sample.rb', line 36 def max_tokens @max_tokens end |
#model_preferences ⇒ Object (readonly)
Returns the value of attribute model_preferences.
36 37 38 |
# File 'lib/ruby_llm/mcp/sample.rb', line 36 def model_preferences @model_preferences end |
#raw_messages ⇒ Object (readonly)
Returns the value of attribute raw_messages.
36 37 38 |
# File 'lib/ruby_llm/mcp/sample.rb', line 36 def @raw_messages end |
#system_prompt ⇒ Object (readonly)
Returns the value of attribute system_prompt.
36 37 38 |
# File 'lib/ruby_llm/mcp/sample.rb', line 36 def system_prompt @system_prompt end |
Instance Method Details
#execute ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/ruby_llm/mcp/sample.rb', line 49 def execute # Check if handler is a class or block handler = @coordinator.sampling_callback if Handlers.handler_class?(handler) execute_with_handler_class(handler) else execute_with_block end end |
#message ⇒ Object
60 61 62 |
# File 'lib/ruby_llm/mcp/sample.rb', line 60 def @message ||= .map { || .fetch("content")&.fetch("text") }.join("\n") end |
#to_h ⇒ Object Also known as: to_json
64 65 66 67 68 69 70 71 |
# File 'lib/ruby_llm/mcp/sample.rb', line 64 def to_h { id: @id, model_preferences: @model_preferences.to_h, system_prompt: @system_prompt, max_tokens: @max_tokens } end |