Class: GroqRuby::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/groq_ruby/client.rb

Overview

User-facing entry point. Holds the immutable Configuration and a single Transport instance, and lazily constructs each resource on demand. Mirrors the layout of the python SDK’s ‘Groq` class:

client.chat.completions.create(...)
client.embeddings.create(...)
client.audio.transcriptions.create(...)
client.models.list
client.files.create(...)
client.batches.create(...)

Examples:

Build from environment

client = GroqRuby::Client.new

Explicit configuration

client = GroqRuby::Client.new(api_key: "gsk_…", base_url: "https://api.groq.com")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, base_url: nil, open_timeout: nil, read_timeout: nil, user_agent: nil) ⇒ Client

Returns a new instance of Client.

Parameters:

  • api_key (String, nil) (defaults to: nil)

    explicit key (falls back to ‘GROQ_API_KEY`)

  • base_url (String, nil) (defaults to: nil)

    explicit base URL (falls back to ‘GROQ_BASE_URL`)

  • open_timeout (Numeric, nil) (defaults to: nil)

    connect-phase timeout in seconds

  • read_timeout (Numeric, nil) (defaults to: nil)

    socket-read timeout in seconds

  • user_agent (String, nil) (defaults to: nil)

    override the default User-Agent header

Raises:



28
29
30
31
32
33
34
35
36
37
# File 'lib/groq_ruby/client.rb', line 28

def initialize(api_key: nil, base_url: nil, open_timeout: nil, read_timeout: nil, user_agent: nil)
  @configuration = Configuration.from_env(
    api_key: api_key,
    base_url: base_url,
    open_timeout: open_timeout,
    read_timeout: read_timeout,
    user_agent: user_agent
  )
  @transport = Transport.new(@configuration)
end

Instance Attribute Details

#configurationConfiguration (readonly)

Returns the immutable configuration this client was built with.

Returns:

  • (Configuration)

    the immutable configuration this client was built with



20
21
22
# File 'lib/groq_ruby/client.rb', line 20

def configuration
  @configuration
end

Instance Method Details

#audioResources::Audio

Returns entry point for ‘.speech`, `.transcriptions`, `.translations`.

Returns:

  • (Resources::Audio)

    entry point for ‘.speech`, `.transcriptions`, `.translations`



50
51
52
# File 'lib/groq_ruby/client.rb', line 50

def audio
  @audio ||= Resources::Audio.new(@transport)
end

#batchesResources::Batches

Returns entry point for ‘.create`, `.retrieve`, `.list`, `.cancel`.

Returns:



65
66
67
# File 'lib/groq_ruby/client.rb', line 65

def batches
  @batches ||= Resources::Batches.new(@transport)
end

#chatResources::Chat

Returns entry point for ‘client.chat.completions.create(…)`.

Returns:

  • (Resources::Chat)

    entry point for ‘client.chat.completions.create(…)`



40
41
42
# File 'lib/groq_ruby/client.rb', line 40

def chat
  @chat ||= Resources::Chat.new(@transport)
end

#embeddingsResources::Embeddings

Returns entry point for ‘client.embeddings.create(…)`.

Returns:



45
46
47
# File 'lib/groq_ruby/client.rb', line 45

def embeddings
  @embeddings ||= Resources::Embeddings.new(@transport)
end

#filesResources::Files

Returns entry point for ‘.create`, `.list`, `.info`, `.content`, `.delete`.

Returns:

  • (Resources::Files)

    entry point for ‘.create`, `.list`, `.info`, `.content`, `.delete`



60
61
62
# File 'lib/groq_ruby/client.rb', line 60

def files
  @files ||= Resources::Files.new(@transport)
end

#modelsResources::Models

Returns entry point for ‘.list`, `.retrieve`, `.delete`.

Returns:



55
56
57
# File 'lib/groq_ruby/client.rb', line 55

def models
  @models ||= Resources::Models.new(@transport)
end