watson-client 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +61 -0
- data/lib/watson/cluster.rb +13 -0
- data/lib/watson/conversation.rb +36 -0
- data/lib/watson/retrieve_and_rank.rb +33 -0
- data/lib/watson.rb +5 -0
- metadata +62 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 75eb37d001cf07bb49a4719cd6ef33760dd51ef7
|
4
|
+
data.tar.gz: f23f072ec1f00124c73618f1eabd1a775b53997e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bf10d1598cf074e77b59cb8ee78eaf9f9f42f50917d428ae5be724b336fce03bf6763c37d569c8fdee7203301b04038a1591e29e518c043139bde440e9b974d2
|
7
|
+
data.tar.gz: 9402bdc34541986e5070c79b6881a5634582a46f08e1da434fcc9fbcd5cb4a75a743933e88ca4d82dd780282f88c92435b9b4771011990efeb70f708363d9209
|
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# w-ruby
|
2
|
+
API client for watson IPBM services
|
3
|
+
|
4
|
+
# w-ruby
|
5
|
+
API client for watson IPBM services
|
6
|
+
|
7
|
+
### Conversation API
|
8
|
+
Initialize your own credentials for Conversation API
|
9
|
+
```ruby
|
10
|
+
Watson::Conversation.configure(
|
11
|
+
password: 'YOUR_CONVERSATION_PASSWORD',
|
12
|
+
username: 'YOUR_CONVERSATION_USERNAME',
|
13
|
+
url: 'https://gateway.watsonplatform.net/conversation/api',
|
14
|
+
workspace_id: 'YOUR_CONVERSATION_WORKSPACE_ID'
|
15
|
+
)
|
16
|
+
```
|
17
|
+
|
18
|
+
**Example:**
|
19
|
+
A simple response from your dialog model
|
20
|
+
```ruby
|
21
|
+
require 'watson-client'
|
22
|
+
|
23
|
+
client = Watson::Conversation.new
|
24
|
+
client.send_message('message one')
|
25
|
+
>> "Watson response one"
|
26
|
+
client.send_message('message two')
|
27
|
+
>> "Watson response two"
|
28
|
+
```
|
29
|
+
|
30
|
+
Try something different
|
31
|
+
```ruby
|
32
|
+
require 'watson-client'
|
33
|
+
|
34
|
+
puts 'Say Hi!'
|
35
|
+
user_input = nil
|
36
|
+
until user_input == 'q' || user_input == 'exit'
|
37
|
+
print '> '
|
38
|
+
user_input = gets.chomp
|
39
|
+
return if user_input == 'q' || user_input == 'exit'
|
40
|
+
client.send_message(user_input)
|
41
|
+
sleep 0.5
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
### Retrieve and Rank API
|
46
|
+
Initialize your own credentials for Conversation API
|
47
|
+
```ruby
|
48
|
+
Watson::RetrieveAndRank.configure(
|
49
|
+
url: 'https://watson-api-explorer.mybluemix.net/retrieve-and-rank/api',
|
50
|
+
password: 'YOUR_RETRIEVE_AND_RANK_PASSWORD',
|
51
|
+
username: 'YOUR_RETRIEVE_AND_RANK_USERNAME',
|
52
|
+
cluster_id: 'YOUR_RETRIEVE_AND_RANK_CLUSTER_ID',
|
53
|
+
collection_name: 'YOUR_RETRIEVE_AND_RANK_COLLECTION_NAME'
|
54
|
+
)
|
55
|
+
```
|
56
|
+
Get the suggested answers
|
57
|
+
```ruby
|
58
|
+
responses = Watson::RetrieveAndRank.send_message('message')
|
59
|
+
```
|
60
|
+
|
61
|
+
The response is returned as a JSON array.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Watson
|
2
|
+
class Cluster
|
3
|
+
attr_reader :solr_cluster_id, :cluster_name, :cluster_size,
|
4
|
+
:solr_cluster_status
|
5
|
+
|
6
|
+
def initialize(options = {})
|
7
|
+
@solr_cluster_id = options['solr_cluster_id']
|
8
|
+
@cluster_name = options['cluster_name']
|
9
|
+
@cluster_size = options['cluster_size']
|
10
|
+
@solr_cluster_status = options['solr_cluster_status']
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Watson
|
2
|
+
class Conversation
|
3
|
+
def self.configure(options = {})
|
4
|
+
@@username = options[:username]
|
5
|
+
@@password = options[:password]
|
6
|
+
@@url = options[:url]
|
7
|
+
@@workspace_id = options[:workspace_id]
|
8
|
+
end
|
9
|
+
|
10
|
+
def conversation
|
11
|
+
@context['conversation_id']
|
12
|
+
end
|
13
|
+
|
14
|
+
def send_message(message = '')
|
15
|
+
params = { input: { text: message }, alternate_intents: true }
|
16
|
+
params.merge!(@context) unless @context.nil?
|
17
|
+
|
18
|
+
response = Excon.post(url,
|
19
|
+
body: params.to_json,
|
20
|
+
headers: {
|
21
|
+
'Content-Type' => 'application/json',
|
22
|
+
'Accept' => 'application/json'
|
23
|
+
},
|
24
|
+
user: @@username,
|
25
|
+
password: @@password)
|
26
|
+
result = JSON.parse(response.body)
|
27
|
+
|
28
|
+
@context = { context: result['context'] }
|
29
|
+
puts result['output']['text']
|
30
|
+
end
|
31
|
+
|
32
|
+
def url
|
33
|
+
@@url + '/v1/workspaces/' + @@workspace_id + '/message?version=2016-09-20'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Watson
|
2
|
+
class RetrieveAndRank
|
3
|
+
def self.configure(options = {})
|
4
|
+
@username = options[:username]
|
5
|
+
@password = options[:password]
|
6
|
+
@url = options[:url]
|
7
|
+
@cluster = options[:cluster_id]
|
8
|
+
@collection_name = options[:collection_name]
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.send_message(message = '')
|
12
|
+
query = URI.encode(message)
|
13
|
+
response = Excon.post(url(query),
|
14
|
+
headers: {
|
15
|
+
'Content-Type' => 'application/json',
|
16
|
+
'Accept' => 'application/json'
|
17
|
+
},
|
18
|
+
user: @username,
|
19
|
+
password: @password)
|
20
|
+
result = JSON.parse(response.body)
|
21
|
+
answers(result['response']['docs'])
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.answers(data)
|
25
|
+
data.each { |d| puts d['body'] }
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.url(query)
|
29
|
+
@url + '/v1/solr_clusters/' + @cluster + '/solr/' + @collection_name +
|
30
|
+
'/select?q=' + query + '&wt=json'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/watson.rb
ADDED
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: watson-client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Carlos Andres Torres Cruz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: excon
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Send and receive messages to Conversation or Retrieve and Rank services
|
28
|
+
email: carlosandrestorres28@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- README.md
|
34
|
+
- lib/watson.rb
|
35
|
+
- lib/watson/cluster.rb
|
36
|
+
- lib/watson/conversation.rb
|
37
|
+
- lib/watson/retrieve_and_rank.rb
|
38
|
+
homepage: https://github.com/katorres02/w-ruby
|
39
|
+
licenses:
|
40
|
+
- MIT
|
41
|
+
metadata: {}
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 1.9.3
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
requirements: []
|
57
|
+
rubyforge_project:
|
58
|
+
rubygems_version: 2.4.6
|
59
|
+
signing_key:
|
60
|
+
specification_version: 4
|
61
|
+
summary: REST API client for IBM Watson™ services
|
62
|
+
test_files: []
|