Class: DSPy::LM::Strategies::GeminiStructuredOutputStrategy
- Inherits:
-
BaseStrategy
- Object
- BaseStrategy
- DSPy::LM::Strategies::GeminiStructuredOutputStrategy
show all
- Extended by:
- T::Sig
- Defined in:
- lib/dspy/lm/strategies/gemini_structured_output_strategy.rb
Overview
Strategy for using Gemini’s native structured output feature
Instance Method Summary
collapse
#initialize
Instance Method Details
45
46
47
48
49
|
# File 'lib/dspy/lm/strategies/gemini_structured_output_strategy.rb', line 45
def (response)
response.content
end
|
#handle_error(error) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/dspy/lm/strategies/gemini_structured_output_strategy.rb', line 52
def handle_error(error)
error_msg = error.message.to_s.downcase
if error_msg.include?("schema") || error_msg.include?("generation_config") || error_msg.include?("response_schema")
DSPy.logger.warn("Gemini structured output failed: #{error.message}")
true
else
false
end
end
|
#name ⇒ Object
28
29
30
|
# File 'lib/dspy/lm/strategies/gemini_structured_output_strategy.rb', line 28
def name
"gemini_structured_output"
end
|
#prepare_request(messages, request_params) ⇒ Object
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/dspy/lm/strategies/gemini_structured_output_strategy.rb', line 33
def prepare_request(messages, request_params)
schema = DSPy::LM::Adapters::Gemini::SchemaConverter.to_gemini_format(signature_class)
request_params[:generation_config] = {
response_mime_type: "application/json",
response_schema: schema
}
end
|
#priority ⇒ Object
23
24
25
|
# File 'lib/dspy/lm/strategies/gemini_structured_output_strategy.rb', line 23
def priority
100 end
|