Class: Langchain::Tool::Calculator
- Defined in:
- lib/langchain/tool/calculator/calculator.rb
Constant Summary collapse
- NAME =
A calculator tool that falls back to the Google calculator widget
Gem requirements:
gem "eqn", "~> 1.6.5" gem "google_search_results", "~> 2.0.0"
Usage:
calculator = Langchain::Tool::Calculator.new
"calculator"
- ANNOTATIONS_PATH =
Langchain.root.join("./langchain/tool/#{NAME}/#{NAME}.json").to_path
Instance Method Summary collapse
-
#execute(input:) ⇒ String
Evaluates a pure math expression or if equation contains non-math characters (e.g.: “12F in Celsius”) then it uses the google search calculator to evaluate the expression.
-
#initialize ⇒ Calculator
constructor
A new instance of Calculator.
Methods inherited from Base
logger_options, #method_annotations, #name, #to_openai_tools
Methods included from DependencyHelper
Constructor Details
#initialize ⇒ Calculator
Returns a new instance of Calculator.
18 19 20 |
# File 'lib/langchain/tool/calculator/calculator.rb', line 18 def initialize depends_on "eqn" end |
Instance Method Details
#execute(input:) ⇒ String
Evaluates a pure math expression or if equation contains non-math characters (e.g.: “12F in Celsius”) then it uses the google search calculator to evaluate the expression
26 27 28 29 30 31 32 |
# File 'lib/langchain/tool/calculator/calculator.rb', line 26 def execute(input:) Langchain.logger.info("Executing \"#{input}\"", for: self.class) Eqn::Calculator.calc(input) rescue Eqn::ParseError, Eqn::NoVariableValueError "\"#{input}\" is an invalid mathematical expression" end |