Class: RCrewAI::Tools::SqlDatabase

Inherits:
Base
  • Object
show all
Defined in:
lib/rcrewai/tools/sql_database.rb

Constant Summary

Constants included from RCrewAI::ToolSchema

RCrewAI::ToolSchema::TYPE_MAP

Instance Method Summary collapse

Methods inherited from Base

available_tools, create_tool, #description, #execute_with_validation, #json_schema, list_available_tools, #name, #validate_params!

Methods included from RCrewAI::ToolSchema

#description, extended, #json_schema, #param, #params, #tool_name

Constructor Details

#initialize(**options) ⇒ SqlDatabase

Returns a new instance of SqlDatabase.



16
17
18
19
20
21
22
23
# File 'lib/rcrewai/tools/sql_database.rb', line 16

def initialize(**options)
  super()
  @connection_string = options[:connection_string]
  @database_type = detect_database_type
  @max_results = options.fetch(:max_results, 100)
  @timeout = options.fetch(:timeout, 30)
  setup_database_adapter
end

Instance Method Details

#execute(**params) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rcrewai/tools/sql_database.rb', line 25

def execute(**params)
  validate_params!(params, required: [:query], optional: [:limit])

  query = params[:query].strip
  limit = params[:limit] || @max_results

  begin
    validate_query_safety!(query)
    result = execute_query(query, limit)
    format_query_result(query, result)
  rescue StandardError => e
    "SQL execution failed: #{e.message}"
  end
end