diff --git a/lib/llm_classifier/classifier.rb b/lib/llm_classifier/classifier.rb index fa14150..25293f8 100644 --- a/lib/llm_classifier/classifier.rb +++ b/lib/llm_classifier/classifier.rb @@ -7,7 +7,8 @@ module LlmClassifier class Classifier class << self attr_reader :defined_categories, :defined_system_prompt, :defined_model, - :defined_adapter, :defined_multi_label, :defined_knowledge, + :defined_adapter, :defined_multi_label, :defined_require_categories, + :defined_knowledge, :before_classify_callbacks, :after_classify_callbacks def categories(*cats) @@ -50,6 +51,14 @@ def multi_label(value = nil) end end + def require_categories(value = nil) + if value.nil? + @defined_require_categories || false + else + @defined_require_categories = value + end + end + def knowledge(&) if block_given? @defined_knowledge = Knowledge.new @@ -192,7 +201,10 @@ def extract_valid_categories(json) end def should_fail?(valid_categories) - valid_categories.empty? && !self.class.categories.empty? && !self.class.multi_label + return false if valid_categories.any? + return false if self.class.categories.empty? + + !self.class.multi_label || self.class.require_categories end def build_failure_result(response, json) diff --git a/lib/llm_classifier/content_fetchers/web.rb b/lib/llm_classifier/content_fetchers/web.rb index 9e5563b..b432367 100644 --- a/lib/llm_classifier/content_fetchers/web.rb +++ b/lib/llm_classifier/content_fetchers/web.rb @@ -77,7 +77,7 @@ def private_ip?(address) end def normalize_redirect_url(base_url, redirect_url) - return nil if redirect_url.blank? + return nil if redirect_url.nil? || redirect_url.empty? if redirect_url.start_with?("http://", "https://") redirect_url diff --git a/lib/llm_classifier/version.rb b/lib/llm_classifier/version.rb index 7f3bdb9..9f2d19f 100644 --- a/lib/llm_classifier/version.rb +++ b/lib/llm_classifier/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module LlmClassifier - VERSION = "0.1.0" + VERSION = "0.2.0" end