From d246797e6342f2a48ff7f5b557202e167d593070 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 6 Mar 2024 03:15:38 -0500 Subject: [PATCH] remove old feature flags (100% rolled out) --- .../enqueue_infer_tts_handler.rs | 131 ++++++------------ .../models/list_voice_conversion_models.rs | 2 +- .../service/web/storyteller_web/src/main.rs | 2 - .../web/storyteller_web/src/server_state.rs | 10 -- 4 files changed, 42 insertions(+), 103 deletions(-) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs index d287528d28..3f7a00cfac 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs @@ -24,9 +24,7 @@ use http_server_common::request::get_request_ip::get_request_ip; use migration::text_to_speech::get_tts_model_for_enqueue_inference_migration::TtsModelForEnqueueInferenceMigrationWrapper; use mysql_queries::payloads::generic_inference_args::generic_inference_args::{GenericInferenceArgs, InferenceCategoryAbbreviated}; use mysql_queries::queries::generic_inference::web::insert_generic_inference_job::{insert_generic_inference_job, InsertGenericInferenceArgs}; -use mysql_queries::queries::tts::tts_inference_jobs::insert_tts_inference_job::TtsInferenceJobInsertBuilder; use redis_common::redis_keys::RedisKeys; -use tokens::tokens::tts_inference_jobs::TtsInferenceJobToken; use tokens::tokens::users::UserToken; use tts_common::priority::{FAKEYOU_DEFAULT_VALID_API_TOKEN_PRIORITY_LEVEL, FAKEYOU_INVESTOR_PRIORITY_LEVEL}; use user_input_common::check_for_slurs::contains_slurs; @@ -55,10 +53,6 @@ const STORYTELLER_DEMO_COOKIE_NAME : &str = "storyteller_demo"; /// const DEBUG_HEADER_NAME : &str = "enable-debug-mode"; -/// Requests with this header can be forced onto the new jobs system. -/// It'll be used to help test TT2 on the new system before it is rolled out for everyone. -const NEW_JOB_SYSTEM_HEADER_NAME : &str = "new-job-system"; - /// The routing tag header can send workloads to particular k8s hosts. /// This is useful for catching the live logs or intercepting the job. /// NB: This is only for the new job system. @@ -234,9 +228,6 @@ pub async fn enqueue_infer_tts_handler( let is_debug_request = get_request_header_optional(&http_request, DEBUG_HEADER_NAME) .is_some(); - let use_new_job_system_for_request = get_request_header_optional(&http_request, NEW_JOB_SYSTEM_HEADER_NAME) - .is_some(); - let maybe_routing_tag= get_request_header_optional(&http_request, ROUTING_TAG_HEADER_NAME) .map(|routing_tag| routing_tag.trim().to_string()); @@ -377,95 +368,55 @@ pub async fn enqueue_infer_tts_handler( // ==================== ENQUEUE APPROPRIATE TTS TYPE ==================== // - let use_new_job_system = use_new_job_system_for_request || server_state.flags.enable_enqueue_generic_tts_job; - - let job_token; - let job_token_type; - let model_type = InferenceModelType::Tacotron2; let max_duration_seconds = plan.tts_max_duration_seconds(); - if use_new_job_system { - // This branch uses the `generic-inference-job` service and tables. - info!("Creating tts inference job record (new generic job system)..."); + // This branch uses the `generic-inference-job` service and tables. + info!("Creating tts inference job record (new generic job system)..."); - let maybe_creator_user_token_typed = maybe_user_token - .as_deref() - .map(|token| UserToken::new_from_str(token)); + let maybe_creator_user_token_typed = maybe_user_token + .as_deref() + .map(|token| UserToken::new_from_str(token)); - let maybe_avt_token = server_state.avt_cookie_manager.get_avt_token_from_request(&http_request); + let maybe_avt_token = server_state.avt_cookie_manager.get_avt_token_from_request(&http_request); - let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { - uuid_idempotency_token: &request.uuid_idempotency_token, - job_type: InferenceJobType::Tacotron2, - inference_category: InferenceCategory::TextToSpeech, - maybe_model_type: Some(model_type), - maybe_model_token: Some(request.tts_model_token.as_str()), - maybe_input_source_token: None, // NB: TTS doesn't have input media - maybe_input_source_token_type: None, // NB: TTS doesn't have input media - maybe_download_url: None, - maybe_cover_image_media_file_token: None, - maybe_raw_inference_text: Some(inference_text.as_str()), - maybe_max_duration_seconds: Some(max_duration_seconds), - maybe_inference_args: Some(GenericInferenceArgs { - inference_category: Some(InferenceCategoryAbbreviated::TextToSpeech), - args: None, // NB: We don't need to encode any args yet. - }), - maybe_creator_user_token: maybe_creator_user_token_typed.as_ref(), - maybe_avt_token: maybe_avt_token.as_ref(), - creator_ip_address: &ip_address, - creator_set_visibility: set_visibility, - priority_level, - requires_keepalive: false, // TODO: We may want this to be the case in the future. - is_debug_request, - maybe_routing_tag: maybe_routing_tag.as_deref(), - mysql_pool: &server_state.mysql_pool, - }).await; + let query_result = insert_generic_inference_job(InsertGenericInferenceArgs { + uuid_idempotency_token: &request.uuid_idempotency_token, + job_type: InferenceJobType::Tacotron2, + inference_category: InferenceCategory::TextToSpeech, + maybe_model_type: Some(model_type), + maybe_model_token: Some(request.tts_model_token.as_str()), + maybe_input_source_token: None, // NB: TTS doesn't have input media + maybe_input_source_token_type: None, // NB: TTS doesn't have input media + maybe_download_url: None, + maybe_cover_image_media_file_token: None, + maybe_raw_inference_text: Some(inference_text.as_str()), + maybe_max_duration_seconds: Some(max_duration_seconds), + maybe_inference_args: Some(GenericInferenceArgs { + inference_category: Some(InferenceCategoryAbbreviated::TextToSpeech), + args: None, // NB: We don't need to encode any args yet. + }), + maybe_creator_user_token: maybe_creator_user_token_typed.as_ref(), + maybe_avt_token: maybe_avt_token.as_ref(), + creator_ip_address: &ip_address, + creator_set_visibility: set_visibility, + priority_level, + requires_keepalive: false, // TODO: We may want this to be the case in the future. + is_debug_request, + maybe_routing_tag: maybe_routing_tag.as_deref(), + mysql_pool: &server_state.mysql_pool, + }).await; - let inference_job_token = match query_result { - Ok((inference_job_token, _id)) => inference_job_token, - Err(err) => { - warn!("New (generic) tts inference job creation DB error: {:?}", err); - return Err(InferTtsError::ServerError); - } - }; - - job_token = inference_job_token.to_string(); - job_token_type = InferenceJobTokenType::Generic; - - } else { - // This branch uses the `tts-inference-job` service and tables. - info!("Creating tts inference job record (legacy job system)..."); - - // This token is returned to the client. - job_token = TtsInferenceJobToken::generate().to_string(); - - let query_result = TtsInferenceJobInsertBuilder::new_for_fakeyou_request() - .set_job_token(&job_token) - .set_uuid_idempotency_token(&request.uuid_idempotency_token) - .set_model_token(&request.tts_model_token) - .set_raw_inference_text(&inference_text) - .set_maybe_creator_user_token(maybe_user_token.as_deref()) - .set_creator_ip_address(&ip_address) - .set_creator_set_visibility(set_visibility.to_str()) - .set_priority_level(priority_level) - .set_max_duration_seconds(max_duration_seconds) - .set_is_from_api(is_from_api) - .set_is_debug_request(is_debug_request) - .insert(&server_state.mysql_pool) - .await; - - match query_result { - Ok(_) => {}, - Err(err) => { - warn!("New tts inference job creation DB error: {:?}", err); - return Err(InferTtsError::ServerError); - } + let inference_job_token = match query_result { + Ok((inference_job_token, _id)) => inference_job_token, + Err(err) => { + warn!("New (generic) tts inference job creation DB error: {:?}", err); + return Err(InferTtsError::ServerError); } + }; - job_token_type = InferenceJobTokenType::LegacyTts; - } + let job_token = inference_job_token.to_string(); server_state.firehose_publisher.enqueue_tts_inference(maybe_user_token.as_deref(), &job_token, &request.tts_model_token) .await @@ -476,8 +427,8 @@ pub async fn enqueue_infer_tts_handler( let response = InferTtsSuccessResponse { success: true, - inference_job_token: job_token.to_string(), - inference_job_token_type: job_token_type, + inference_job_token: job_token, + inference_job_token_type: InferenceJobTokenType::Generic, }; let body = serde_json::to_string(&response) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/models/list_voice_conversion_models.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/models/list_voice_conversion_models.rs index 68b206f143..aeaf7cd6f9 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/models/list_voice_conversion_models.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_conversion/models/list_voice_conversion_models.rs @@ -134,7 +134,7 @@ pub async fn list_voice_conversion_models_handler( })?; // TODO: Fail open in case the DB is down. Pull from expired cache if query fails. - let models = get_all_models(&mut mysql_connection, server_state.flags.switch_voice_conversion_to_model_weights) + let models = get_all_models(&mut mysql_connection, true) .await .map_err(|e| { error!("Error querying database: {:?}", e); diff --git a/crates/service/web/storyteller_web/src/main.rs b/crates/service/web/storyteller_web/src/main.rs index 2c5a809d66..a61474c0d9 100644 --- a/crates/service/web/storyteller_web/src/main.rs +++ b/crates/service/web/storyteller_web/src/main.rs @@ -357,8 +357,6 @@ async fn main() -> AnyhowResult<()> { troll_ban_user_percent: easyenv::get_env_num("FF_TROLL_BANNED_USER_PERCENT", 0)?, // Temporary flags - enable_enqueue_generic_tts_job: easyenv::get_env_bool_or_default("FF_ENABLE_ENQUEUE_GENERIC_TTS_JOB", false), - switch_voice_conversion_to_model_weights: easyenv::get_env_bool_or_default("FF_SWITCH_VOICE_CONVERSION_TO_MODEL_WEIGHTS", false), switch_tts_to_model_weights: easyenv::get_env_bool_or_default("FF_SWITCH_TTS_TO_MODEL_WEIGHTS", false), force_session_studio_flags: easyenv::get_env_bool_or_default("FF_FORCE_SESSION_STUDIO_FLAG", false), force_session_video_style_transfer_flags: easyenv::get_env_bool_or_default("FF_FORCE_SESSION_VST_FLAG", false), diff --git a/crates/service/web/storyteller_web/src/server_state.rs b/crates/service/web/storyteller_web/src/server_state.rs index e1c59c252c..8c2cd25211 100644 --- a/crates/service/web/storyteller_web/src/server_state.rs +++ b/crates/service/web/storyteller_web/src/server_state.rs @@ -254,16 +254,6 @@ pub struct StaticFeatureFlags { /// This should be a number over 100. pub troll_ban_user_percent: u8, - // TODO(2023-03-20): Remove temporary flag when done. - // NB(bt,2023-12-18): This is rolled out (=="TRUE") - /// TEMPORARY: Control enqueuing TTS jobs to the generic job worker. - pub enable_enqueue_generic_tts_job: bool, - - // TODO(2023-12-18): Remove temporary flag when done. - /// TEMPORARY: Move voice control model listing over to `model_weights` from `voice_conversion_models` - /// This will control all downstream enqueuing, jobs, etc. - pub switch_voice_conversion_to_model_weights: bool, - // TODO(2024-01-13): Remove temporary flag when done. /// TEMPORARY: Move voice control model listing over to `model_weights` from `tts_models` /// This will control all downstream enqueuing, jobs, etc.