patterns-ai-core / langchainrb

Build LLM-powered applications in Ruby

Home Page:https://rubydoc.info/gems/langchainrb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.