Class: Docit::Ai::GroqClient

Inherits:
Object
  • Object
show all
Defined in:
lib/docit/ai/groq_client.rb

Constant Summary collapse

API_URL =
"https://api.groq.com/openai/v1/chat/completions"

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, model:) ⇒ GroqClient

Returns a new instance of GroqClient.



12
13
14
15
# File 'lib/docit/ai/groq_client.rb', line 12

def initialize(api_key:, model:)
  @api_key = api_key
  @model = model
end

Instance Method Details

#generate(prompt) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/docit/ai/groq_client.rb', line 17

def generate(prompt)
  uri = URI(API_URL)
  request = Net::HTTP::Post.new(uri)
  request["Authorization"] = "Bearer #{@api_key}"
  request["Content-Type"] = "application/json"
  request.body = {
    model: @model,
    messages: [{ role: "user", content: prompt }],
    temperature: 0.2
  }.to_json

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true, open_timeout: 15, read_timeout: 60) do |http|
    http.request(request)
  end

  handle_response(response)
end