assemblyai 1.0.0.pre.beta

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 (86) hide show
  1. checksums.yaml +7 -0
  2. data/lib/assemblyai/files/client.rb +63 -0
  3. data/lib/assemblyai/files/types/uploaded_file.rb +47 -0
  4. data/lib/assemblyai/lemur/client.rb +390 -0
  5. data/lib/assemblyai/lemur/types/lemur_action_items_response.rb +52 -0
  6. data/lib/assemblyai/lemur/types/lemur_base_params.rb +99 -0
  7. data/lib/assemblyai/lemur/types/lemur_base_params_context.rb +75 -0
  8. data/lib/assemblyai/lemur/types/lemur_base_response.rb +47 -0
  9. data/lib/assemblyai/lemur/types/lemur_model.rb +13 -0
  10. data/lib/assemblyai/lemur/types/lemur_question.rb +74 -0
  11. data/lib/assemblyai/lemur/types/lemur_question_answer.rb +53 -0
  12. data/lib/assemblyai/lemur/types/lemur_question_answer_response.rb +56 -0
  13. data/lib/assemblyai/lemur/types/lemur_question_context.rb +75 -0
  14. data/lib/assemblyai/lemur/types/lemur_summary_response.rb +52 -0
  15. data/lib/assemblyai/lemur/types/lemur_task_response.rb +52 -0
  16. data/lib/assemblyai/lemur/types/purge_lemur_request_data_response.rb +58 -0
  17. data/lib/assemblyai/realtime/client.rb +61 -0
  18. data/lib/assemblyai/realtime/types/audio_data.rb +7 -0
  19. data/lib/assemblyai/realtime/types/audio_encoding.rb +8 -0
  20. data/lib/assemblyai/realtime/types/final_transcript.rb +107 -0
  21. data/lib/assemblyai/realtime/types/message_type.rb +13 -0
  22. data/lib/assemblyai/realtime/types/partial_transcript.rb +94 -0
  23. data/lib/assemblyai/realtime/types/realtime_base_message.rb +48 -0
  24. data/lib/assemblyai/realtime/types/realtime_base_transcript.rb +87 -0
  25. data/lib/assemblyai/realtime/types/realtime_error.rb +47 -0
  26. data/lib/assemblyai/realtime/types/realtime_message.rb +115 -0
  27. data/lib/assemblyai/realtime/types/realtime_temporary_token_response.rb +47 -0
  28. data/lib/assemblyai/realtime/types/realtime_transcript.rb +76 -0
  29. data/lib/assemblyai/realtime/types/realtime_transcript_type.rb +8 -0
  30. data/lib/assemblyai/realtime/types/session_begins.rb +58 -0
  31. data/lib/assemblyai/realtime/types/session_terminated.rb +47 -0
  32. data/lib/assemblyai/realtime/types/terminate_session.rb +56 -0
  33. data/lib/assemblyai/realtime/types/word.rb +62 -0
  34. data/lib/assemblyai/transcripts/client.rb +525 -0
  35. data/lib/assemblyai/transcripts/polling_client.rb +173 -0
  36. data/lib/assemblyai/transcripts/types/audio_intelligence_model_status.rb +8 -0
  37. data/lib/assemblyai/transcripts/types/auto_highlight_result.rb +66 -0
  38. data/lib/assemblyai/transcripts/types/auto_highlights_result.rb +53 -0
  39. data/lib/assemblyai/transcripts/types/chapter.rb +68 -0
  40. data/lib/assemblyai/transcripts/types/content_safety_label.rb +57 -0
  41. data/lib/assemblyai/transcripts/types/content_safety_label_result.rb +84 -0
  42. data/lib/assemblyai/transcripts/types/content_safety_labels_result.rb +75 -0
  43. data/lib/assemblyai/transcripts/types/entity.rb +69 -0
  44. data/lib/assemblyai/transcripts/types/entity_type.rb +38 -0
  45. data/lib/assemblyai/transcripts/types/page_details.rb +74 -0
  46. data/lib/assemblyai/transcripts/types/paragraphs_response.rb +67 -0
  47. data/lib/assemblyai/transcripts/types/pii_policy.rb +36 -0
  48. data/lib/assemblyai/transcripts/types/polling_options.rb +21 -0
  49. data/lib/assemblyai/transcripts/types/redact_pii_audio_quality.rb +8 -0
  50. data/lib/assemblyai/transcripts/types/redacted_audio_response.rb +53 -0
  51. data/lib/assemblyai/transcripts/types/redacted_audio_status.rb +7 -0
  52. data/lib/assemblyai/transcripts/types/sentences_response.rb +67 -0
  53. data/lib/assemblyai/transcripts/types/sentiment.rb +8 -0
  54. data/lib/assemblyai/transcripts/types/sentiment_analysis_result.rb +82 -0
  55. data/lib/assemblyai/transcripts/types/severity_score_summary.rb +57 -0
  56. data/lib/assemblyai/transcripts/types/speech_model.rb +7 -0
  57. data/lib/assemblyai/transcripts/types/substitution_policy.rb +8 -0
  58. data/lib/assemblyai/transcripts/types/subtitle_format.rb +8 -0
  59. data/lib/assemblyai/transcripts/types/summary_model.rb +8 -0
  60. data/lib/assemblyai/transcripts/types/summary_type.rb +14 -0
  61. data/lib/assemblyai/transcripts/types/timestamp.rb +53 -0
  62. data/lib/assemblyai/transcripts/types/topic_detection_model_result.rb +68 -0
  63. data/lib/assemblyai/transcripts/types/topic_detection_result.rb +68 -0
  64. data/lib/assemblyai/transcripts/types/topic_detection_result_labels_item.rb +52 -0
  65. data/lib/assemblyai/transcripts/types/transcript.rb +454 -0
  66. data/lib/assemblyai/transcripts/types/transcript_boost_param.rb +8 -0
  67. data/lib/assemblyai/transcripts/types/transcript_custom_spelling.rb +53 -0
  68. data/lib/assemblyai/transcripts/types/transcript_language_code.rb +29 -0
  69. data/lib/assemblyai/transcripts/types/transcript_list.rb +62 -0
  70. data/lib/assemblyai/transcripts/types/transcript_list_item.rb +82 -0
  71. data/lib/assemblyai/transcripts/types/transcript_optional_params.rb +280 -0
  72. data/lib/assemblyai/transcripts/types/transcript_paragraph.rb +84 -0
  73. data/lib/assemblyai/transcripts/types/transcript_sentence.rb +84 -0
  74. data/lib/assemblyai/transcripts/types/transcript_status.rb +8 -0
  75. data/lib/assemblyai/transcripts/types/transcript_utterance.rb +84 -0
  76. data/lib/assemblyai/transcripts/types/transcript_word.rb +68 -0
  77. data/lib/assemblyai/transcripts/types/word_search_match.rb +63 -0
  78. data/lib/assemblyai/transcripts/types/word_search_response.rb +61 -0
  79. data/lib/assemblyai/transcripts/types/word_search_timestamp.rb +7 -0
  80. data/lib/assemblyai/types/error.rb +50 -0
  81. data/lib/assemblyai.rb +48 -0
  82. data/lib/environment.rb +7 -0
  83. data/lib/gemconfig.rb +14 -0
  84. data/lib/requests.rb +87 -0
  85. data/lib/types_export.rb +75 -0
  86. metadata +170 -0
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ # Context to provide the model. This can be a string or a free-form JSON value.
8
+ class LemurBaseParamsContext
9
+ attr_reader :member
10
+ alias kind_of? is_a?
11
+ # @param member [Object]
12
+ # @return [Lemur::LemurBaseParamsContext]
13
+ def initialize(member:)
14
+ # @type [Object]
15
+ @member = member
16
+ end
17
+
18
+ # Deserialize a JSON object to an instance of LemurBaseParamsContext
19
+ #
20
+ # @param json_object [JSON]
21
+ # @return [Lemur::LemurBaseParamsContext]
22
+ def self.from_json(json_object:)
23
+ struct = JSON.parse(json_object, object_class: OpenStruct)
24
+ begin
25
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
26
+ member = json_object
27
+ return new(member: member)
28
+ rescue StandardError
29
+ # noop
30
+ end
31
+ begin
32
+ struct.is_a?(Hash) != false || raise("Passed value for field struct is not the expected type, validation failed.")
33
+ member = json_object
34
+ return new(member: member)
35
+ rescue StandardError
36
+ # noop
37
+ end
38
+ new(member: struct)
39
+ end
40
+
41
+ # For Union Types, to_json functionality is delegated to the wrapped member.
42
+ #
43
+ # @return [JSON]
44
+ def to_json(*_args)
45
+ @member.to_json
46
+ end
47
+
48
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
49
+ #
50
+ # @param obj [Object]
51
+ # @return [Void]
52
+ def self.validate_raw(obj:)
53
+ begin
54
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
55
+ rescue StandardError
56
+ # noop
57
+ end
58
+ begin
59
+ return obj.is_a?(Hash) != false || raise("Passed value for field obj is not the expected type, validation failed.")
60
+ rescue StandardError
61
+ # noop
62
+ end
63
+ raise("Passed value matched no type within the union, validation failed.")
64
+ end
65
+
66
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
67
+ #
68
+ # @param obj [Object]
69
+ # @return [Boolean]
70
+ def is_a?(obj)
71
+ @member.is_a?(obj)
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ class LemurBaseResponse
8
+ attr_reader :request_id, :additional_properties
9
+
10
+ # @param request_id [String] The ID of the LeMUR request
11
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
12
+ # @return [Lemur::LemurBaseResponse]
13
+ def initialize(request_id:, additional_properties: nil)
14
+ # @type [String] The ID of the LeMUR request
15
+ @request_id = request_id
16
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
17
+ @additional_properties = additional_properties
18
+ end
19
+
20
+ # Deserialize a JSON object to an instance of LemurBaseResponse
21
+ #
22
+ # @param json_object [JSON]
23
+ # @return [Lemur::LemurBaseResponse]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ JSON.parse(json_object)
27
+ request_id = struct.request_id
28
+ new(request_id: request_id, additional_properties: struct)
29
+ end
30
+
31
+ # Serialize an instance of LemurBaseResponse to a JSON object
32
+ #
33
+ # @return [JSON]
34
+ def to_json(*_args)
35
+ { "request_id": @request_id }.to_json
36
+ end
37
+
38
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
39
+ #
40
+ # @param obj [Object]
41
+ # @return [Void]
42
+ def self.validate_raw(obj:)
43
+ obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.")
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AssemblyAI
4
+ class Lemur
5
+ # @type [LEMUR_MODEL]
6
+ LEMUR_MODEL = {
7
+ default: "default",
8
+ basic: "basic",
9
+ assemblyai_mistral7b: "assemblyai/mistral-7b",
10
+ anthropic_claude21: "anthropic/claude-2-1"
11
+ }.freeze
12
+ end
13
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lemur_question_context"
4
+ require "json"
5
+
6
+ module AssemblyAI
7
+ class Lemur
8
+ class LemurQuestion
9
+ attr_reader :question, :context, :answer_format, :answer_options, :additional_properties
10
+
11
+ # @param question [String] The question you wish to ask. For more complex questions use default model.
12
+ # @param context [Lemur::LemurQuestionContext] Any context about the transcripts you wish to provide. This can be a string or any object.
13
+ # @param answer_format [String] How you want the answer to be returned. This can be any text. Can't be used with answer_options. Examples: "short sentence", "bullet points"
14
+ # @param answer_options [Array<String>] What discrete options to return. Useful for precise responses. Can't be used with answer_format. Example: ["Yes", "No"]
15
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
16
+ # @return [Lemur::LemurQuestion]
17
+ def initialize(question:, context: nil, answer_format: nil, answer_options: nil, additional_properties: nil)
18
+ # @type [String] The question you wish to ask. For more complex questions use default model.
19
+ @question = question
20
+ # @type [Lemur::LemurQuestionContext] Any context about the transcripts you wish to provide. This can be a string or any object.
21
+ @context = context
22
+ # @type [String] How you want the answer to be returned. This can be any text. Can't be used with answer_options. Examples: "short sentence", "bullet points"
23
+ @answer_format = answer_format
24
+ # @type [Array<String>] What discrete options to return. Useful for precise responses. Can't be used with answer_format. Example: ["Yes", "No"]
25
+ @answer_options = answer_options
26
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
27
+ @additional_properties = additional_properties
28
+ end
29
+
30
+ # Deserialize a JSON object to an instance of LemurQuestion
31
+ #
32
+ # @param json_object [JSON]
33
+ # @return [Lemur::LemurQuestion]
34
+ def self.from_json(json_object:)
35
+ struct = JSON.parse(json_object, object_class: OpenStruct)
36
+ parsed_json = JSON.parse(json_object)
37
+ question = struct.question
38
+ if parsed_json["context"].nil?
39
+ context = nil
40
+ else
41
+ context = parsed_json["context"].to_json
42
+ context = Lemur::LemurQuestionContext.from_json(json_object: context)
43
+ end
44
+ answer_format = struct.answer_format
45
+ answer_options = struct.answer_options
46
+ new(question: question, context: context, answer_format: answer_format, answer_options: answer_options,
47
+ additional_properties: struct)
48
+ end
49
+
50
+ # Serialize an instance of LemurQuestion to a JSON object
51
+ #
52
+ # @return [JSON]
53
+ def to_json(*_args)
54
+ {
55
+ "question": @question,
56
+ "context": @context,
57
+ "answer_format": @answer_format,
58
+ "answer_options": @answer_options
59
+ }.to_json
60
+ end
61
+
62
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
63
+ #
64
+ # @param obj [Object]
65
+ # @return [Void]
66
+ def self.validate_raw(obj:)
67
+ obj.question.is_a?(String) != false || raise("Passed value for field obj.question is not the expected type, validation failed.")
68
+ obj.context.nil? || Lemur::LemurQuestionContext.validate_raw(obj: obj.context)
69
+ obj.answer_format&.is_a?(String) != false || raise("Passed value for field obj.answer_format is not the expected type, validation failed.")
70
+ obj.answer_options&.is_a?(Array) != false || raise("Passed value for field obj.answer_options is not the expected type, validation failed.")
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ # An answer generated by LeMUR and its question
8
+ class LemurQuestionAnswer
9
+ attr_reader :question, :answer, :additional_properties
10
+
11
+ # @param question [String] The question for LeMUR to answer
12
+ # @param answer [String] The answer generated by LeMUR
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [Lemur::LemurQuestionAnswer]
15
+ def initialize(question:, answer:, additional_properties: nil)
16
+ # @type [String] The question for LeMUR to answer
17
+ @question = question
18
+ # @type [String] The answer generated by LeMUR
19
+ @answer = answer
20
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
21
+ @additional_properties = additional_properties
22
+ end
23
+
24
+ # Deserialize a JSON object to an instance of LemurQuestionAnswer
25
+ #
26
+ # @param json_object [JSON]
27
+ # @return [Lemur::LemurQuestionAnswer]
28
+ def self.from_json(json_object:)
29
+ struct = JSON.parse(json_object, object_class: OpenStruct)
30
+ JSON.parse(json_object)
31
+ question = struct.question
32
+ answer = struct.answer
33
+ new(question: question, answer: answer, additional_properties: struct)
34
+ end
35
+
36
+ # Serialize an instance of LemurQuestionAnswer to a JSON object
37
+ #
38
+ # @return [JSON]
39
+ def to_json(*_args)
40
+ { "question": @question, "answer": @answer }.to_json
41
+ end
42
+
43
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
44
+ #
45
+ # @param obj [Object]
46
+ # @return [Void]
47
+ def self.validate_raw(obj:)
48
+ obj.question.is_a?(String) != false || raise("Passed value for field obj.question is not the expected type, validation failed.")
49
+ obj.answer.is_a?(String) != false || raise("Passed value for field obj.answer is not the expected type, validation failed.")
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lemur_question_answer"
4
+ require "json"
5
+
6
+ module AssemblyAI
7
+ class Lemur
8
+ class LemurQuestionAnswerResponse
9
+ attr_reader :response, :request_id, :additional_properties
10
+
11
+ # @param response [Array<Lemur::LemurQuestionAnswer>] The answers generated by LeMUR and their questions
12
+ # @param request_id [String] The ID of the LeMUR request
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [Lemur::LemurQuestionAnswerResponse]
15
+ def initialize(response:, request_id:, additional_properties: nil)
16
+ # @type [Array<Lemur::LemurQuestionAnswer>] The answers generated by LeMUR and their questions
17
+ @response = response
18
+ # @type [String] The ID of the LeMUR request
19
+ @request_id = request_id
20
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
21
+ @additional_properties = additional_properties
22
+ end
23
+
24
+ # Deserialize a JSON object to an instance of LemurQuestionAnswerResponse
25
+ #
26
+ # @param json_object [JSON]
27
+ # @return [Lemur::LemurQuestionAnswerResponse]
28
+ def self.from_json(json_object:)
29
+ struct = JSON.parse(json_object, object_class: OpenStruct)
30
+ parsed_json = JSON.parse(json_object)
31
+ response = parsed_json["response"]&.map do |v|
32
+ v = v.to_json
33
+ Lemur::LemurQuestionAnswer.from_json(json_object: v)
34
+ end
35
+ request_id = struct.request_id
36
+ new(response: response, request_id: request_id, additional_properties: struct)
37
+ end
38
+
39
+ # Serialize an instance of LemurQuestionAnswerResponse to a JSON object
40
+ #
41
+ # @return [JSON]
42
+ def to_json(*_args)
43
+ { "response": @response, "request_id": @request_id }.to_json
44
+ end
45
+
46
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
47
+ #
48
+ # @param obj [Object]
49
+ # @return [Void]
50
+ def self.validate_raw(obj:)
51
+ obj.response.is_a?(Array) != false || raise("Passed value for field obj.response is not the expected type, validation failed.")
52
+ obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ # Any context about the transcripts you wish to provide. This can be a string or any object.
8
+ class LemurQuestionContext
9
+ attr_reader :member
10
+ alias kind_of? is_a?
11
+ # @param member [Object]
12
+ # @return [Lemur::LemurQuestionContext]
13
+ def initialize(member:)
14
+ # @type [Object]
15
+ @member = member
16
+ end
17
+
18
+ # Deserialize a JSON object to an instance of LemurQuestionContext
19
+ #
20
+ # @param json_object [JSON]
21
+ # @return [Lemur::LemurQuestionContext]
22
+ def self.from_json(json_object:)
23
+ struct = JSON.parse(json_object, object_class: OpenStruct)
24
+ begin
25
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
26
+ member = json_object
27
+ return new(member: member)
28
+ rescue StandardError
29
+ # noop
30
+ end
31
+ begin
32
+ struct.is_a?(Hash) != false || raise("Passed value for field struct is not the expected type, validation failed.")
33
+ member = json_object
34
+ return new(member: member)
35
+ rescue StandardError
36
+ # noop
37
+ end
38
+ new(member: struct)
39
+ end
40
+
41
+ # For Union Types, to_json functionality is delegated to the wrapped member.
42
+ #
43
+ # @return [JSON]
44
+ def to_json(*_args)
45
+ @member.to_json
46
+ end
47
+
48
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
49
+ #
50
+ # @param obj [Object]
51
+ # @return [Void]
52
+ def self.validate_raw(obj:)
53
+ begin
54
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
55
+ rescue StandardError
56
+ # noop
57
+ end
58
+ begin
59
+ return obj.is_a?(Hash) != false || raise("Passed value for field obj is not the expected type, validation failed.")
60
+ rescue StandardError
61
+ # noop
62
+ end
63
+ raise("Passed value matched no type within the union, validation failed.")
64
+ end
65
+
66
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
67
+ #
68
+ # @param obj [Object]
69
+ # @return [Boolean]
70
+ def is_a?(obj)
71
+ @member.is_a?(obj)
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ class LemurSummaryResponse
8
+ attr_reader :response, :request_id, :additional_properties
9
+
10
+ # @param response [String] The response generated by LeMUR
11
+ # @param request_id [String] The ID of the LeMUR request
12
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
13
+ # @return [Lemur::LemurSummaryResponse]
14
+ def initialize(response:, request_id:, additional_properties: nil)
15
+ # @type [String] The response generated by LeMUR
16
+ @response = response
17
+ # @type [String] The ID of the LeMUR request
18
+ @request_id = request_id
19
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
20
+ @additional_properties = additional_properties
21
+ end
22
+
23
+ # Deserialize a JSON object to an instance of LemurSummaryResponse
24
+ #
25
+ # @param json_object [JSON]
26
+ # @return [Lemur::LemurSummaryResponse]
27
+ def self.from_json(json_object:)
28
+ struct = JSON.parse(json_object, object_class: OpenStruct)
29
+ JSON.parse(json_object)
30
+ response = struct.response
31
+ request_id = struct.request_id
32
+ new(response: response, request_id: request_id, additional_properties: struct)
33
+ end
34
+
35
+ # Serialize an instance of LemurSummaryResponse to a JSON object
36
+ #
37
+ # @return [JSON]
38
+ def to_json(*_args)
39
+ { "response": @response, "request_id": @request_id }.to_json
40
+ end
41
+
42
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
43
+ #
44
+ # @param obj [Object]
45
+ # @return [Void]
46
+ def self.validate_raw(obj:)
47
+ obj.response.is_a?(String) != false || raise("Passed value for field obj.response is not the expected type, validation failed.")
48
+ obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.")
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ class LemurTaskResponse
8
+ attr_reader :response, :request_id, :additional_properties
9
+
10
+ # @param response [String] The response generated by LeMUR.
11
+ # @param request_id [String] The ID of the LeMUR request
12
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
13
+ # @return [Lemur::LemurTaskResponse]
14
+ def initialize(response:, request_id:, additional_properties: nil)
15
+ # @type [String] The response generated by LeMUR.
16
+ @response = response
17
+ # @type [String] The ID of the LeMUR request
18
+ @request_id = request_id
19
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
20
+ @additional_properties = additional_properties
21
+ end
22
+
23
+ # Deserialize a JSON object to an instance of LemurTaskResponse
24
+ #
25
+ # @param json_object [JSON]
26
+ # @return [Lemur::LemurTaskResponse]
27
+ def self.from_json(json_object:)
28
+ struct = JSON.parse(json_object, object_class: OpenStruct)
29
+ JSON.parse(json_object)
30
+ response = struct.response
31
+ request_id = struct.request_id
32
+ new(response: response, request_id: request_id, additional_properties: struct)
33
+ end
34
+
35
+ # Serialize an instance of LemurTaskResponse to a JSON object
36
+ #
37
+ # @return [JSON]
38
+ def to_json(*_args)
39
+ { "response": @response, "request_id": @request_id }.to_json
40
+ end
41
+
42
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
43
+ #
44
+ # @param obj [Object]
45
+ # @return [Void]
46
+ def self.validate_raw(obj:)
47
+ obj.response.is_a?(String) != false || raise("Passed value for field obj.response is not the expected type, validation failed.")
48
+ obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.")
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module AssemblyAI
6
+ class Lemur
7
+ class PurgeLemurRequestDataResponse
8
+ attr_reader :request_id, :request_id_to_purge, :deleted, :additional_properties
9
+
10
+ # @param request_id [String] The ID of the deletion request of the LeMUR request
11
+ # @param request_id_to_purge [String] The ID of the LeMUR request to purge the data for
12
+ # @param deleted [Boolean] Whether the request data was deleted
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [Lemur::PurgeLemurRequestDataResponse]
15
+ def initialize(request_id:, request_id_to_purge:, deleted:, additional_properties: nil)
16
+ # @type [String] The ID of the deletion request of the LeMUR request
17
+ @request_id = request_id
18
+ # @type [String] The ID of the LeMUR request to purge the data for
19
+ @request_id_to_purge = request_id_to_purge
20
+ # @type [Boolean] Whether the request data was deleted
21
+ @deleted = deleted
22
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
23
+ @additional_properties = additional_properties
24
+ end
25
+
26
+ # Deserialize a JSON object to an instance of PurgeLemurRequestDataResponse
27
+ #
28
+ # @param json_object [JSON]
29
+ # @return [Lemur::PurgeLemurRequestDataResponse]
30
+ def self.from_json(json_object:)
31
+ struct = JSON.parse(json_object, object_class: OpenStruct)
32
+ JSON.parse(json_object)
33
+ request_id = struct.request_id
34
+ request_id_to_purge = struct.request_id_to_purge
35
+ deleted = struct.deleted
36
+ new(request_id: request_id, request_id_to_purge: request_id_to_purge, deleted: deleted,
37
+ additional_properties: struct)
38
+ end
39
+
40
+ # Serialize an instance of PurgeLemurRequestDataResponse to a JSON object
41
+ #
42
+ # @return [JSON]
43
+ def to_json(*_args)
44
+ { "request_id": @request_id, "request_id_to_purge": @request_id_to_purge, "deleted": @deleted }.to_json
45
+ end
46
+
47
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.")
53
+ obj.request_id_to_purge.is_a?(String) != false || raise("Passed value for field obj.request_id_to_purge is not the expected type, validation failed.")
54
+ obj.deleted.is_a?(Boolean) != false || raise("Passed value for field obj.deleted is not the expected type, validation failed.")
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "types/realtime_temporary_token_response"
5
+ require "async"
6
+
7
+ module AssemblyAI
8
+ class RealtimeClient
9
+ attr_reader :request_client
10
+
11
+ # @param request_client [RequestClient]
12
+ # @return [RealtimeClient]
13
+ def initialize(request_client:)
14
+ # @type [RequestClient]
15
+ @request_client = request_client
16
+ end
17
+
18
+ # Create a temporary authentication token for real-time transcription
19
+ #
20
+ # @param expires_in [Integer] The amount of time until the token expires in seconds
21
+ # @param request_options [RequestOptions]
22
+ # @return [Realtime::RealtimeTemporaryTokenResponse]
23
+ def create_temporary_token(expires_in:, request_options: nil)
24
+ response = @request_client.conn.post("/v2/realtime/token") do |req|
25
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
26
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
27
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
28
+ req.body = { **(request_options&.additional_body_parameters || {}), expires_in: expires_in }.compact
29
+ end
30
+ Realtime::RealtimeTemporaryTokenResponse.from_json(json_object: response.body)
31
+ end
32
+ end
33
+
34
+ class AsyncRealtimeClient
35
+ attr_reader :request_client
36
+
37
+ # @param request_client [AsyncRequestClient]
38
+ # @return [AsyncRealtimeClient]
39
+ def initialize(request_client:)
40
+ # @type [AsyncRequestClient]
41
+ @request_client = request_client
42
+ end
43
+
44
+ # Create a temporary authentication token for real-time transcription
45
+ #
46
+ # @param expires_in [Integer] The amount of time until the token expires in seconds
47
+ # @param request_options [RequestOptions]
48
+ # @return [Realtime::RealtimeTemporaryTokenResponse]
49
+ def create_temporary_token(expires_in:, request_options: nil)
50
+ Async do
51
+ response = @request_client.conn.post("/v2/realtime/token") do |req|
52
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
53
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
54
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
55
+ req.body = { **(request_options&.additional_body_parameters || {}), expires_in: expires_in }.compact
56
+ end
57
+ Realtime::RealtimeTemporaryTokenResponse.from_json(json_object: response.body)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AssemblyAI
4
+ class Realtime
5
+ AUDIO_DATA = String
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AssemblyAI
4
+ class Realtime
5
+ # @type [AUDIO_ENCODING]
6
+ AUDIO_ENCODING = { pcm_s16le: "pcm_s16le", pcm_mulaw: "pcm_mulaw" }.freeze
7
+ end
8
+ end