Class: Legion::Extensions::Llm::Gemini::Provider
- Inherits:
-
Provider
- Object
- Provider
- Legion::Extensions::Llm::Gemini::Provider
- Defined in:
- lib/legion/extensions/llm/gemini/provider.rb
Overview
Gemini provider implementation for the Legion::Extensions::Llm base provider contract.
Defined Under Namespace
Modules: Capabilities
Class Method Summary collapse
- .capabilities ⇒ Object
- .configuration_options ⇒ Object
- .configuration_requirements ⇒ Object
- .slug ⇒ Object
Instance Method Summary collapse
- #api_base ⇒ Object
- #completion_url ⇒ Object
- #embed_content_url(model:) ⇒ Object
- #embedding_url(model:) ⇒ Object
- #generate_content_url(model:) ⇒ Object
- #headers ⇒ Object
- #models_url ⇒ Object
- #stream_generate_content_url(model:) ⇒ Object
- #stream_url ⇒ Object
Class Method Details
.capabilities ⇒ Object
15 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 15 def capabilities = Capabilities |
.configuration_options ⇒ Object
13 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 13 def = %i[gemini_api_key gemini_api_base] |
.configuration_requirements ⇒ Object
14 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 14 def configuration_requirements = %i[gemini_api_key] |
.slug ⇒ Object
12 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 12 def slug = 'gemini' |
Instance Method Details
#api_base ⇒ Object
64 65 66 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 64 def api_base config.gemini_api_base || 'https://generativelanguage.googleapis.com/v1beta' end |
#completion_url ⇒ Object
72 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 72 def completion_url = generate_content_url(model: @model) |
#embed_content_url(model:) ⇒ Object
85 86 87 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 85 def (model:) "#{model_path(model)}:embedContent" end |
#embedding_url(model:) ⇒ Object
75 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 75 def (model:) = (model:) |
#generate_content_url(model:) ⇒ Object
77 78 79 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 77 def generate_content_url(model:) "#{model_path(model)}:generateContent" end |
#headers ⇒ Object
68 69 70 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 68 def headers { 'x-goog-api-key' => config.gemini_api_key } end |
#models_url ⇒ Object
74 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 74 def models_url = 'models' |
#stream_generate_content_url(model:) ⇒ Object
81 82 83 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 81 def stream_generate_content_url(model:) "#{model_path(model)}:streamGenerateContent?alt=sse" end |
#stream_url ⇒ Object
73 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 73 def stream_url = stream_generate_content_url(model: @model) |