Class: LLMed::LLM::OpenAI
- Inherits:
-
Object
- Object
- LLMed::LLM::OpenAI
- Defined in:
- lib/llm.rb
Direct Known Subclasses
Constant Summary collapse
- DEFAULT_URI_BASE =
"https://api.openai.com/".freeze
- MAX_TOKENS =
8192
Instance Attribute Summary collapse
-
#llm ⇒ Object
readonly
Returns the value of attribute llm.
Instance Method Summary collapse
- #chat(messages: []) ⇒ Object
-
#initialize(**args) ⇒ OpenAI
constructor
A new instance of OpenAI.
- #model ⇒ Object
- #provider ⇒ Object
- #source_code(content) ⇒ Object
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: , 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 |