Class: Rack::AI::Providers::Base
- Inherits:
-
Object
- Object
- Rack::AI::Providers::Base
show all
- Defined in:
- lib/rack/ai/providers/base.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config) ⇒ Base
Returns a new instance of Base.
9
10
11
|
# File 'lib/rack/ai/providers/base.rb', line 9
def initialize(config)
@config = config
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
7
8
9
|
# File 'lib/rack/ai/providers/base.rb', line 7
def config
@config
end
|
Instance Method Details
#analyze_patterns(data) ⇒ Object
22
23
24
|
# File 'lib/rack/ai/providers/base.rb', line 22
def analyze_patterns(data)
raise NotImplementedError, "#{self.class} must implement #analyze_patterns"
end
|
#build_request_data(env) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/rack/ai/providers/base.rb', line 51
def build_request_data(env)
{
method: env["REQUEST_METHOD"],
path: env["PATH_INFO"],
query_string: env["QUERY_STRING"],
user_agent: env["HTTP_USER_AGENT"],
remote_ip: env["REMOTE_ADDR"],
headers: (env),
timestamp: Time.now.iso8601
}
end
|
#classify_request(request_data) ⇒ Object
Abstract methods that must be implemented by subclasses
14
15
16
|
# File 'lib/rack/ai/providers/base.rb', line 14
def classify_request(request_data)
raise NotImplementedError, "#{self.class} must implement #classify_request"
end
|
#detect_anomalies(request_data) ⇒ Object
26
27
28
|
# File 'lib/rack/ai/providers/base.rb', line 26
def detect_anomalies(request_data)
raise NotImplementedError, "#{self.class} must implement #detect_anomalies"
end
|
#enhance_content(content, enhancement_type) ⇒ Object
30
31
32
|
# File 'lib/rack/ai/providers/base.rb', line 30
def enhance_content(content, enhancement_type)
raise NotImplementedError, "#{self.class} must implement #enhance_content"
end
|
#healthy? ⇒ Boolean
41
42
43
44
45
|
# File 'lib/rack/ai/providers/base.rb', line 41
def healthy?
ping
rescue
false
end
|
#moderate_content(content, options = {}) ⇒ Object
18
19
20
|
# File 'lib/rack/ai/providers/base.rb', line 18
def moderate_content(content, options = {})
raise NotImplementedError, "#{self.class} must implement #moderate_content"
end
|
#ping ⇒ Object
47
48
49
|
# File 'lib/rack/ai/providers/base.rb', line 47
def ping
raise NotImplementedError, "#{self.class} must implement #ping"
end
|
#validate! ⇒ Object
35
36
37
38
|
# File 'lib/rack/ai/providers/base.rb', line 35
def validate!
raise ConfigurationError, "API key is required" if requires_api_key? && !@config[:api_key]
raise ConfigurationError, "API URL is required" if requires_api_url? && !@config[:api_url]
end
|