Class: LLM::XAI

Inherits:
OpenAI show all
Defined in:
lib/llm/providers/xai.rb,
lib/llm/providers/xai/images.rb

Overview

The XAI class implements a provider for xAI.

Examples:

#!/usr/bin/env ruby
require "llm"

llm = LLM.xai(key: ENV["KEY"])
bot = LLM::Bot.new(llm)
bot.chat ["Tell me about this photo", File.open("/images/crow.jpg", "rb")]
bot.messages.select(&:assistant?).each { print "[#{_1.role}]", _1.content, "\n" }

Defined Under Namespace

Classes: Images

Constant Summary

Constants inherited from OpenAI

OpenAI::HOST

Instance Method Summary collapse

Methods inherited from OpenAI

#assistant_role, #complete, #embed, #models, #tools, #web_search

Methods inherited from Provider

#assistant_role, #chat, #chat!, clients, #complete, #embed, #inspect, #models, mutex, #respond, #respond!, #schema, #tool, #tools, #web_search, #with

Constructor Details

#initialize(host: "api.x.ai") ⇒ XAI

Returns a new instance of XAI.

Parameters:

  • host (String) (defaults to: "api.x.ai")

    A regional host or the default (“api.x.ai”)

  • key (String, nil)

    The secret key for authentication

See Also:



24
25
26
# File 'lib/llm/providers/xai.rb', line 24

def initialize(host: "api.x.ai", **)
  super
end

Instance Method Details

#default_modelString

Returns the default model for chat completions #see https://docs.x.ai/docs/models grok-4-0709

Returns:

  • (String)


68
69
70
# File 'lib/llm/providers/xai.rb', line 68

def default_model
  "grok-4-0709"
end

#filesObject

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/llm/providers/xai.rb', line 30

def files
  raise NotImplementedError
end

#imagesLLM::XAI::Images

Returns:



36
37
38
# File 'lib/llm/providers/xai.rb', line 36

def images
  LLM::XAI::Images.new(self)
end

#audioObject

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/llm/providers/xai.rb', line 42

def audio
  raise NotImplementedError
end

#moderationsObject

Raises:

  • (NotImplementedError)


48
49
50
# File 'lib/llm/providers/xai.rb', line 48

def moderations
  raise NotImplementedError
end

#responsesObject

Raises:

  • (NotImplementedError)


54
55
56
# File 'lib/llm/providers/xai.rb', line 54

def responses
  raise NotImplementedError
end

#vector_storesObject

Raises:

  • (NotImplementedError)


60
61
62
# File 'lib/llm/providers/xai.rb', line 60

def vector_stores
  raise NotImplementedError
end