memori-client 0.0.6

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.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/lib/memori_client/backend/resource.rb +32 -0
  3. data/lib/memori_client/backend/resources.rb +8 -0
  4. data/lib/memori_client/backend/v2/action_log.rb +28 -0
  5. data/lib/memori_client/backend/v2/asset.rb +54 -0
  6. data/lib/memori_client/backend/v2/consumption_log.rb +43 -0
  7. data/lib/memori_client/backend/v2/integration.rb +88 -0
  8. data/lib/memori_client/backend/v2/invitation.rb +118 -0
  9. data/lib/memori_client/backend/v2/memori.rb +325 -0
  10. data/lib/memori_client/backend/v2/notification.rb +22 -0
  11. data/lib/memori_client/backend/v2/user.rb +378 -0
  12. data/lib/memori_client/configuration.rb +15 -0
  13. data/lib/memori_client/engine/resource.rb +24 -0
  14. data/lib/memori_client/engine/resources.rb +14 -0
  15. data/lib/memori_client/engine/v2/chat_log.rb +46 -0
  16. data/lib/memori_client/engine/v2/context_var.rb +32 -0
  17. data/lib/memori_client/engine/v2/correlation_pair.rb +34 -0
  18. data/lib/memori_client/engine/v2/dialog.rb +108 -0
  19. data/lib/memori_client/engine/v2/event_log.rb +49 -0
  20. data/lib/memori_client/engine/v2/intent.rb +166 -0
  21. data/lib/memori_client/engine/v2/memori.rb +111 -0
  22. data/lib/memori_client/engine/v2/memory.rb +141 -0
  23. data/lib/memori_client/engine/v2/nlp.rb +60 -0
  24. data/lib/memori_client/engine/v2/search.rb +73 -0
  25. data/lib/memori_client/engine/v2/session.rb +39 -0
  26. data/lib/memori_client/engine/v2/stat.rb +42 -0
  27. data/lib/memori_client/engine/v2/unanswered_question.rb +34 -0
  28. data/lib/memori_client/engine/v2/web_hook.rb +42 -0
  29. data/lib/memori_client/http_client.rb +74 -0
  30. data/lib/memori_client.rb +48 -0
  31. metadata +71 -0
@@ -0,0 +1,42 @@
1
+ # Generated on 2022-12-15 16:37:37 +0000
2
+ class MemoriClient::Engine::V2::Stat < MemoriClient::Engine::Resource
3
+ # GET /memori/v2/Statistics/{strSessionID}
4
+ # Computes usage statistics for the Memori of the current session.
5
+ # Params list:
6
+ # @param [string] strSessionID The session ID. required
7
+ # statistics(strSessionID:)
8
+ def self.statistics(**args)
9
+ exec_http_request('get', '/memori/v2/Statistics/{strSessionID}', args)
10
+ end
11
+
12
+ # GET /memori/v2/ContentQualityIndexes/{strMemoriID}
13
+ # Computes content quality indexes for a Memori.
14
+ # Params list:
15
+ # @param [string] strMemoriID The Memori object ID. required
16
+ # content_quality_indexes(strMemoriID:)
17
+ def self.content_quality_indexes(**args)
18
+ exec_http_request('get', '/memori/v2/ContentQualityIndexes/{strMemoriID}', args)
19
+ end
20
+
21
+ # GET /memori/v2/TextQualityIndexes/{strSessionID}
22
+ # Computes text quality indexes for a Memori.
23
+ # Params list:
24
+ # @param [string] strSessionID The session ID. required
25
+ # text_quality_indexes(strSessionID:)
26
+ def self.text_quality_indexes(**args)
27
+ exec_http_request('get', '/memori/v2/TextQualityIndexes/{strSessionID}', args)
28
+ end
29
+
30
+ # GET /memori/v2/SessionStatistics/{strMemoriID}/{strDateFrom}/{strDateTo}
31
+ # Computes session statistics for the specified Memori in a specific date internval.
32
+ # Params list:
33
+ # @param [string] strMemoriID The Memori object ID. required
34
+ # @param [string] strDateFrom The optional begin of the date interval, in UTC time, in the format yyyyMMddHHmmssfff. optional
35
+ # @param [string] strDateTo The optional end of the date interval, in UTC time, in the format yyyyMMddHHmmssfff. optional
36
+ # session_statistics(strMemoriID:, strDateFrom: nil, strDateTo: nil)
37
+ def self.session_statistics(**args)
38
+ exec_http_request('get', '/memori/v2/SessionStatistics/{strMemoriID}/{strDateFrom}/{strDateTo}', args)
39
+ end
40
+
41
+
42
+ end
@@ -0,0 +1,34 @@
1
+ # Generated on 2022-12-15 16:37:37 +0000
2
+ class MemoriClient::Engine::V2::UnansweredQuestion < MemoriClient::Engine::Resource
3
+ # GET /memori/v2/UnansweredQuestions/{strSessionID}
4
+ # Lists all Unanswered Question objects.
5
+ # Params list:
6
+ # @param [string] strSessionID The session ID. required
7
+ # unanswered_questions(strSessionID:)
8
+ def self.unanswered_questions(**args)
9
+ exec_http_request('get', '/memori/v2/UnansweredQuestions/{strSessionID}', args)
10
+ end
11
+
12
+ # GET /memori/v2/UnansweredQuestions/{strSessionID}/{from}/{howMany}
13
+ # Lists Unanswered Question objects with pagination.
14
+ # Params list:
15
+ # @param [string] strSessionID The session ID. required
16
+ # @param [integer] from The 0-based index of the first Unanswered Question object to list. required
17
+ # @param [integer] howMany The number of the Unanswered Question objects to list. required
18
+ # paginated_unanswered_questions(strSessionID:, from:, howMany:)
19
+ def self.paginated_unanswered_questions(**args)
20
+ exec_http_request('get', '/memori/v2/UnansweredQuestions/{strSessionID}/{from}/{howMany}', args)
21
+ end
22
+
23
+ # DELETE /memori/v2/UnansweredQuestion/{strSessionID}/{strUnansweredQuestionID}
24
+ # Removes an existing Unanswered Question object.
25
+ # Params list:
26
+ # @param [string] strSessionID The session ID. required
27
+ # @param [string] strUnansweredQuestionID The Unanswered Question object ID. required
28
+ # unanswered_question(strSessionID:, strUnansweredQuestionID:)
29
+ def self.unanswered_question(**args)
30
+ exec_http_request('delete', '/memori/v2/UnansweredQuestion/{strSessionID}/{strUnansweredQuestionID}', args)
31
+ end
32
+
33
+
34
+ end
@@ -0,0 +1,42 @@
1
+ # Generated on 2022-12-15 16:37:37 +0000
2
+ class MemoriClient::Engine::V2::WebHook < MemoriClient::Engine::Resource
3
+ # POST /memori/v2/TestSlot
4
+ # Returns test slot values.
5
+ # Params list:
6
+ # @param [object] payload request payload. optional
7
+ # @param [string] payload.slotName . optional
8
+ # @param [integer] payload.requestID . optional
9
+ # @param [string] payload.requestDateTime . optional
10
+ # @param [number] payload.requestValidityMinutes . optional
11
+ # @param [string] payload.memoriID . optional
12
+ # @param [string] payload.culture . optional
13
+ # test_slot()
14
+ def self.test_slot(**args)
15
+ exec_http_request('post', '/memori/v2/TestSlot', args)
16
+ end
17
+
18
+ # POST /memori/v2/TestIntent
19
+ # Returns test intent results.
20
+ # Params list:
21
+ # @param [object] payload request payload. optional
22
+ # @param [string] payload.intentName . optional
23
+ # @param [string] payload.utterance . optional
24
+ # @param [object] payload.slotValues . optional
25
+ # @param [string] payload.currentTag . optional
26
+ # @param [boolean] payload.currentTagAuthenticated . optional
27
+ # @param [string] payload.timeZone . optional
28
+ # @param [string] payload.beginUTC . optional
29
+ # @param [string] payload.endUTC . optional
30
+ # @param [object] payload.contextVars . optional
31
+ # @param [integer] payload.requestID . optional
32
+ # @param [string] payload.requestDateTime . optional
33
+ # @param [number] payload.requestValidityMinutes . optional
34
+ # @param [string] payload.memoriID . optional
35
+ # @param [string] payload.culture . optional
36
+ # test_intent()
37
+ def self.test_intent(**args)
38
+ exec_http_request('post', '/memori/v2/TestIntent', args)
39
+ end
40
+
41
+
42
+ end
@@ -0,0 +1,74 @@
1
+ require 'net/http'
2
+
3
+ class MemoriClient::HttpClient
4
+ attr_reader :request_id
5
+
6
+ def initialize(request_id: nil)
7
+ @request_id = request_id || SecureRandom.uuid
8
+ end
9
+
10
+ def get(url, headers: {}, basic_auth: nil)
11
+ uri = URI.parse url
12
+ request = Net::HTTP::Get.new(uri)
13
+ headers.each { |k, v| request[k] = v }
14
+ request["Content-Type"] ||= "application/json" unless headers.key?('Content-Type')
15
+ request.basic_auth(*basic_auth) if basic_auth.present?
16
+
17
+ req_options = { use_ssl: uri.scheme == "https" }
18
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
19
+ http.request(request)
20
+ end
21
+
22
+ handle_response(response, request)
23
+ end
24
+
25
+ def patch(url, headers: {}, payload:)
26
+ url = URI(url)
27
+ https = Net::HTTP.new(url.host, url.port)
28
+ https.use_ssl = url.scheme == 'https'
29
+ request = Net::HTTP::Patch.new(url)
30
+ request["Content-Type"] = "application/json" unless headers.key?('Content-Type')
31
+ headers.each { |k, v| request[k] = v }
32
+ request.body = JSON.dump(payload)
33
+ response = https.request(request)
34
+ handle_response(response, request)
35
+ end
36
+
37
+ def post(url, headers: {}, payload:)
38
+ url = URI(url)
39
+ https = Net::HTTP.new(url.host, url.port)
40
+ https.use_ssl = url.scheme == 'https'
41
+ request = Net::HTTP::Post.new(url)
42
+ request["Content-Type"] = "application/json" unless headers.key?('Content-Type')
43
+ headers.each { |k, v| request[k] = v }
44
+ request.body = JSON.dump(payload)
45
+ response = https.request(request)
46
+ handle_response(response, request)
47
+ end
48
+
49
+ def delete(url, headers: {}, payload: {})
50
+ url = URI(url)
51
+ https = Net::HTTP.new(url.host, url.port)
52
+ https.use_ssl = url.scheme == 'https'
53
+ request = Net::HTTP::Delete.new(url)
54
+ request["Content-Type"] = "application/json" unless headers.key?('Content-Type')
55
+ headers.each { |k, v| request[k] = v }
56
+ request.body = JSON.dump(payload)
57
+ response = https.request(request)
58
+ handle_response(response, request)
59
+ end
60
+
61
+ private
62
+
63
+ def handle_response(response, request)
64
+ body = response.read_body
65
+ if request['Content-Type'] == 'application/json'
66
+ [
67
+ response.code,
68
+ (body.blank? ? {} : JSON.parse(body))
69
+ ]
70
+ else
71
+ [response.code, body]
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,48 @@
1
+ module MemoriClient
2
+ module Backend
3
+ module V1
4
+
5
+ end
6
+
7
+ module V2
8
+
9
+ end
10
+ end
11
+
12
+ module Engine
13
+ module V1
14
+
15
+ end
16
+
17
+ module V2
18
+
19
+ end
20
+ end
21
+
22
+ class << self
23
+ # Instantiate the Configuration singleton
24
+ # or return it. Remember that the instance
25
+ # has attribute readers so that we can access
26
+ # the configured values
27
+ def configuration
28
+ @configuration ||= Configuration.new
29
+ end
30
+
31
+ # This is the configure block definition.
32
+ # The configuration method will return the
33
+ # Configuration singleton, which is then yielded
34
+ # to the configure block. Then it's just a matter
35
+ # of using the attribute accessors we previously defined
36
+ def configure
37
+ yield(configuration)
38
+ end
39
+ end
40
+ end
41
+
42
+ require 'memori_client/configuration'
43
+ require "memori_client/http_client"
44
+ require "memori_client/backend/resource"
45
+ require "memori_client/backend/resources"
46
+ require "memori_client/engine/resource"
47
+ require "memori_client/engine/resources"
48
+
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memori-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - Stefano Lampis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-12-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Memori Client to interact with Memori backend and engine API
14
+ email: me@stefanolampis.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/memori_client.rb
20
+ - lib/memori_client/backend/resource.rb
21
+ - lib/memori_client/backend/resources.rb
22
+ - lib/memori_client/backend/v2/action_log.rb
23
+ - lib/memori_client/backend/v2/asset.rb
24
+ - lib/memori_client/backend/v2/consumption_log.rb
25
+ - lib/memori_client/backend/v2/integration.rb
26
+ - lib/memori_client/backend/v2/invitation.rb
27
+ - lib/memori_client/backend/v2/memori.rb
28
+ - lib/memori_client/backend/v2/notification.rb
29
+ - lib/memori_client/backend/v2/user.rb
30
+ - lib/memori_client/configuration.rb
31
+ - lib/memori_client/engine/resource.rb
32
+ - lib/memori_client/engine/resources.rb
33
+ - lib/memori_client/engine/v2/chat_log.rb
34
+ - lib/memori_client/engine/v2/context_var.rb
35
+ - lib/memori_client/engine/v2/correlation_pair.rb
36
+ - lib/memori_client/engine/v2/dialog.rb
37
+ - lib/memori_client/engine/v2/event_log.rb
38
+ - lib/memori_client/engine/v2/intent.rb
39
+ - lib/memori_client/engine/v2/memori.rb
40
+ - lib/memori_client/engine/v2/memory.rb
41
+ - lib/memori_client/engine/v2/nlp.rb
42
+ - lib/memori_client/engine/v2/search.rb
43
+ - lib/memori_client/engine/v2/session.rb
44
+ - lib/memori_client/engine/v2/stat.rb
45
+ - lib/memori_client/engine/v2/unanswered_question.rb
46
+ - lib/memori_client/engine/v2/web_hook.rb
47
+ - lib/memori_client/http_client.rb
48
+ homepage: https://rubygems.org/gems/memori_client-client
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubygems_version: 3.3.7
68
+ signing_key:
69
+ specification_version: 4
70
+ summary: Memori Client
71
+ test_files: []