predictionio 0.8.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/predictionio/engine_client.rb +24 -30
- data/lib/predictionio/event_client.rb +18 -23
- data/lib/predictionio/file_exporter.rb +29 -0
- data/lib/predictionio/version.rb +2 -2
- data/lib/predictionio.rb +6 -0
- metadata +24 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da7586b887055412f1f000be93ad5bd565a36be5
|
4
|
+
data.tar.gz: 3ed3df0f0daa02fe345cd65ab2dd91c1d4ec52d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8867009b24ce3fb765799f70c58268b19fe8b30a89afe783d6d923ca48fff4612732119d6472618de1ca52c2399a27256cca559f610c3f26a8753dfd83817baa
|
7
|
+
data.tar.gz: 8268c54337b6233a4e9e0584f5a85dedcccb2a6aa162bff1fed0939412b4d59038e3b54d12e649b5458ae05b96a4a18b0afbd3c97b4ca24a51894e11549c0785
|
@@ -4,10 +4,6 @@
|
|
4
4
|
# Copyright:: Copyright (c) 2014 TappingStone, Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
|
7
|
-
require 'predictionio/async_request'
|
8
|
-
require 'predictionio/async_response'
|
9
|
-
require 'predictionio/connection'
|
10
|
-
|
11
7
|
module PredictionIO
|
12
8
|
# This class contains methods that interface with PredictionIO Engine
|
13
9
|
# Instances that are trained from PredictionIO built-in Engines.
|
@@ -70,6 +66,30 @@ module PredictionIO
|
|
70
66
|
end
|
71
67
|
end
|
72
68
|
|
69
|
+
# :category: Asynchronous Methods
|
70
|
+
# Asynchronously sends a query and returns PredictionIO::AsyncResponse
|
71
|
+
# object immediately. The query should be a Ruby data structure that can be
|
72
|
+
# converted to a JSON object.
|
73
|
+
#
|
74
|
+
# Corresponding REST API method: POST /
|
75
|
+
#
|
76
|
+
# See also #send_query.
|
77
|
+
def asend_query(query)
|
78
|
+
@http.apost(PredictionIO::AsyncRequest.new('/queries.json', query.to_json))
|
79
|
+
end
|
80
|
+
|
81
|
+
# :category: Synchronous Methods
|
82
|
+
# Synchronously sends a query and block until predictions are received.
|
83
|
+
#
|
84
|
+
# See also #asend_query.
|
85
|
+
#
|
86
|
+
# call-seq:
|
87
|
+
# send_query(data)
|
88
|
+
# send_query(async_response)
|
89
|
+
def send_query(*args)
|
90
|
+
sync_events(:asend_query, *args)
|
91
|
+
end
|
92
|
+
|
73
93
|
protected
|
74
94
|
|
75
95
|
# Internal helper method. Do not call directly.
|
@@ -95,31 +115,5 @@ module PredictionIO
|
|
95
115
|
fail msg
|
96
116
|
end
|
97
117
|
end
|
98
|
-
|
99
|
-
public
|
100
|
-
|
101
|
-
# :category: Asynchronous Methods
|
102
|
-
# Asynchronously sends a query and returns PredictionIO::AsyncResponse
|
103
|
-
# object immediately. The query should be a Ruby data structure that can be
|
104
|
-
# converted to a JSON object.
|
105
|
-
#
|
106
|
-
# Corresponding REST API method: POST /
|
107
|
-
#
|
108
|
-
# See also #send_query.
|
109
|
-
def asend_query(query)
|
110
|
-
@http.apost(PredictionIO::AsyncRequest.new('/queries.json', query.to_json))
|
111
|
-
end
|
112
|
-
|
113
|
-
# :category: Synchronous Methods
|
114
|
-
# Synchronously sends a query and block until predictions are received.
|
115
|
-
#
|
116
|
-
# See also #asend_query.
|
117
|
-
#
|
118
|
-
# call-seq:
|
119
|
-
# send_query(data)
|
120
|
-
# send_query(async_response)
|
121
|
-
def send_query(*args)
|
122
|
-
sync_events(:asend_query, *args)
|
123
|
-
end
|
124
118
|
end
|
125
119
|
end
|
@@ -4,9 +4,6 @@
|
|
4
4
|
# Copyright:: Copyright (c) 2014 TappingStone, Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
|
7
|
-
require 'predictionio/async_request'
|
8
|
-
require 'predictionio/async_response'
|
9
|
-
require 'predictionio/connection'
|
10
7
|
require 'date'
|
11
8
|
|
12
9
|
module PredictionIO
|
@@ -104,26 +101,6 @@ module PredictionIO
|
|
104
101
|
end
|
105
102
|
end
|
106
103
|
|
107
|
-
protected
|
108
|
-
|
109
|
-
# Internal helper method. Do not call directly.
|
110
|
-
def sync_events(sync_m, *args)
|
111
|
-
if args[0].is_a?(PredictionIO::AsyncResponse)
|
112
|
-
response = args[0].get
|
113
|
-
else
|
114
|
-
response = send(sync_m, *args).get
|
115
|
-
end
|
116
|
-
return response if response.is_a?(Net::HTTPCreated)
|
117
|
-
begin
|
118
|
-
msg = response.body
|
119
|
-
rescue
|
120
|
-
raise NotCreatedError, response
|
121
|
-
end
|
122
|
-
fail NotCreatedError, msg
|
123
|
-
end
|
124
|
-
|
125
|
-
public
|
126
|
-
|
127
104
|
# :category: Asynchronous Methods
|
128
105
|
# Asynchronously request to create an event and return a
|
129
106
|
# PredictionIO::AsyncResponse object immediately.
|
@@ -336,5 +313,23 @@ module PredictionIO
|
|
336
313
|
def record_user_action_on_item(*args)
|
337
314
|
sync_events(:arecord_user_action_on_item, *args)
|
338
315
|
end
|
316
|
+
|
317
|
+
protected
|
318
|
+
|
319
|
+
# Internal helper method. Do not call directly.
|
320
|
+
def sync_events(sync_m, *args)
|
321
|
+
if args[0].is_a?(PredictionIO::AsyncResponse)
|
322
|
+
response = args[0].get
|
323
|
+
else
|
324
|
+
response = send(sync_m, *args).get
|
325
|
+
end
|
326
|
+
return response if response.is_a?(Net::HTTPCreated)
|
327
|
+
begin
|
328
|
+
msg = response.body
|
329
|
+
rescue
|
330
|
+
raise NotCreatedError, response
|
331
|
+
end
|
332
|
+
fail NotCreatedError, msg
|
333
|
+
end
|
339
334
|
end
|
340
335
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module PredictionIO
|
2
|
+
# This class contains methods that allow you to export data for import though:
|
3
|
+
#
|
4
|
+
# $ pio import FILENAME
|
5
|
+
|
6
|
+
class FileExporter
|
7
|
+
|
8
|
+
def initialize(filename)
|
9
|
+
@filename = filename
|
10
|
+
@file = File.open(@filename, 'w')
|
11
|
+
end
|
12
|
+
|
13
|
+
def create_event(event, entity_type, entity_id, optional = {})
|
14
|
+
|
15
|
+
h = optional
|
16
|
+
h.key?('eventTime') || h['eventTime'] = DateTime.now.to_s
|
17
|
+
h['event'] = event
|
18
|
+
h['entityType'] = entity_type
|
19
|
+
h['entityId'] = entity_id
|
20
|
+
|
21
|
+
json = h.to_json
|
22
|
+
@file.write("#{json}\n")
|
23
|
+
end
|
24
|
+
|
25
|
+
def close
|
26
|
+
@file.close
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/predictionio/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module PredictionIO
|
2
|
-
VERSION = '0.
|
3
|
-
end
|
2
|
+
VERSION = '0.9.0'
|
3
|
+
end
|
data/lib/predictionio.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'predictionio/async_request'
|
3
|
+
require 'predictionio/async_response'
|
4
|
+
require 'predictionio/connection'
|
1
5
|
require 'predictionio/event_client'
|
2
6
|
require 'predictionio/engine_client'
|
7
|
+
require 'predictionio/file_exporter'
|
8
|
+
require 'predictionio/version'
|
3
9
|
|
4
10
|
# The PredictionIO module contains classes that provide convenient access of
|
5
11
|
# PredictionIO Event API and Engine Instance over HTTP/HTTPS.
|
metadata
CHANGED
@@ -1,19 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: predictionio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The PredictionIO Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2015-03-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
13
27
|
description: |
|
14
|
-
PredictionIO is
|
15
|
-
|
16
|
-
|
28
|
+
PredictionIO is an open source machine learning server for developers and data
|
29
|
+
scientists to create predictive engines for production environments. This gem
|
30
|
+
provides convenient access to the PredictionIO API for Ruby programmers so that
|
31
|
+
you can focus on application logic.
|
17
32
|
email: support@prediction.io
|
18
33
|
executables: []
|
19
34
|
extensions: []
|
@@ -25,8 +40,9 @@ files:
|
|
25
40
|
- lib/predictionio/connection.rb
|
26
41
|
- lib/predictionio/engine_client.rb
|
27
42
|
- lib/predictionio/event_client.rb
|
43
|
+
- lib/predictionio/file_exporter.rb
|
28
44
|
- lib/predictionio/version.rb
|
29
|
-
homepage: http://prediction.io
|
45
|
+
homepage: http://prediction.io/
|
30
46
|
licenses:
|
31
47
|
- Apache-2.0
|
32
48
|
metadata: {}
|
@@ -38,7 +54,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
38
54
|
requirements:
|
39
55
|
- - '>='
|
40
56
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
57
|
+
version: 1.9.3
|
42
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
59
|
requirements:
|
44
60
|
- - '>='
|