From e2c4c2b01c4777d907582bdb83916dfa2f1b3398 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 13:21:35 +0000 Subject: [PATCH 1/3] SDK regeneration --- lib/assemblyai/lemur/client.rb | 4 +- .../types/lemur_action_items_response.rb | 4 +- lib/assemblyai/lemur/types/lemur_response.rb | 36 +-------- .../lemur/types/lemur_string_response.rb | 80 +++++++++++++++++++ .../lemur/types/lemur_summary_response.rb | 4 +- .../types/transcript_optional_params.rb | 8 +- lib/types_export.rb | 3 +- 7 files changed, 98 insertions(+), 41 deletions(-) create mode 100644 lib/assemblyai/lemur/types/lemur_string_response.rb diff --git a/lib/assemblyai/lemur/client.rb b/lib/assemblyai/lemur/client.rb index d700c80..d39972d 100644 --- a/lib/assemblyai/lemur/client.rb +++ b/lib/assemblyai/lemur/client.rb @@ -230,7 +230,7 @@ def action_items(transcript_ids: nil, input_text: nil, context: nil, final_model # @param request_id [String] The ID of the LeMUR request you previously made. # This would be found in the response of the original request. # @param request_options [AssemblyAI::RequestOptions] - # @return [AssemblyAI::Lemur::LemurTaskResponse, AssemblyAI::Lemur::LemurSummaryResponse, AssemblyAI::Lemur::LemurQuestionAnswerResponse, AssemblyAI::Lemur::LemurActionItemsResponse] + # @return [AssemblyAI::Lemur::LemurStringResponse, AssemblyAI::Lemur::LemurQuestionAnswerResponse] # @example # api = AssemblyAI::Client.new( # environment: AssemblyAI::Environment::DEFAULT, @@ -499,7 +499,7 @@ def action_items(transcript_ids: nil, input_text: nil, context: nil, final_model # @param request_id [String] The ID of the LeMUR request you previously made. # This would be found in the response of the original request. # @param request_options [AssemblyAI::RequestOptions] - # @return [AssemblyAI::Lemur::LemurTaskResponse, AssemblyAI::Lemur::LemurSummaryResponse, AssemblyAI::Lemur::LemurQuestionAnswerResponse, AssemblyAI::Lemur::LemurActionItemsResponse] + # @return [AssemblyAI::Lemur::LemurStringResponse, AssemblyAI::Lemur::LemurQuestionAnswerResponse] # @example # api = AssemblyAI::Client.new( # environment: AssemblyAI::Environment::DEFAULT, diff --git a/lib/assemblyai/lemur/types/lemur_action_items_response.rb b/lib/assemblyai/lemur/types/lemur_action_items_response.rb index 8f81b9a..7a41ce5 100644 --- a/lib/assemblyai/lemur/types/lemur_action_items_response.rb +++ b/lib/assemblyai/lemur/types/lemur_action_items_response.rb @@ -7,7 +7,7 @@ module AssemblyAI class Lemur class LemurActionItemsResponse - # @return [String] The response generated by LeMUR + # @return [String] The response generated by LeMUR. attr_reader :response # @return [String] The ID of the LeMUR request attr_reader :request_id @@ -21,7 +21,7 @@ class LemurActionItemsResponse OMIT = Object.new - # @param response [String] The response generated by LeMUR + # @param response [String] The response generated by LeMUR. # @param request_id [String] The ID of the LeMUR request # @param usage [AssemblyAI::Lemur::LemurUsage] The usage numbers for the LeMUR request # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/assemblyai/lemur/types/lemur_response.rb b/lib/assemblyai/lemur/types/lemur_response.rb index c8bbb7a..86b188a 100644 --- a/lib/assemblyai/lemur/types/lemur_response.rb +++ b/lib/assemblyai/lemur/types/lemur_response.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true require "json" -require_relative "lemur_task_response" -require_relative "lemur_summary_response" +require_relative "lemur_string_response" require_relative "lemur_question_answer_response" -require_relative "lemur_action_items_response" module AssemblyAI class Lemur @@ -16,16 +14,8 @@ class LemurResponse def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) begin - AssemblyAI::Lemur::LemurTaskResponse.validate_raw(obj: struct) - return AssemblyAI::Lemur::LemurTaskResponse.from_json(json_object: json_object) unless json_object.nil? - - return nil - rescue StandardError - # noop - end - begin - AssemblyAI::Lemur::LemurSummaryResponse.validate_raw(obj: struct) - return AssemblyAI::Lemur::LemurSummaryResponse.from_json(json_object: json_object) unless json_object.nil? + AssemblyAI::Lemur::LemurStringResponse.validate_raw(obj: struct) + return AssemblyAI::Lemur::LemurStringResponse.from_json(json_object: json_object) unless json_object.nil? return nil rescue StandardError @@ -41,14 +31,6 @@ def self.from_json(json_object:) rescue StandardError # noop end - begin - AssemblyAI::Lemur::LemurActionItemsResponse.validate_raw(obj: struct) - return AssemblyAI::Lemur::LemurActionItemsResponse.from_json(json_object: json_object) unless json_object.nil? - - return nil - rescue StandardError - # noop - end struct end @@ -60,12 +42,7 @@ def self.from_json(json_object:) # @return [Void] def self.validate_raw(obj:) begin - return AssemblyAI::Lemur::LemurTaskResponse.validate_raw(obj: obj) - rescue StandardError - # noop - end - begin - return AssemblyAI::Lemur::LemurSummaryResponse.validate_raw(obj: obj) + return AssemblyAI::Lemur::LemurStringResponse.validate_raw(obj: obj) rescue StandardError # noop end @@ -74,11 +51,6 @@ def self.validate_raw(obj:) rescue StandardError # noop end - begin - return AssemblyAI::Lemur::LemurActionItemsResponse.validate_raw(obj: obj) - rescue StandardError - # noop - end raise("Passed value matched no type within the union, validation failed.") end end diff --git a/lib/assemblyai/lemur/types/lemur_string_response.rb b/lib/assemblyai/lemur/types/lemur_string_response.rb new file mode 100644 index 0000000..1d70afd --- /dev/null +++ b/lib/assemblyai/lemur/types/lemur_string_response.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "lemur_usage" +require "ostruct" +require "json" + +module AssemblyAI + class Lemur + class LemurStringResponse + # @return [String] The response generated by LeMUR. + attr_reader :response + # @return [String] The ID of the LeMUR request + attr_reader :request_id + # @return [AssemblyAI::Lemur::LemurUsage] The usage numbers for the LeMUR request + attr_reader :usage + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param response [String] The response generated by LeMUR. + # @param request_id [String] The ID of the LeMUR request + # @param usage [AssemblyAI::Lemur::LemurUsage] The usage numbers for the LeMUR request + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [AssemblyAI::Lemur::LemurStringResponse] + def initialize(response:, request_id:, usage:, additional_properties: nil) + @response = response + @request_id = request_id + @usage = usage + @additional_properties = additional_properties + @_field_set = { "response": response, "request_id": request_id, "usage": usage } + end + + # Deserialize a JSON object to an instance of LemurStringResponse + # + # @param json_object [String] + # @return [AssemblyAI::Lemur::LemurStringResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + response = struct["response"] + request_id = struct["request_id"] + if parsed_json["usage"].nil? + usage = nil + else + usage = parsed_json["usage"].to_json + usage = AssemblyAI::Lemur::LemurUsage.from_json(json_object: usage) + end + new( + response: response, + request_id: request_id, + usage: usage, + additional_properties: struct + ) + end + + # Serialize an instance of LemurStringResponse to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # 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. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.response.is_a?(String) != false || raise("Passed value for field obj.response is not the expected type, validation failed.") + obj.request_id.is_a?(String) != false || raise("Passed value for field obj.request_id is not the expected type, validation failed.") + AssemblyAI::Lemur::LemurUsage.validate_raw(obj: obj.usage) + end + end + end +end diff --git a/lib/assemblyai/lemur/types/lemur_summary_response.rb b/lib/assemblyai/lemur/types/lemur_summary_response.rb index 99ac86b..14a758f 100644 --- a/lib/assemblyai/lemur/types/lemur_summary_response.rb +++ b/lib/assemblyai/lemur/types/lemur_summary_response.rb @@ -7,7 +7,7 @@ module AssemblyAI class Lemur class LemurSummaryResponse - # @return [String] The response generated by LeMUR + # @return [String] The response generated by LeMUR. attr_reader :response # @return [String] The ID of the LeMUR request attr_reader :request_id @@ -21,7 +21,7 @@ class LemurSummaryResponse OMIT = Object.new - # @param response [String] The response generated by LeMUR + # @param response [String] The response generated by LeMUR. # @param request_id [String] The ID of the LeMUR request # @param usage [AssemblyAI::Lemur::LemurUsage] The usage numbers for the LeMUR request # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/assemblyai/transcripts/types/transcript_optional_params.rb b/lib/assemblyai/transcripts/types/transcript_optional_params.rb index bb85f30..6795d82 100644 --- a/lib/assemblyai/transcripts/types/transcript_optional_params.rb +++ b/lib/assemblyai/transcripts/types/transcript_optional_params.rb @@ -28,7 +28,9 @@ class TranscriptOptionalParams attr_reader :dual_channel # @return [AssemblyAI::Transcripts::SpeechModel] attr_reader :speech_model - # @return [String] + # @return [String] The URL to which we send webhook requests. We sends two different types of + # webhook requests. One request when a transcript is completed or failed, and one + # request when the redacted audio is ready if redact_pii_audio is enabled. attr_reader :webhook_url # @return [String] The header name to be sent with the transcript completed or failed webhook # requests @@ -135,7 +137,9 @@ class TranscriptOptionalParams # ://www.assemblyai.com/docs/models/speech-recognition#dual-channel-transcription) # transcription, can be true or false. # @param speech_model [AssemblyAI::Transcripts::SpeechModel] - # @param webhook_url [String] + # @param webhook_url [String] The URL to which we send webhook requests. We sends two different types of + # webhook requests. One request when a transcript is completed or failed, and one + # request when the redacted audio is ready if redact_pii_audio is enabled. # @param webhook_auth_header_name [String] The header name to be sent with the transcript completed or failed webhook # requests # @param webhook_auth_header_value [String] The header value to send back with the transcript completed or failed webhook diff --git a/lib/types_export.rb b/lib/types_export.rb index 613dce7..dc8aa3e 100644 --- a/lib/types_export.rb +++ b/lib/types_export.rb @@ -71,11 +71,12 @@ require_relative "assemblyai/realtime/types/realtime_temporary_token_response" require_relative "assemblyai/lemur/types/purge_lemur_request_data_response" require_relative "assemblyai/lemur/types/lemur_base_response" +require_relative "assemblyai/lemur/types/lemur_string_response" require_relative "assemblyai/lemur/types/lemur_task_response" require_relative "assemblyai/lemur/types/lemur_summary_response" +require_relative "assemblyai/lemur/types/lemur_action_items_response" require_relative "assemblyai/lemur/types/lemur_question_answer_response" require_relative "assemblyai/lemur/types/lemur_question_answer" -require_relative "assemblyai/lemur/types/lemur_action_items_response" require_relative "assemblyai/lemur/types/lemur_response" require_relative "assemblyai/lemur/types/lemur_base_params_context" require_relative "assemblyai/lemur/types/lemur_base_params" From 3a618f0e28d68b09eb7b1904bbb2a74122d92a72 Mon Sep 17 00:00:00 2001 From: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com> Date: Thu, 27 Jun 2024 17:13:44 +0300 Subject: [PATCH 2/3] Fix test_lemur, update version number --- lib/gemconfig.rb | 2 +- test/test_assemblyai.rb | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/gemconfig.rb b/lib/gemconfig.rb index 0a3b861..d73a4cb 100644 --- a/lib/gemconfig.rb +++ b/lib/gemconfig.rb @@ -2,7 +2,7 @@ module AssemblyAI module Gemconfig - VERSION = "1.0.0-beta.12" + VERSION = "1.0.0-beta.13" AUTHORS = [""].freeze EMAIL = "support@assemblyai.com" SUMMARY = "AssemblyAI Ruby SDK" diff --git a/test/test_assemblyai.rb b/test/test_assemblyai.rb index d5fdd9e..bdf3a52 100644 --- a/test/test_assemblyai.rb +++ b/test/test_assemblyai.rb @@ -98,12 +98,17 @@ def test_lemur client = AssemblyAI::Client.new(api_key: api_key) assert !client.lemur.summary(transcript_ids: transcript_ids).response.nil? - assert !client.lemur.question_answer( + qa_response = client.lemur.question_answer( transcript_ids: transcript_ids, questions: [{ - question: "What are they discussing?", answer_format: "text" - }] - ).response.nil? + question: "What are they discussing?", answer_format: "text" + }] + ) + assert !qa_response.response.nil? + + qa_response2 = client.lemur.get_response(request_id: qa_response.request_id) + + assert qa_response.to_json == qa_response2.to_json lemur_task = client.lemur.task( transcript_ids: transcript_ids, @@ -113,6 +118,6 @@ def test_lemur lemur_task2 = client.lemur.get_response(request_id: lemur_task.request_id) - assert Marshal.dump(lemur_task) == Marshal.dump(lemur_task2) + assert lemur_task.to_json == lemur_task2.to_json end end From 7eeb5a9ef6e861341726da1331ee84eeec259bcd Mon Sep 17 00:00:00 2001 From: Niels Swimberghe <3382717+Swimburger@users.noreply.github.com> Date: Thu, 27 Jun 2024 17:15:23 +0300 Subject: [PATCH 3/3] rubocop fix --- test/test_assemblyai.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_assemblyai.rb b/test/test_assemblyai.rb index bdf3a52..eb79a4c 100644 --- a/test/test_assemblyai.rb +++ b/test/test_assemblyai.rb @@ -101,8 +101,8 @@ def test_lemur qa_response = client.lemur.question_answer( transcript_ids: transcript_ids, questions: [{ - question: "What are they discussing?", answer_format: "text" - }] + question: "What are they discussing?", answer_format: "text" + }] ) assert !qa_response.response.nil?