Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.

🌿 Fern Regeneration -- June 27, 2024 #37

Merged
merged 3 commits into from
Jun 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/assemblyai/lemur/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions lib/assemblyai/lemur/types/lemur_action_items_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
36 changes: 4 additions & 32 deletions lib/assemblyai/lemur/types/lemur_response.rb
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down
80 changes: 80 additions & 0 deletions lib/assemblyai/lemur/types/lemur_string_response.rb
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions lib/assemblyai/lemur/types/lemur_summary_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lib/gemconfig.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 2 additions & 1 deletion lib/types_export.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
11 changes: 8 additions & 3 deletions test/test_assemblyai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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?
)
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,
Expand All @@ -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