Class: TokenMix::Client

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

Constant Summary collapse

DEFAULT_BASE_URL =
'https://api.tokenmix.ai/v1'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, base_url: DEFAULT_BASE_URL) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


17
18
19
20
21
# File 'lib/tokenmix.rb', line 17

def initialize(api_key:, base_url: DEFAULT_BASE_URL)
  raise ArgumentError, 'api_key is required' if api_key.nil? || api_key.empty?
  @api_key = api_key
  @base_url = base_url
end

Instance Method Details

#chat(model:, messages:) ⇒ String

Send a chat completion request.

Parameters:

  • model (String)

    Model name (e.g. “gpt-5”, “claude-opus-4-5”)

  • messages (Array<Hash>)

    Array of content:

Returns:

  • (String)

    The assistant’s reply



28
29
30
31
# File 'lib/tokenmix.rb', line 28

def chat(model:, messages:)
  response = post('/chat/completions', model: model, messages: messages)
  response.dig('choices', 0, 'message', 'content')
end

#list_modelsArray<String>

List available models.

Returns:

  • (Array<String>)

    model IDs



35
36
37
38
# File 'lib/tokenmix.rb', line 35

def list_models
  response = get('/models')
  (response['data'] || []).map { |m| m['id'] }
end