memori-client 0.0.9 → 0.1.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/memori_client/backend/resource.rb +37 -30
- data/lib/memori_client/backend/resources.rb +4 -0
- data/lib/memori_client/backend/v1/asset.rb +94 -0
- data/lib/memori_client/backend/v2/action_log.rb +11 -7
- data/lib/memori_client/backend/v2/asset.rb +33 -13
- data/lib/memori_client/backend/v2/badge.rb +60 -0
- data/lib/memori_client/backend/v2/consumption_log.rb +16 -10
- data/lib/memori_client/backend/v2/import_export.rb +159 -0
- data/lib/memori_client/backend/v2/integration.rb +65 -21
- data/lib/memori_client/backend/v2/invitation.rb +88 -24
- data/lib/memori_client/backend/v2/memori.rb +364 -118
- data/lib/memori_client/backend/v2/memori_list.rb +118 -0
- data/lib/memori_client/backend/v2/notification.rb +11 -7
- data/lib/memori_client/backend/v2/tenant.rb +194 -4
- data/lib/memori_client/backend/v2/user.rb +620 -106
- data/lib/memori_client/engine/resource.rb +36 -29
- data/lib/memori_client/engine/resources.rb +6 -0
- data/lib/memori_client/engine/v2/chat_log.rb +21 -13
- data/lib/memori_client/engine/v2/completion_log.rb +17 -0
- data/lib/memori_client/engine/v2/context_var.rb +16 -10
- data/lib/memori_client/engine/v2/correlation_pair.rb +50 -10
- data/lib/memori_client/engine/v2/custom_dictionary.rb +113 -0
- data/lib/memori_client/engine/v2/dialog.rb +99 -34
- data/lib/memori_client/engine/v2/event_log.rb +21 -13
- data/lib/memori_client/engine/v2/intent.rb +123 -43
- data/lib/memori_client/engine/v2/localization_key.rb +108 -0
- data/lib/memori_client/engine/v2/medium.rb +129 -0
- data/lib/memori_client/engine/v2/memori.rb +209 -16
- data/lib/memori_client/engine/v2/memory.rb +123 -24
- data/lib/memori_client/engine/v2/nlp.rb +162 -22
- data/lib/memori_client/engine/v2/person.rb +125 -0
- data/lib/memori_client/engine/v2/prompted_question.rb +121 -0
- data/lib/memori_client/engine/v2/search.rb +67 -10
- data/lib/memori_client/engine/v2/session.rb +31 -11
- data/lib/memori_client/engine/v2/stat.rb +24 -15
- data/lib/memori_client/engine/v2/unanswered_question.rb +56 -10
- data/lib/memori_client/engine/v2/web_hook.rb +62 -25
- data/lib/memori_client/http_client.rb +1 -1
- data/lib/memori_client/resource.rb +56 -0
- data/lib/memori_client.rb +4 -0
- metadata +13 -2
@@ -1,41 +1,50 @@
|
|
1
|
-
# Generated on 2023-
|
1
|
+
# Generated on 2023-10-20 07:44:40 +0000
|
2
2
|
class MemoriClient::Engine::V2::Stat < MemoriClient::Engine::Resource
|
3
3
|
# GET /memori/v2/Statistics/{strSessionID}
|
4
4
|
# Computes usage statistics for the Memori of the current session.
|
5
5
|
# Params list:
|
6
6
|
# @param [string] strSessionID The session ID. required
|
7
|
-
#
|
8
|
-
def self.
|
9
|
-
|
7
|
+
# get_statistics(strSessionID:)
|
8
|
+
def self.get_statistics(strSessionID:)
|
9
|
+
args = build_arguments(binding)
|
10
|
+
|
11
|
+
exec_http_request('get', '/memori/v2/Statistics/{strSessionID}', **args)
|
10
12
|
end
|
11
13
|
|
12
|
-
# GET /memori/v2/ContentQualityIndexes/{strMemoriID}
|
14
|
+
# GET /memori/v2/ContentQualityIndexes/{strMemoriID}/{strLatestUpdate}
|
13
15
|
# Computes content quality indexes for a Memori.
|
14
16
|
# Params list:
|
15
17
|
# @param [string] strMemoriID The Memori object ID. required
|
16
|
-
#
|
17
|
-
|
18
|
-
|
18
|
+
# @param [string] strLatestUpdate The optional latest update timestamp, in UTC time, in the format yyyyMMddHHmmssfff. optional
|
19
|
+
# get_content_quality_indexes(strMemoriID:, strLatestUpdate: nil)
|
20
|
+
def self.get_content_quality_indexes(strMemoriID:, strLatestUpdate: nil)
|
21
|
+
args = build_arguments(binding)
|
22
|
+
|
23
|
+
exec_http_request('get', '/memori/v2/ContentQualityIndexes/{strMemoriID}/{strLatestUpdate}', **args)
|
19
24
|
end
|
20
25
|
|
21
26
|
# GET /memori/v2/TextQualityIndexes/{strSessionID}
|
22
27
|
# Computes text quality indexes for a Memori.
|
23
28
|
# Params list:
|
24
29
|
# @param [string] strSessionID The session ID. required
|
25
|
-
#
|
26
|
-
def self.
|
27
|
-
|
30
|
+
# get_text_quality_indexes(strSessionID:)
|
31
|
+
def self.get_text_quality_indexes(strSessionID:)
|
32
|
+
args = build_arguments(binding)
|
33
|
+
|
34
|
+
exec_http_request('get', '/memori/v2/TextQualityIndexes/{strSessionID}', **args)
|
28
35
|
end
|
29
36
|
|
30
37
|
# GET /memori/v2/SessionStatistics/{strMemoriID}/{strDateFrom}/{strDateTo}
|
31
|
-
# Computes session statistics for the specified Memori in a specific date
|
38
|
+
# Computes session statistics for the specified Memori in a specific date interval.
|
32
39
|
# Params list:
|
33
40
|
# @param [string] strMemoriID The Memori object ID. required
|
34
41
|
# @param [string] strDateFrom The optional begin of the date interval, in UTC time, in the format yyyyMMddHHmmssfff. optional
|
35
42
|
# @param [string] strDateTo The optional end of the date interval, in UTC time, in the format yyyyMMddHHmmssfff. optional
|
36
|
-
#
|
37
|
-
def self.
|
38
|
-
|
43
|
+
# get_session_statistics(strMemoriID:, strDateFrom: nil, strDateTo: nil)
|
44
|
+
def self.get_session_statistics(strMemoriID:, strDateFrom: nil, strDateTo: nil)
|
45
|
+
args = build_arguments(binding)
|
46
|
+
|
47
|
+
exec_http_request('get', '/memori/v2/SessionStatistics/{strMemoriID}/{strDateFrom}/{strDateTo}', **args)
|
39
48
|
end
|
40
49
|
|
41
50
|
|
@@ -1,12 +1,14 @@
|
|
1
|
-
# Generated on 2023-
|
1
|
+
# Generated on 2023-10-20 07:44:40 +0000
|
2
2
|
class MemoriClient::Engine::V2::UnansweredQuestion < MemoriClient::Engine::Resource
|
3
3
|
# GET /memori/v2/UnansweredQuestions/{strSessionID}
|
4
4
|
# Lists all Unanswered Question objects.
|
5
5
|
# Params list:
|
6
6
|
# @param [string] strSessionID The session ID. required
|
7
|
-
#
|
8
|
-
def self.
|
9
|
-
|
7
|
+
# list_unanswered_questions(strSessionID:)
|
8
|
+
def self.list_unanswered_questions(strSessionID:)
|
9
|
+
args = build_arguments(binding)
|
10
|
+
|
11
|
+
exec_http_request('get', '/memori/v2/UnansweredQuestions/{strSessionID}', **args)
|
10
12
|
end
|
11
13
|
|
12
14
|
# GET /memori/v2/UnansweredQuestions/{strSessionID}/{from}/{howMany}
|
@@ -15,9 +17,51 @@ class MemoriClient::Engine::V2::UnansweredQuestion < MemoriClient::Engine::Resou
|
|
15
17
|
# @param [string] strSessionID The session ID. required
|
16
18
|
# @param [integer] from The 0-based index of the first Unanswered Question object to list. required
|
17
19
|
# @param [integer] howMany The number of the Unanswered Question objects to list. required
|
18
|
-
#
|
19
|
-
def self.
|
20
|
-
|
20
|
+
# list_unanswered_questions_paginated(strSessionID:, from:, howMany:)
|
21
|
+
def self.list_unanswered_questions_paginated(strSessionID:, from:, howMany:)
|
22
|
+
args = build_arguments(binding)
|
23
|
+
|
24
|
+
exec_http_request('get', '/memori/v2/UnansweredQuestions/{strSessionID}/{from}/{howMany}', **args)
|
25
|
+
end
|
26
|
+
|
27
|
+
# POST /memori/v2/UnansweredQuestion/{strSessionID}
|
28
|
+
# Adds a new Unanswered Question object.
|
29
|
+
# Params list:
|
30
|
+
# @param [string] strSessionID The session ID. required
|
31
|
+
# @param [object] payload request payload. optional
|
32
|
+
# @param [string] payload.unansweredQuestionID . optional
|
33
|
+
# @param [string] payload.text . optional
|
34
|
+
# @param [object] payload.contextVars . optional
|
35
|
+
# @param [integer] payload.occurrences . optional
|
36
|
+
# @param [string] payload.receiverID . optional
|
37
|
+
# @param [string] payload.receiverTag . optional
|
38
|
+
# @param [string] payload.receiverName . optional
|
39
|
+
# @param [array] payload.suggestions . optional
|
40
|
+
# @param [string] payload.creationTimestamp . optional
|
41
|
+
# @param [string] payload.creationSessionID . optional
|
42
|
+
# @param [string] payload.lastChangeTimestamp . optional
|
43
|
+
# @param [string] payload.lastChangeSessionID . optional
|
44
|
+
# add_unanswered_question(strSessionID:, payload: {})
|
45
|
+
def self.add_unanswered_question(strSessionID:, payload: {})
|
46
|
+
args = build_arguments(binding)
|
47
|
+
payload_keys = [
|
48
|
+
'contextVars',
|
49
|
+
'creationSessionID',
|
50
|
+
'creationTimestamp',
|
51
|
+
'lastChangeSessionID',
|
52
|
+
'lastChangeTimestamp',
|
53
|
+
'occurrences',
|
54
|
+
'receiverID',
|
55
|
+
'receiverName',
|
56
|
+
'receiverTag',
|
57
|
+
'suggestions',
|
58
|
+
'text',
|
59
|
+
'unansweredQuestionID',
|
60
|
+
]
|
61
|
+
payload_required_keys = %w[]
|
62
|
+
validate_payload!(args[:payload], keys: payload_keys, required: payload_required_keys)
|
63
|
+
|
64
|
+
exec_http_request('post', '/memori/v2/UnansweredQuestion/{strSessionID}', **args)
|
21
65
|
end
|
22
66
|
|
23
67
|
# DELETE /memori/v2/UnansweredQuestion/{strSessionID}/{strUnansweredQuestionID}
|
@@ -25,9 +69,11 @@ class MemoriClient::Engine::V2::UnansweredQuestion < MemoriClient::Engine::Resou
|
|
25
69
|
# Params list:
|
26
70
|
# @param [string] strSessionID The session ID. required
|
27
71
|
# @param [string] strUnansweredQuestionID The Unanswered Question object ID. required
|
28
|
-
#
|
29
|
-
def self.
|
30
|
-
|
72
|
+
# remove_unanswered_question(strSessionID:, strUnansweredQuestionID:)
|
73
|
+
def self.remove_unanswered_question(strSessionID:, strUnansweredQuestionID:)
|
74
|
+
args = build_arguments(binding)
|
75
|
+
|
76
|
+
exec_http_request('delete', '/memori/v2/UnansweredQuestion/{strSessionID}/{strUnansweredQuestionID}', **args)
|
31
77
|
end
|
32
78
|
|
33
79
|
|
@@ -1,44 +1,81 @@
|
|
1
|
-
# Generated on 2023-
|
1
|
+
# Generated on 2023-10-20 07:44:40 +0000
|
2
2
|
class MemoriClient::Engine::V2::WebHook < MemoriClient::Engine::Resource
|
3
3
|
# POST /memori/v2/TestSlot
|
4
4
|
# Returns test slot values.
|
5
5
|
# Params list:
|
6
6
|
# @param [object] payload request payload. optional
|
7
|
-
# @param [string] payload.slotName .
|
8
|
-
# @param [integer] payload.requestID .
|
9
|
-
# @param [string] payload.requestDateTime .
|
10
|
-
# @param [number] payload.requestValidityMinutes .
|
11
|
-
# @param [string] payload.memoriID .
|
12
|
-
# @param [string] payload.culture .
|
13
|
-
# test_slot()
|
14
|
-
def self.test_slot(
|
15
|
-
|
7
|
+
# @param [string] payload.slotName . required
|
8
|
+
# @param [integer] payload.requestID . required
|
9
|
+
# @param [string] payload.requestDateTime . required
|
10
|
+
# @param [number] payload.requestValidityMinutes . required
|
11
|
+
# @param [string] payload.memoriID . required
|
12
|
+
# @param [string] payload.culture . required
|
13
|
+
# test_slot(payload: {})
|
14
|
+
def self.test_slot(payload: {})
|
15
|
+
args = build_arguments(binding)
|
16
|
+
payload_keys = [
|
17
|
+
'culture',
|
18
|
+
'memoriID',
|
19
|
+
'requestDateTime',
|
20
|
+
'requestID',
|
21
|
+
'requestValidityMinutes',
|
22
|
+
'slotName',
|
23
|
+
]
|
24
|
+
payload_required_keys = %w[culture memoriID requestDateTime requestID requestValidityMinutes slotName]
|
25
|
+
validate_payload!(args[:payload], keys: payload_keys, required: payload_required_keys)
|
26
|
+
|
27
|
+
exec_http_request('post', '/memori/v2/TestSlot', **args)
|
16
28
|
end
|
17
29
|
|
18
30
|
# POST /memori/v2/TestIntent
|
19
31
|
# Returns test intent results.
|
20
32
|
# Params list:
|
21
33
|
# @param [object] payload request payload. optional
|
22
|
-
# @param [string] payload.intentName .
|
34
|
+
# @param [string] payload.intentName . required
|
23
35
|
# @param [string] payload.utterance . optional
|
24
|
-
# @param [object] payload.slotValues .
|
25
|
-
# @param [string] payload.sessionID .
|
36
|
+
# @param [object] payload.slotValues . required
|
37
|
+
# @param [string] payload.sessionID . required
|
26
38
|
# @param [string] payload.currentTag . optional
|
27
39
|
# @param [boolean] payload.currentTagAuthenticated . optional
|
28
40
|
# @param [string] payload.currentDateUTC . optional
|
29
41
|
# @param [] payload.currentPlace . optional
|
30
|
-
# @param [string] payload.timeZone .
|
31
|
-
# @param [string] payload.beginUTC .
|
32
|
-
# @param [string] payload.endUTC .
|
33
|
-
# @param [object] payload.contextVars .
|
34
|
-
# @param [
|
35
|
-
# @param [
|
36
|
-
# @param [
|
37
|
-
# @param [
|
38
|
-
# @param [string] payload.
|
39
|
-
#
|
40
|
-
|
41
|
-
|
42
|
+
# @param [string] payload.timeZone . required
|
43
|
+
# @param [string] payload.beginUTC . required
|
44
|
+
# @param [string] payload.endUTC . required
|
45
|
+
# @param [object] payload.contextVars . required
|
46
|
+
# @param [array] payload.transitionHistory . required
|
47
|
+
# @param [integer] payload.requestID . required
|
48
|
+
# @param [string] payload.requestDateTime . required
|
49
|
+
# @param [number] payload.requestValidityMinutes . required
|
50
|
+
# @param [string] payload.memoriID . required
|
51
|
+
# @param [string] payload.culture . required
|
52
|
+
# test_intent(payload: {})
|
53
|
+
def self.test_intent(payload: {})
|
54
|
+
args = build_arguments(binding)
|
55
|
+
payload_keys = [
|
56
|
+
'beginUTC',
|
57
|
+
'contextVars',
|
58
|
+
'culture',
|
59
|
+
'currentDateUTC',
|
60
|
+
'currentPlace',
|
61
|
+
'currentTag',
|
62
|
+
'currentTagAuthenticated',
|
63
|
+
'endUTC',
|
64
|
+
'intentName',
|
65
|
+
'memoriID',
|
66
|
+
'requestDateTime',
|
67
|
+
'requestID',
|
68
|
+
'requestValidityMinutes',
|
69
|
+
'sessionID',
|
70
|
+
'slotValues',
|
71
|
+
'timeZone',
|
72
|
+
'transitionHistory',
|
73
|
+
'utterance',
|
74
|
+
]
|
75
|
+
payload_required_keys = %w[beginUTC contextVars culture endUTC intentName memoriID requestDateTime requestID requestValidityMinutes sessionID slotValues timeZone transitionHistory]
|
76
|
+
validate_payload!(args[:payload], keys: payload_keys, required: payload_required_keys)
|
77
|
+
|
78
|
+
exec_http_request('post', '/memori/v2/TestIntent', **args)
|
42
79
|
end
|
43
80
|
|
44
81
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
class MemoriClient::Resource
|
2
|
+
def self.build_arguments(the_binding)
|
3
|
+
the_binding.local_variables.each_with_object({}) do |key, acc|
|
4
|
+
value = the_binding.local_variable_get(key)
|
5
|
+
acc[key] = value
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.exec_http_request(method, path, args)
|
10
|
+
stop = false
|
11
|
+
processed_tokens = []
|
12
|
+
path.split('/').each do |token|
|
13
|
+
break if stop == true
|
14
|
+
if token =~ /^{.*}$/
|
15
|
+
param_name = token.match(/^{(.*)}$/).captures.first
|
16
|
+
if args[param_name.to_sym].blank?
|
17
|
+
stop = true
|
18
|
+
else
|
19
|
+
processed_tokens << args[param_name.to_sym]
|
20
|
+
end
|
21
|
+
else
|
22
|
+
processed_tokens << token
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
url = processed_tokens.join('/')
|
27
|
+
url = build_url(url)
|
28
|
+
http = MemoriClient::HttpClient.new
|
29
|
+
|
30
|
+
case method
|
31
|
+
when 'get'
|
32
|
+
status, body = http.get(url)
|
33
|
+
else
|
34
|
+
status, body = http.send(method, url, payload: args[:payload])
|
35
|
+
end
|
36
|
+
|
37
|
+
[status, body]
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.build_url(_url)
|
41
|
+
raise NotImplementedError
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.validate_payload!(payload, keys:, required:)
|
45
|
+
bad_names = []
|
46
|
+
payload.each do |k, v|
|
47
|
+
unless keys.include?(k.to_s)
|
48
|
+
bad_names << k
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if bad_names.size > 0
|
53
|
+
raise ArgumentError.new "Found invalid keys: #{bad_names.join(', ')}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/memori_client.rb
CHANGED
@@ -39,8 +39,12 @@ module MemoriClient
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
require 'securerandom'
|
43
|
+
require 'uri'
|
44
|
+
require 'json'
|
42
45
|
require 'memori_client/configuration'
|
43
46
|
require "memori_client/http_client"
|
47
|
+
require "memori_client/resource"
|
44
48
|
require "memori_client/backend/resource"
|
45
49
|
require "memori_client/backend/resources"
|
46
50
|
require "memori_client/engine/resource"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memori-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Lampis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Memori Client to interact with Memori backend and engine API
|
14
14
|
email: me@stefanolampis.com
|
@@ -19,12 +19,16 @@ files:
|
|
19
19
|
- lib/memori_client.rb
|
20
20
|
- lib/memori_client/backend/resource.rb
|
21
21
|
- lib/memori_client/backend/resources.rb
|
22
|
+
- lib/memori_client/backend/v1/asset.rb
|
22
23
|
- lib/memori_client/backend/v2/action_log.rb
|
23
24
|
- lib/memori_client/backend/v2/asset.rb
|
25
|
+
- lib/memori_client/backend/v2/badge.rb
|
24
26
|
- lib/memori_client/backend/v2/consumption_log.rb
|
27
|
+
- lib/memori_client/backend/v2/import_export.rb
|
25
28
|
- lib/memori_client/backend/v2/integration.rb
|
26
29
|
- lib/memori_client/backend/v2/invitation.rb
|
27
30
|
- lib/memori_client/backend/v2/memori.rb
|
31
|
+
- lib/memori_client/backend/v2/memori_list.rb
|
28
32
|
- lib/memori_client/backend/v2/notification.rb
|
29
33
|
- lib/memori_client/backend/v2/tenant.rb
|
30
34
|
- lib/memori_client/backend/v2/user.rb
|
@@ -32,20 +36,27 @@ files:
|
|
32
36
|
- lib/memori_client/engine/resource.rb
|
33
37
|
- lib/memori_client/engine/resources.rb
|
34
38
|
- lib/memori_client/engine/v2/chat_log.rb
|
39
|
+
- lib/memori_client/engine/v2/completion_log.rb
|
35
40
|
- lib/memori_client/engine/v2/context_var.rb
|
36
41
|
- lib/memori_client/engine/v2/correlation_pair.rb
|
42
|
+
- lib/memori_client/engine/v2/custom_dictionary.rb
|
37
43
|
- lib/memori_client/engine/v2/dialog.rb
|
38
44
|
- lib/memori_client/engine/v2/event_log.rb
|
39
45
|
- lib/memori_client/engine/v2/intent.rb
|
46
|
+
- lib/memori_client/engine/v2/localization_key.rb
|
47
|
+
- lib/memori_client/engine/v2/medium.rb
|
40
48
|
- lib/memori_client/engine/v2/memori.rb
|
41
49
|
- lib/memori_client/engine/v2/memory.rb
|
42
50
|
- lib/memori_client/engine/v2/nlp.rb
|
51
|
+
- lib/memori_client/engine/v2/person.rb
|
52
|
+
- lib/memori_client/engine/v2/prompted_question.rb
|
43
53
|
- lib/memori_client/engine/v2/search.rb
|
44
54
|
- lib/memori_client/engine/v2/session.rb
|
45
55
|
- lib/memori_client/engine/v2/stat.rb
|
46
56
|
- lib/memori_client/engine/v2/unanswered_question.rb
|
47
57
|
- lib/memori_client/engine/v2/web_hook.rb
|
48
58
|
- lib/memori_client/http_client.rb
|
59
|
+
- lib/memori_client/resource.rb
|
49
60
|
homepage: https://rubygems.org/gems/memori_client-client
|
50
61
|
licenses:
|
51
62
|
- MIT
|