soothsayer 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +29 -1
- data/lib/soothsayer/version.rb +1 -1
- data/lib/soothsayer.rb +29 -6
- metadata +1 -1
data/README.markdown
CHANGED
@@ -1,2 +1,30 @@
|
|
1
1
|
# Soothsayer
|
2
|
-
Soothsayer is
|
2
|
+
Soothsayer is a thin Ruby wrapper around Google's Prediction API.
|
3
|
+
|
4
|
+
## Setup
|
5
|
+
Go to [Google's API Console](http://code.google.com/apis/console). Sign up and turn on both the "Google Cloud Storage" and "Prediction API" services. Before you can use the Prediction API, you'll have to turn on billing.
|
6
|
+
|
7
|
+
Go to "API Access" section of the Google API Console and create an "Authorized API Access" key, "Client ID for installed applications." You'll need the "Client ID" and "Client secret."
|
8
|
+
|
9
|
+
Download Google's Ruby API client gem:
|
10
|
+
gem install google-api-client
|
11
|
+
|
12
|
+
Now you need to download your OAuth keys
|
13
|
+
google-api oauth-2-login --scope=https://www.googleapis.com/auth/prediction --client-id=<< YOUR CLIENT ID >> --client-secret=<< YOUR CLIENT SECRET >>
|
14
|
+
|
15
|
+
This will create a file at <code>~/.google-api.yaml</code> which contains your OAuth keys. Move this file into your project and use it to configure Soothsayer:
|
16
|
+
config_file = File.expand_path('path/to/google-api.yaml')
|
17
|
+
config = open(config_file, 'r'){ |file| YAML.load(file.read) }
|
18
|
+
Soothsayer.config do |c|
|
19
|
+
c.client_id = config.client_id
|
20
|
+
c.client_secret = config.client_secret
|
21
|
+
c.access_token = config.access_token
|
22
|
+
c.refresh_token = config.refresh_token
|
23
|
+
end
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
To use Soothsayer, refer to [Google's documentation](https://developers.google.com/prediction/docs/reference/v1.5/reference).
|
27
|
+
|
28
|
+
Soothsayer::HostedModel.predict("sample.languageid", {:input => {:csvInstance => ["Como se llama?"]}})
|
29
|
+
Soothsayer::TrainedModel.list
|
30
|
+
Soothsayer::TrainedModel.update("my.trained.model.name", {:label => "my_label", :csvInstance => [col1, col2, col3]})
|
data/lib/soothsayer/version.rb
CHANGED
data/lib/soothsayer.rb
CHANGED
@@ -6,6 +6,30 @@ require 'google/api_client'
|
|
6
6
|
require 'multi_json'
|
7
7
|
|
8
8
|
module Soothsayer
|
9
|
+
def self.credentials
|
10
|
+
@@config
|
11
|
+
end
|
12
|
+
|
13
|
+
# Configures Soothsayer with the credentials downloaded by the Ruby api client into .google-api.yaml
|
14
|
+
#
|
15
|
+
# config_file = File.expand_path('~/.google-api.yaml')
|
16
|
+
# config = open(config_file, 'r'){ |file| YAML.load(file.read) }
|
17
|
+
# Soothsayer.config do |c|
|
18
|
+
# c.client_id = config.client_id
|
19
|
+
# c.client_secret = config.client_secret
|
20
|
+
# c.access_token = config.access_token
|
21
|
+
# c.refresh_token = config.refresh_token
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
def self.config(config = Configuration.new)
|
25
|
+
yield config
|
26
|
+
@@config = config
|
27
|
+
end
|
28
|
+
|
29
|
+
class Configuration
|
30
|
+
attr_accessor :client_id, :client_secret, :access_token, :refresh_token
|
31
|
+
end
|
32
|
+
|
9
33
|
class OAuthTokenError < StandardError; end
|
10
34
|
class API
|
11
35
|
include HTTParty
|
@@ -26,15 +50,14 @@ module Soothsayer
|
|
26
50
|
end
|
27
51
|
|
28
52
|
def create_client
|
29
|
-
|
30
|
-
config = open(config_file, 'r'){ |file| YAML.load(file.read) }
|
53
|
+
raise OAuthTokenError, 'Please configure Soothsayer first with Soothsayer.config.' if Soothsayer.credentials.nil?
|
31
54
|
client = Google::APIClient.new(:authorization => :oauth_2)
|
32
55
|
unless client.authorization.nil?
|
33
56
|
client.authorization.scope = nil
|
34
|
-
client.authorization.client_id =
|
35
|
-
client.authorization.client_secret =
|
36
|
-
client.authorization.access_token =
|
37
|
-
client.authorization.refresh_token =
|
57
|
+
client.authorization.client_id = Soothsayer.credentials.client_id
|
58
|
+
client.authorization.client_secret = Soothsayer.credentials.client_secret
|
59
|
+
client.authorization.access_token = Soothsayer.credentials.access_token
|
60
|
+
client.authorization.refresh_token = Soothsayer.credentials.refresh_token
|
38
61
|
client.register_discovery_uri('discovery', 'v1.5', nil)
|
39
62
|
self.api_client = client
|
40
63
|
else
|