Class: LLMed::LLM::OpenAI

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

Direct Known Subclasses

Anthropic, LikeOpenAI

Constant Summary collapse

DEFAULT_URI_BASE =
"https://api.openai.com/".freeze
MAX_TOKENS =
8192

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ OpenAI

Returns a new instance of OpenAI.



61
62
63
64
# File 'lib/llm.rb', line 61

def initialize(**args)
  @logger = args.delete(:logger)
  @llm = Langchain::LLM::OpenAI.new(**llm_arguments(args))
end

Instance Attribute Details

#llm ⇒ Object (readonly)

Returns the value of attribute llm.



59
60
61
# File 'lib/llm.rb', line 59

def llm
  @llm
end

Instance Method Details

#chat(messages: []) ⇒ Object



66
67
68
69
70
# File 'lib/llm.rb', line 66

def chat(messages: [])
  llm_response = @llm.chat(messages: messages, max_tokens: MAX_TOKENS)
  warn_token_limits(llm_response)
  llm_response
end

#model ⇒ Object



72
73
74
# File 'lib/llm.rb', line 72

def model
  @llm.chat_parameters[:model]
end

#provider ⇒ Object



76
77
78
# File 'lib/llm.rb', line 76

def provider
  :openai
end

#source_code(content) ⇒ Object



80
81
82
# File 'lib/llm.rb', line 80

def source_code(content)
  content.gsub('```', '').sub(/^(node(js)?|javascript|ruby|python(\d*)|elixir|bash|html|go|c(pp)?)([ \n])/, '')
end