Class: ActiveModel::Validations::AI::MockGPT
- Inherits:
-
Object
- Object
- ActiveModel::Validations::AI::MockGPT
- Defined in:
- lib/active_model/validations/ai.rb
Instance Attribute Summary collapse
-
#request_timeout ⇒ Object
readonly
Returns the value of attribute request_timeout.
Class Method Summary collapse
Instance Method Summary collapse
- #chat(parameters:) ⇒ Object
-
#initialize(request_timeout:, **response) ⇒ MockGPT
constructor
A new instance of MockGPT.
Constructor Details
#initialize(request_timeout:, **response) ⇒ MockGPT
Returns a new instance of MockGPT.
39 40 41 |
# File 'lib/active_model/validations/ai.rb', line 39 def initialize(request_timeout:, **response) @request_timeout, @response = request_timeout, response end |
Instance Attribute Details
#request_timeout ⇒ Object (readonly)
Returns the value of attribute request_timeout.
42 43 44 |
# File 'lib/active_model/validations/ai.rb', line 42 def request_timeout @request_timeout end |
Class Method Details
.set(**response) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/active_model/validations/ai.rb', line 32 def self.set(**response) old_response, @response = @response, response yield ensure @response = old_response end |
Instance Method Details
#chat(parameters:) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/active_model/validations/ai.rb', line 44 def chat(parameters:) raise Faraday::Error if request_timeout&.zero? # parameters => { model:, messages: [{content:}] } # TODO: Replace with this pattern matching on Ruby 3.0+. parameters.dig(:model) or raise ArgumentError parameters.dig(:messages, 0, :content) or raise ArgumentError { "choices" => [{ "message" => { "content" => response.to_json } }] } end |