OpenAI new models(`gpt-4-turbo`, `gpt-3.5-turbo-0125`) can not use with `undefined method `-' for nil (NoMethodError)`
kokuyouwind opened this issue · comments
Description
Errors occur when using the latest models gpt-4-turbo
and gpt-3.5-turbo-0125
.
> llm = Langchain::LLM::OpenAI.new(
api_key: ENV.fetch('OPENAI_API_KEY', nil),
default_options: {
chat_completion_model_name: 'gpt-4-turbo'
})
> llm.chat(messages: [{ role: 'user', content: 'hello'}])
Warning: gpt-4 may update over time. Returning num tokens assuming gpt-4-0613.
/Users/kokuyou/.asdf/installs/ruby/3.3.1/lib/ruby/gems/3.3.0/gems/langchainrb-0.8.2/lib/langchain/utils/token_length/base_validator.rb:22:in `validate_max_tokens!': undefined method `-' for nil (NoMethodError)
leftover_tokens = token_limit(model_name) - text_token_length
^
from /Users/kokuyou/.asdf/installs/ruby/3.3.1/lib/ruby/gems/3.3.0/gems/langchainrb-0.8.2/lib/langchain/utils/token_length/openai_validator.rb:75:in `validate_max_tokens!'
from /Users/kokuyou/.asdf/installs/ruby/3.3.1/lib/ruby/gems/3.3.0/gems/langchainrb-0.8.2/lib/langchain/llm/openai.rb:242:in `validate_max_tokens'
from /Users/kokuyou/.asdf/installs/ruby/3.3.1/lib/ruby/gems/3.3.0/gems/langchainrb-0.8.2/lib/langchain/llm/openai.rb:134:in `chat'
from (irb):19:in `<main>'
from <internal:kernel>:187:in `loop'
from bin/console:155:in `<main>'
My guess is that the contents of Langchain::Utils::TokenLength have not been updated.