Class: GuardrailsRuby::Checks::HallucinatedURLs
- Inherits:
-
GuardrailsRuby::Check
- Object
- GuardrailsRuby::Check
- GuardrailsRuby::Checks::HallucinatedURLs
- Defined in:
- lib/guardrails_ruby/checks/hallucinated_urls.rb
Constant Summary collapse
- URL_PATTERN =
%r{https?://[^\s<>"{}|\\^`\[\]]+}
Instance Attribute Summary
Attributes inherited from GuardrailsRuby::Check
Instance Method Summary collapse
Methods inherited from GuardrailsRuby::Check
check_name, direction, #initialize, lookup
Constructor Details
This class inherits a constructor from GuardrailsRuby::Check
Instance Method Details
#call(text, context: {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/guardrails_ruby/checks/hallucinated_urls.rb', line 11 def call(text, context: {}) urls = text.scan(URL_PATTERN) return pass! if urls.empty? source_context = context[:source_context] || "" source_urls = source_context.scan(URL_PATTERN) hallucinated = urls.reject do |url| source_urls.any? { |s| normalize(url).start_with?(normalize(s)) } end if hallucinated.any? fail! "Potentially hallucinated URLs: #{hallucinated.join(', ')}", action: @options.fetch(:action, :warn), matches: hallucinated else pass! end end |