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 Method Summary collapse
- #chat(messages: []) ⇒ Object
-
#initialize(**args) ⇒ OpenAI
constructor
A new instance of OpenAI.
Constructor Details
#initialize(**args) ⇒ OpenAI
Returns a new instance of OpenAI.
26 27 28 29 |
# File 'lib/llm.rb', line 26 def initialize(**args) @logger = args.delete(:logger) @llm = Langchain::LLM::OpenAI.new(**llm_arguments(args)) end |
Instance Method Details
#chat(messages: []) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/llm.rb', line 31 def chat(messages: []) = .map do |m| case m when Message::System { role: 'system', content: m.content } when Message::User { role: 'user', content: m.content } end end start = Time.now llm_response = @llm.chat(messages: , max_tokens: MAX_TOKENS) warn_token_limits(llm_response) stop = Time.now Response.new({ provider: provider, model: @llm.chat_parameters[:model], duration_seconds: stop.to_i - start.to_i, source_code: source_code(llm_response.chat_completion), total_tokens: llm_response.total_tokens }) end |