Module: SentinelRb

Defined in:
lib/sentinel_rb.rb,
lib/sentinel_rb/cli.rb,
lib/sentinel_rb/client.rb,
lib/sentinel_rb/config.rb,
lib/sentinel_rb/report.rb,
lib/sentinel_rb/version.rb,
lib/sentinel_rb/analyzer.rb,
lib/sentinel_rb/client/base.rb,
lib/sentinel_rb/client/mock.rb,
lib/sentinel_rb/client/openai.rb,
lib/sentinel_rb/analyzers/base.rb,
lib/sentinel_rb/analyzers/few_shot_bias.rb,
lib/sentinel_rb/analyzers/misinformation.rb,
lib/sentinel_rb/analyzers/dangerous_tools.rb,
lib/sentinel_rb/analyzers/irrelevant_info.rb,
lib/sentinel_rb/analyzers/base_model_usage.rb

Defined Under Namespace

Modules: Analyzers, Client, Report Classes: Analyzer, CLI, Config, Error

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.analyze(prompt_or_file, config: nil, **options) ⇒ Object

Main entry point for programmatic usage



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sentinel_rb.rb', line 14

def self.analyze(prompt_or_file, config: nil, **options)
  analyzer = Analyzer.new(config)

  if File.exist?(prompt_or_file.to_s)
    analyzer.analyze_file(prompt_or_file, **options)
  else
    findings = analyzer.analyze_prompt(prompt_or_file.to_s, **options)
    {
      content: prompt_or_file,
      findings: findings,
      analyzed_at: Time.now
    }
  end
end

.analyze_files(pattern, config: nil, **options) ⇒ Object

Analyze multiple files matching a pattern



30
31
32
33
# File 'lib/sentinel_rb.rb', line 30

def self.analyze_files(pattern, config: nil, **options)
  analyzer = Analyzer.new(config)
  analyzer.analyze_files(pattern, **options)
end

.load_config(path = ".sentinel.yml") ⇒ Object

Load configuration from file



36
37
38
# File 'lib/sentinel_rb.rb', line 36

def self.load_config(path = ".sentinel.yml")
  Config.load(path)
end