Module: Kimurai

Defined in:
lib/kimurai.rb,
lib/kimurai/cli.rb,
lib/kimurai/base.rb,
lib/kimurai/runner.rb,
lib/kimurai/version.rb,
lib/kimurai/pipeline.rb,
lib/kimurai/base/saver.rb,
lib/kimurai/base_helper.rb,
lib/kimurai/base/storage.rb,
lib/kimurai/cli/generator.rb,
lib/kimurai/browser_builder.rb,
lib/kimurai/browser_builder/mechanize_builder.rb,
lib/kimurai/browser_builder/selenium_chrome_builder.rb,
lib/kimurai/browser_builder/selenium_firefox_builder.rb

Defined Under Namespace

Modules: BaseHelper, BrowserBuilder Classes: Base, CLI, Pipeline, Runner

Constant Summary collapse

NUKITORI_SETTINGS =

Settings that will be forwarded to Nukitori configuration

i[
  openai_api_key
  anthropic_api_key
  gemini_api_key
  vertexai_project_id
  vertexai_location
  deepseek_api_key
  mistral_api_key
  perplexity_api_key
  openrouter_api_key
  gpustack_api_key
  openai_api_base
  gemini_api_base
  ollama_api_base
  gpustack_api_base
  openai_organization_id
  openai_project_id
  openai_use_system_role
  bedrock_api_key
  bedrock_secret_key
  bedrock_region
  bedrock_session_token
  default_model
  model_registry_file
].freeze
VERSION =
'2.2.0'.freeze

Class Method Summary collapse

Class Method Details

.apply_nukitori_configurationObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/kimurai.rb', line 61

def apply_nukitori_configuration
  nukitori_settings = NUKITORI_SETTINGS.filter_map do |setting|
    value = configuration[setting]
    [setting, value] if value
  end.to_h

  return if nukitori_settings.empty?

  Nukitori.configure do |config|
    nukitori_settings.each do |setting, value|
      config.public_send("#{setting}=", value)
    end
  end
end

.configurationObject



52
53
54
# File 'lib/kimurai.rb', line 52

def configuration
  @configuration ||= OpenStruct.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



56
57
58
59
# File 'lib/kimurai.rb', line 56

def configure
  yield(configuration)
  apply_nukitori_configuration
end

.envObject



76
77
78
# File 'lib/kimurai.rb', line 76

def env
  ENV.fetch('KIMURAI_ENV', 'development')
end

.find_by_name(name) ⇒ Object



96
97
98
99
100
# File 'lib/kimurai.rb', line 96

def find_by_name(name)
  return unless name

  Base.descendants.find { |klass| klass.name == name }
end

.listObject



88
89
90
91
92
93
94
# File 'lib/kimurai.rb', line 88

def list
  Base.descendants.map do |klass|
    next unless klass.name

    [klass.name, klass]
  end.compact.to_h
end

.time_zoneObject



80
81
82
# File 'lib/kimurai.rb', line 80

def time_zone
  ENV['TZ']
end

.time_zone=(value) ⇒ Object



84
85
86
# File 'lib/kimurai.rb', line 84

def time_zone=(value)
  ENV.store('TZ', value)
end