Class: Legion::Extensions::Llm::Openai::Provider
- Inherits:
-
LexLLM::Provider
- Object
- LexLLM::Provider
- Legion::Extensions::Llm::Openai::Provider
- Includes:
- LexLLM::Provider::OpenAICompatible
- Defined in:
- lib/legion/extensions/llm/openai/provider.rb
Overview
OpenAI 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
- #chat_url ⇒ Object
- #headers ⇒ Object
- #image_edit_url ⇒ Object
- #image_generation_url ⇒ Object
- #image_variation_url ⇒ Object
- #images_url(with: nil, mask: nil) ⇒ Object
- #retrieve_model(model) ⇒ Object
Class Method Details
.capabilities ⇒ Object
28 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 28 def capabilities = Capabilities |
.configuration_options ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 18 def %i[ openai_api_key openai_api_base openai_organization_id openai_project_id openai_use_system_role ] end |
.configuration_requirements ⇒ Object
16 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 16 def configuration_requirements = %i[openai_api_key] |
.slug ⇒ Object
15 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 15 def slug = 'openai' |
Instance Method Details
#api_base ⇒ Object
69 70 71 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 69 def api_base config.openai_api_base || 'https://api.openai.com' end |
#chat_url ⇒ Object
81 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 81 def chat_url = completion_url |
#headers ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 73 def headers { 'Authorization' => "Bearer #{config.openai_api_key}", 'OpenAI-Organization' => config.openai_organization_id, 'OpenAI-Project' => config.openai_project_id }.compact end |
#image_edit_url ⇒ Object
83 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 83 def image_edit_url = '/v1/images/edits' |
#image_generation_url ⇒ Object
82 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 82 def image_generation_url = '/v1/images/generations' |
#image_variation_url ⇒ Object
84 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 84 def image_variation_url = '/v1/images/variations' |
#images_url(with: nil, mask: nil) ⇒ Object
85 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 85 def images_url(with: nil, mask: nil) = super |
#retrieve_model(model) ⇒ Object
87 88 89 |
# File 'lib/legion/extensions/llm/openai/provider.rb', line 87 def retrieve_model(model) connection.get("#{models_url}/#{model}").body end |