assemblyai 1.0.0.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
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