assemblyai 1.0.0.pre.beta.5 → 1.0.0.pre.beta.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d91bff775d7a91af629545e3aebf04fd8af3757c0593c9782eff3bd6e838170
4
- data.tar.gz: 27b065dedebaab7a01389e58870f322dd7c7f7eb2e0aafac71077b73eff4833a
3
+ metadata.gz: 76ddcd8ef7bd03dab334e872387e6ea6f01d1c93d26ec1a1ffc57a29ec498f1a
4
+ data.tar.gz: 57abade0a92ef0dd0031f27098d9f7bdebfc17f7445776409af4b8627afe11a0
5
5
  SHA512:
6
- metadata.gz: 82a793a096563db2d9f57be102e5076fd6a2b2a8c293cac817c83bf578f32dac03ee7ab1f05246200a9f87eafd8451eb2fb71d86aa2302e26191c6ac8bfe2634
7
- data.tar.gz: 591118e0a7fde11c070e19518e338498defda2187bd8e4d1fa0a8205c5baba910e29d64c22462c1fce4c57f969b6b9bb657c1da64f29d1e9eeb8194fb4c3f650
6
+ metadata.gz: 17410d40ef0225953ff55910ad561334b7ef6a7cda2e9b190103885878c920b573abcffc9fddc904aefccf896e03629640e7884efde32e4df39e549e17847252
7
+ data.tar.gz: 1c4739c4fee6647ac9edffd00a1a84c7bd7b6fa0064e5126097e6194372a967a976acfecee128a5c7a08738f9864044278247574c91ddb5b40b0903197f49cbd
@@ -17,16 +17,39 @@ module AssemblyAI
17
17
 
18
18
  # Upload your media file directly to the AssemblyAI API if it isn't accessible via a URL already.
19
19
  #
20
- # @param request [String] Base64 encoded bytes
20
+ # @param file [String, IO] File path, Base64 String, or an IO object (e.g. Faraday::UploadIO, etc.)
21
21
  # @param request_options [RequestOptions]
22
22
  # @return [Files::UploadedFile]
23
- def upload(request:, request_options: nil)
23
+ def upload(file:, request_options: nil)
24
24
  response = @request_client.conn.post("/v2/upload") do |req|
25
+ if file.is_a? String
26
+ begin
27
+ path = Pathname.new(file)
28
+ rescue StandardError
29
+ file_data = file
30
+ end
31
+ unless path.nil?
32
+ if path.file?
33
+ file_data = File.new(file)
34
+ elsif path.directory?
35
+ raise "file path has to be a path to file, but is a path to directory"
36
+ else
37
+ raise "file at path does not exist"
38
+ end
39
+ end
40
+ else
41
+ file_data = file
42
+ end
25
43
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
26
44
  req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
27
45
  req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
28
46
  req.headers["Content-Type"] = "application/octet-stream"
29
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
47
+ if file.is_a? File
48
+ req.headers["Content-Length"] = File.size(file_data.path).to_s
49
+ else
50
+ req.headers["Transfer-Encoding"] = "chunked"
51
+ end
52
+ req.body = file_data
30
53
  end
31
54
  Files::UploadedFile.from_json(json_object: response.body)
32
55
  end
@@ -44,17 +67,40 @@ module AssemblyAI
44
67
 
45
68
  # Upload your media file directly to the AssemblyAI API if it isn't accessible via a URL already.
46
69
  #
47
- # @param request [String] Base64 encoded bytes
70
+ # @param file [String, IO] File path, Base64 String, or an IO object (e.g. Faraday::UploadIO, etc.)
48
71
  # @param request_options [RequestOptions]
49
72
  # @return [Files::UploadedFile]
50
- def upload(request:, request_options: nil)
73
+ def upload(file:, request_options: nil)
51
74
  Async do
52
75
  response = @request_client.conn.post("/v2/upload") do |req|
76
+ if file.is_a? String
77
+ begin
78
+ path = Pathname.new(file)
79
+ rescue StandardError
80
+ file_data = file
81
+ end
82
+ unless path.nil?
83
+ if path.file?
84
+ file_data = File.new(file)
85
+ elsif path.directory?
86
+ raise "file path has to be a path to file, but is a path to directory"
87
+ else
88
+ raise "file at path does not exist"
89
+ end
90
+ end
91
+ else
92
+ file_data = file
93
+ end
53
94
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
54
95
  req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
55
96
  req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
56
97
  req.headers["Content-Type"] = "application/octet-stream"
57
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
98
+ if file.is_a? File
99
+ req.headers["Content-Length"] = File.size(file_data.path).to_s
100
+ else
101
+ req.headers["Transfer-Encoding"] = "chunked"
102
+ end
103
+ req.body = file_data
58
104
  end
59
105
  Files::UploadedFile.from_json(json_object: response.body)
60
106
  end
@@ -15,7 +15,7 @@ module AssemblyAI
15
15
  @request_client = request_client
16
16
  end
17
17
 
18
- # Create a temporary authentication token for real-time transcription
18
+ # Create a temporary authentication token for Streaming Speech-to-Text
19
19
  #
20
20
  # @param expires_in [Integer] The amount of time until the token expires in seconds
21
21
  # @param request_options [RequestOptions]
@@ -41,7 +41,7 @@ module AssemblyAI
41
41
  @request_client = request_client
42
42
  end
43
43
 
44
- # Create a temporary authentication token for real-time transcription
44
+ # Create a temporary authentication token for Streaming Speech-to-Text
45
45
  #
46
46
  # @param expires_in [Integer] The amount of time until the token expires in seconds
47
47
  # @param request_options [RequestOptions]
@@ -7,11 +7,11 @@ module AssemblyAI
7
7
  class RealtimeTemporaryTokenResponse
8
8
  attr_reader :token, :additional_properties
9
9
 
10
- # @param token [String] The temporary authentication token for real-time transcription
10
+ # @param token [String] The temporary authentication token for Streaming Speech-to-Text
11
11
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
12
12
  # @return [Realtime::RealtimeTemporaryTokenResponse]
13
13
  def initialize(token:, additional_properties: nil)
14
- # @type [String] The temporary authentication token for real-time transcription
14
+ # @type [String] The temporary authentication token for Streaming Speech-to-Text
15
15
  @token = token
16
16
  # @type [OpenStruct] Additional properties unmapped to the current class definition
17
17
  @additional_properties = additional_properties
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "json"
4
- require_relative "session_begins"
5
- require_relative "partial_transcript"
6
- require_relative "final_transcript"
7
- require_relative "session_terminated"
8
- require_relative "realtime_error"
4
+ require_relative "../../realtime/types/session_begins"
5
+ require_relative "../../realtime/types/partial_transcript"
6
+ require_relative "../../realtime/types/final_transcript"
7
+ require_relative "../../realtime/types/session_terminated"
8
+ require_relative "../../realtime/types/realtime_error"
9
9
 
10
10
  module AssemblyAI
11
11
  class Realtime
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "json"
4
- require_relative "terminate_session"
5
- require_relative "force_end_utterance"
6
- require_relative "configure_end_utterance_silence_threshold"
4
+ require_relative "../../realtime/types/terminate_session"
5
+ require_relative "../../realtime/types/force_end_utterance"
6
+ require_relative "../../realtime/types/configure_end_utterance_silence_threshold"
7
7
 
8
8
  module AssemblyAI
9
9
  class Realtime
@@ -7,11 +7,11 @@ module AssemblyAI
7
7
  class TerminateSession
8
8
  attr_reader :terminate_session, :additional_properties
9
9
 
10
- # @param terminate_session [Boolean] Set to true to end your real-time session forever
10
+ # @param terminate_session [Boolean] Set to true to end your streaming session forever
11
11
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
12
12
  # @return [Realtime::TerminateSession]
13
13
  def initialize(terminate_session:, additional_properties: nil)
14
- # @type [Boolean] Set to true to end your real-time session forever
14
+ # @type [Boolean] Set to true to end your streaming session forever
15
15
  @terminate_session = terminate_session
16
16
  # @type [OpenStruct] Additional properties unmapped to the current class definition
17
17
  @additional_properties = additional_properties
@@ -31,7 +31,8 @@ module AssemblyAI
31
31
  @request_client = request_client
32
32
  end
33
33
 
34
- # Retrieve a list of transcripts you created
34
+ # Retrieve a list of transcripts you created.
35
+ # Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.
35
36
  #
36
37
  # @param limit [Integer] Maximum amount of transcripts to retrieve
37
38
  # @param status [Transcripts::TranscriptStatus] Filter by transcript status
@@ -273,7 +274,8 @@ module AssemblyAI
273
274
  @request_client = request_client
274
275
  end
275
276
 
276
- # Retrieve a list of transcripts you created
277
+ # Retrieve a list of transcripts you created.
278
+ # Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.
277
279
  #
278
280
  # @param limit [Integer] Maximum amount of transcripts to retrieve
279
281
  # @param status [Transcripts::TranscriptStatus] Filter by transcript status
@@ -4,26 +4,27 @@ require "json"
4
4
 
5
5
  module AssemblyAI
6
6
  class Transcripts
7
+ # Details of the transcript page. Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.
7
8
  class PageDetails
8
9
  attr_reader :limit, :result_count, :current_url, :prev_url, :next_url, :additional_properties
9
10
 
10
11
  # @param limit [Integer]
11
12
  # @param result_count [Integer]
12
13
  # @param current_url [String]
13
- # @param prev_url [String]
14
- # @param next_url [String]
14
+ # @param prev_url [String] The URL to the next page of transcripts. The previous URL always points to a page with older transcripts.
15
+ # @param next_url [String] The URL to the next page of transcripts. The next URL always points to a page with newer transcripts.
15
16
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
16
17
  # @return [Transcripts::PageDetails]
17
- def initialize(limit:, result_count:, current_url:, prev_url:, next_url: nil, additional_properties: nil)
18
+ def initialize(limit:, result_count:, current_url:, prev_url: nil, next_url: nil, additional_properties: nil)
18
19
  # @type [Integer]
19
20
  @limit = limit
20
21
  # @type [Integer]
21
22
  @result_count = result_count
22
23
  # @type [String]
23
24
  @current_url = current_url
24
- # @type [String]
25
+ # @type [String] The URL to the next page of transcripts. The previous URL always points to a page with older transcripts.
25
26
  @prev_url = prev_url
26
- # @type [String]
27
+ # @type [String] The URL to the next page of transcripts. The next URL always points to a page with newer transcripts.
27
28
  @next_url = next_url
28
29
  # @type [OpenStruct] Additional properties unmapped to the current class definition
29
30
  @additional_properties = additional_properties
@@ -66,7 +67,7 @@ module AssemblyAI
66
67
  obj.limit.is_a?(Integer) != false || raise("Passed value for field obj.limit is not the expected type, validation failed.")
67
68
  obj.result_count.is_a?(Integer) != false || raise("Passed value for field obj.result_count is not the expected type, validation failed.")
68
69
  obj.current_url.is_a?(String) != false || raise("Passed value for field obj.current_url is not the expected type, validation failed.")
69
- obj.prev_url.is_a?(String) != false || raise("Passed value for field obj.prev_url is not the expected type, validation failed.")
70
+ obj.prev_url&.is_a?(String) != false || raise("Passed value for field obj.prev_url is not the expected type, validation failed.")
70
71
  obj.next_url&.is_a?(String) != false || raise("Passed value for field obj.next_url is not the expected type, validation failed.")
71
72
  end
72
73
  end
@@ -4,6 +4,7 @@ module AssemblyAI
4
4
  class Transcripts
5
5
  # The speech model to use for the transcription.
6
6
  class SpeechModel
7
+ BEST = "best"
7
8
  NANO = "nano"
8
9
  CONFORMER2 = "conformer-2"
9
10
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  module AssemblyAI
4
4
  class Transcripts
5
- # The replacement logic for detected PII, can be "entity_type" or "hash". See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more details.
5
+ # The replacement logic for detected PII, can be "entity_name" or "hash". See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more details.
6
6
  class SubstitutionPolicy
7
- ENTITY_TYPE = "entity_type"
7
+ ENTITY_NAME = "entity_name"
8
8
  HASH = "hash"
9
9
  end
10
10
  end
@@ -6,6 +6,7 @@ require "json"
6
6
 
7
7
  module AssemblyAI
8
8
  class Transcripts
9
+ # A list of transcripts. Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.
9
10
  class TranscriptList
10
11
  attr_reader :page_details, :transcripts, :additional_properties
11
12
 
@@ -7,7 +7,7 @@ require "json"
7
7
  module AssemblyAI
8
8
  class Transcripts
9
9
  class TranscriptListItem
10
- attr_reader :id, :resource_url, :status, :created, :completed, :audio_url, :additional_properties
10
+ attr_reader :id, :resource_url, :status, :created, :completed, :audio_url, :error, :additional_properties
11
11
 
12
12
  # @param id [String]
13
13
  # @param resource_url [String]
@@ -15,9 +15,11 @@ module AssemblyAI
15
15
  # @param created [DateTime]
16
16
  # @param completed [DateTime]
17
17
  # @param audio_url [String]
18
+ # @param error [String] Error message of why the transcript failed
18
19
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
19
20
  # @return [Transcripts::TranscriptListItem]
20
- def initialize(id:, resource_url:, status:, created:, completed:, audio_url:, additional_properties: nil)
21
+ def initialize(id:, resource_url:, status:, created:, completed:, audio_url:, error: nil,
22
+ additional_properties: nil)
21
23
  # @type [String]
22
24
  @id = id
23
25
  # @type [String]
@@ -30,6 +32,8 @@ module AssemblyAI
30
32
  @completed = completed
31
33
  # @type [String]
32
34
  @audio_url = audio_url
35
+ # @type [String] Error message of why the transcript failed
36
+ @error = error
33
37
  # @type [OpenStruct] Additional properties unmapped to the current class definition
34
38
  @additional_properties = additional_properties
35
39
  end
@@ -47,8 +51,9 @@ module AssemblyAI
47
51
  created = (DateTime.parse(parsed_json["created"]) unless parsed_json["created"].nil?)
48
52
  completed = (DateTime.parse(parsed_json["completed"]) unless parsed_json["completed"].nil?)
49
53
  audio_url = struct.audio_url
54
+ error = struct.error
50
55
  new(id: id, resource_url: resource_url, status: status, created: created, completed: completed,
51
- audio_url: audio_url, additional_properties: struct)
56
+ audio_url: audio_url, error: error, additional_properties: struct)
52
57
  end
53
58
 
54
59
  # Serialize an instance of TranscriptListItem to a JSON object
@@ -61,7 +66,8 @@ module AssemblyAI
61
66
  "status": @status,
62
67
  "created": @created,
63
68
  "completed": @completed,
64
- "audio_url": @audio_url
69
+ "audio_url": @audio_url,
70
+ "error": @error
65
71
  }.to_json
66
72
  end
67
73
 
@@ -76,6 +82,7 @@ module AssemblyAI
76
82
  obj.created.is_a?(DateTime) != false || raise("Passed value for field obj.created is not the expected type, validation failed.")
77
83
  obj.completed.is_a?(DateTime) != false || raise("Passed value for field obj.completed is not the expected type, validation failed.")
78
84
  obj.audio_url.is_a?(String) != false || raise("Passed value for field obj.audio_url is not the expected type, validation failed.")
85
+ obj.error&.is_a?(String) != false || raise("Passed value for field obj.error is not the expected type, validation failed.")
79
86
  end
80
87
  end
81
88
  end
data/lib/requests.rb CHANGED
@@ -20,7 +20,7 @@ module AssemblyAI
20
20
  @headers = {
21
21
  "X-Fern-Language": "Ruby",
22
22
  "X-Fern-SDK-Name": "assemblyai",
23
- "X-Fern-SDK-Version": "1.0.0-beta.5",
23
+ "X-Fern-SDK-Version": "1.0.0-beta.7",
24
24
  "Authorization": api_key.to_s
25
25
  }
26
26
  @conn = Faraday.new(@base_url, headers: @headers) do |faraday|
@@ -46,7 +46,7 @@ module AssemblyAI
46
46
  @headers = {
47
47
  "X-Fern-Language": "Ruby",
48
48
  "X-Fern-SDK-Name": "assemblyai",
49
- "X-Fern-SDK-Version": "1.0.0-beta.5",
49
+ "X-Fern-SDK-Version": "1.0.0-beta.7",
50
50
  "Authorization": api_key.to_s
51
51
  }
52
52
  @conn = Faraday.new(@base_url, headers: @headers) do |faraday|
data/lib/types_export.rb CHANGED
@@ -46,26 +46,26 @@ require_relative "assemblyai/transcripts/types/page_details"
46
46
  require_relative "assemblyai/transcripts/types/transcript_list_item"
47
47
  require_relative "assemblyai/transcripts/types/transcript_list"
48
48
  require_relative "assemblyai/transcripts/types/audio_intelligence_model_status"
49
+ require_relative "assemblyai/realtime/types/realtime_base_message"
49
50
  require_relative "assemblyai/realtime/types/session_begins"
50
51
  require_relative "assemblyai/realtime/types/partial_transcript"
51
52
  require_relative "assemblyai/realtime/types/final_transcript"
52
53
  require_relative "assemblyai/realtime/types/session_terminated"
53
54
  require_relative "assemblyai/realtime/types/realtime_error"
54
- require_relative "assemblyai/realtime/types/receive_message"
55
- require_relative "assemblyai/realtime/types/audio_data"
56
- require_relative "assemblyai/realtime/types/terminate_session"
57
- require_relative "assemblyai/realtime/types/force_end_utterance"
58
- require_relative "assemblyai/realtime/types/configure_end_utterance_silence_threshold"
59
- require_relative "assemblyai/realtime/types/send_message"
60
- require_relative "assemblyai/realtime/types/realtime_temporary_token_response"
61
- require_relative "assemblyai/realtime/types/realtime_base_message"
62
55
  require_relative "assemblyai/realtime/types/realtime_message"
63
56
  require_relative "assemblyai/realtime/types/message_type"
64
57
  require_relative "assemblyai/realtime/types/realtime_transcript_type"
65
58
  require_relative "assemblyai/realtime/types/realtime_transcript"
66
59
  require_relative "assemblyai/realtime/types/realtime_base_transcript"
67
60
  require_relative "assemblyai/realtime/types/word"
61
+ require_relative "assemblyai/realtime/types/audio_data"
62
+ require_relative "assemblyai/realtime/types/force_end_utterance"
63
+ require_relative "assemblyai/realtime/types/configure_end_utterance_silence_threshold"
64
+ require_relative "assemblyai/realtime/types/terminate_session"
68
65
  require_relative "assemblyai/realtime/types/audio_encoding"
66
+ require_relative "assemblyai/realtime/types/realtime_temporary_token_response"
67
+ require_relative "assemblyai/realtime/types/receive_message"
68
+ require_relative "assemblyai/realtime/types/send_message"
69
69
  require_relative "assemblyai/lemur/types/purge_lemur_request_data_response"
70
70
  require_relative "assemblyai/lemur/types/lemur_base_response"
71
71
  require_relative "assemblyai/lemur/types/lemur_summary_response"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assemblyai
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.beta.5
4
+ version: 1.0.0.pre.beta.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-19 00:00:00.000000000 Z
11
+ date: 2024-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http-faraday