Class: Rack::AI::Providers::Local
- Inherits:
-
Base
- Object
- Base
- Rack::AI::Providers::Local
show all
- Defined in:
- lib/rack/ai/providers/local.rb
Constant Summary
collapse
- DEFAULT_PORT =
8080
Instance Attribute Summary
Attributes inherited from Base
#config
Instance Method Summary
collapse
Methods inherited from Base
#build_request_data, #healthy?, #validate!
Constructor Details
#initialize(config) ⇒ Local
Returns a new instance of Local.
12
13
14
15
|
# File 'lib/rack/ai/providers/local.rb', line 12
def initialize(config)
super
@client = build_client
end
|
Instance Method Details
#analyze_patterns(data) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/rack/ai/providers/local.rb', line 57
def analyze_patterns(data)
response = @client.post("analyze") do |req|
req.body = {
data: data,
analysis_type: "patterns"
}.to_json
end
handle_api_error(response) unless response.success?
result = JSON.parse(response.body)
{
anomalies: result["anomalies"] || [],
trends: result["trends"] || [],
recommendations: result["recommendations"] || [],
confidence: result["confidence"] || 0.0,
provider: :local
}
end
|
#classify_request(request_data) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/rack/ai/providers/local.rb', line 17
def classify_request(request_data)
response = @client.post("classify") do |req|
req.body = {
request_data: request_data,
task: "classification"
}.to_json
end
handle_api_error(response) unless response.success?
result = JSON.parse(response.body)
{
classification: result["classification"]&.to_sym || :unknown,
confidence: result["confidence"] || 0.0,
reasoning: result["reasoning"],
provider: :local
}
end
|
#detect_anomalies(request_data) ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/rack/ai/providers/local.rb', line 78
def detect_anomalies(request_data)
response = @client.post("detect") do |req|
req.body = {
request_data: request_data,
detection_type: "anomalies"
}.to_json
end
handle_api_error(response) unless response.success?
result = JSON.parse(response.body)
{
threat_level: result["threat_level"]&.to_sym || :low,
anomalies: result["anomalies"] || [],
confidence: result["confidence"] || 0.0,
provider: :local
}
end
|
#enhance_content(content, enhancement_type) ⇒ Object
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/rack/ai/providers/local.rb', line 98
def enhance_content(content, enhancement_type)
response = @client.post("enhance") do |req|
req.body = {
content: content,
enhancement_type: enhancement_type
}.to_json
end
handle_api_error(response) unless response.success?
result = JSON.parse(response.body)
{
original_content: content,
enhanced_content: result["enhanced_content"] || content,
enhancement_type: enhancement_type,
provider: :local
}
end
|
#moderate_content(content, options = {}) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/rack/ai/providers/local.rb', line 37
def moderate_content(content, options = {})
response = @client.post("moderate") do |req|
req.body = {
content: content,
options: options
}.to_json
end
handle_api_error(response) unless response.success?
result = JSON.parse(response.body)
{
flagged: result["flagged"] || false,
categories: result["categories"] || {},
category_scores: result["category_scores"] || {},
provider: :local
}
end
|
#ping ⇒ Object
118
119
120
121
|
# File 'lib/rack/ai/providers/local.rb', line 118
def ping
response = @client.get("health")
response.success?
end
|