Class: LlmScraper::LlmClients::OpenaiCompatible
- Defined in:
- lib/llm_scraper/llm_clients/openai_compatible.rb
Constant Summary
Constants inherited from Base
Instance Method Summary collapse
-
#complete(prompt) ⇒ Hash
{ content:, tokens:, cost_usd: }.
-
#initialize(config = LlmScraper.configuration) ⇒ OpenaiCompatible
constructor
A new instance of OpenaiCompatible.
Constructor Details
#initialize(config = LlmScraper.configuration) ⇒ OpenaiCompatible
Returns a new instance of OpenaiCompatible.
6 7 8 9 |
# File 'lib/llm_scraper/llm_clients/openai_compatible.rb', line 6 def initialize(config = LlmScraper.configuration) @config = config @conn = build_connection(base_url: config.llm_base_url, timeout: config.llm_timeout) end |
Instance Method Details
#complete(prompt) ⇒ Hash
Returns { content:, tokens:, cost_usd: }.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/llm_scraper/llm_clients/openai_compatible.rb', line 13 def complete(prompt) response = @conn.post("chat/completions") do |req| req.headers["Authorization"] = "Bearer #{@config.llm_api_key}" req.headers["Content-Type"] = "application/json" req.body = JSON.generate( model: @config.llm_model, messages: [{ role: "user", content: prompt }], temperature: 0, response_format: { type: "json_object" } ) end handle_response(response) rescue Faraday::Error => e raise LlmScraper::LlmError, "LLM request failed: #{e.}" end |