Class: Rasti::AI::Gemini::Provider
Constant Summary
collapse
- THINKING_LEVELS =
{
'low' => {thinking_budget: 1_024}.freeze,
'medium' => {thinking_budget: 8_192}.freeze,
'high' => {thinking_budget: 24_576}.freeze
}.freeze
Constants inherited
from Provider
Provider::ALIASES, Provider::MODULES
Instance Attribute Summary
Attributes inherited from Provider
#model
Instance Method Summary
collapse
Methods inherited from Provider
build, #build_client, #create_assistant, #generate_text, #initialize, names
Instance Method Details
#base_url ⇒ Object
24
25
26
|
# File 'lib/rasti/ai/gemini/provider.rb', line 24
def base_url
'https://generativelanguage.googleapis.com/v1beta'
end
|
#default_api_key ⇒ Object
20
21
22
|
# File 'lib/rasti/ai/gemini/provider.rb', line 20
def default_api_key
Rasti::AI.gemini_api_key
end
|
#default_model ⇒ Object
16
17
18
|
# File 'lib/rasti/ai/gemini/provider.rb', line 16
def default_model
Rasti::AI.gemini_default_model
end
|
#name ⇒ Object
12
13
14
|
# File 'lib/rasti/ai/gemini/provider.rb', line 12
def name
:gemini
end
|
#parse_usage(response) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/rasti/ai/gemini/provider.rb', line 28
def parse_usage(response)
usage = response['usageMetadata']
return nil unless usage
Usage.new(
provider: name.to_s,
model: response['modelVersion'],
input_tokens: usage['promptTokenCount'],
output_tokens: usage['candidatesTokenCount'],
cached_tokens: usage['cachedContentTokenCount'] || 0,
reasoning_tokens: usage['thoughtsTokenCount'] || 0,
raw: usage
)
end
|