Class: Legion::Extensions::Llm::Gemini::Provider
- Inherits:
-
LexLLM::Provider
- Object
- LexLLM::Provider
- Legion::Extensions::Llm::Gemini::Provider
- Defined in:
- lib/legion/extensions/llm/gemini/provider.rb
Overview
Gemini provider implementation for the LexLLM 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
16 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 16 def capabilities = Capabilities |
.configuration_options ⇒ Object
14 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 14 def = %i[gemini_api_key gemini_api_base] |
.configuration_requirements ⇒ Object
15 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 15 def configuration_requirements = %i[gemini_api_key] |
.slug ⇒ Object
13 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 13 def slug = 'gemini' |
Instance Method Details
#api_base ⇒ Object
65 66 67 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 65 def api_base config.gemini_api_base || 'https://generativelanguage.googleapis.com/v1beta' end |
#completion_url ⇒ Object
73 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 73 def completion_url = generate_content_url(model: @model) |
#embed_content_url(model:) ⇒ Object
86 87 88 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 86 def (model:) "#{model_path(model)}:embedContent" end |
#embedding_url(model:) ⇒ Object
76 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 76 def (model:) = (model:) |
#generate_content_url(model:) ⇒ Object
78 79 80 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 78 def generate_content_url(model:) "#{model_path(model)}:generateContent" end |
#headers ⇒ Object
69 70 71 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 69 def headers { 'x-goog-api-key' => config.gemini_api_key } end |
#models_url ⇒ Object
75 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 75 def models_url = 'models' |
#stream_generate_content_url(model:) ⇒ Object
82 83 84 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 82 def stream_generate_content_url(model:) "#{model_path(model)}:streamGenerateContent?alt=sse" end |
#stream_url ⇒ Object
74 |
# File 'lib/legion/extensions/llm/gemini/provider.rb', line 74 def stream_url = stream_generate_content_url(model: @model) |