From 39de5aba13cf4a37ec73653df33fce7267f13b5f Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 6 Oct 2023 01:30:28 -0400 Subject: [PATCH] More updates to seed tool --- .../src/seeding/zero_shot_tts.rs | 61 +++++++++---------- .../voice_designer/voices/create_voice.rs | 17 +++--- 2 files changed, 35 insertions(+), 43 deletions(-) diff --git a/crates/cli/dev_database_seed/src/seeding/zero_shot_tts.rs b/crates/cli/dev_database_seed/src/seeding/zero_shot_tts.rs index 34214e5ac4..0177141bab 100644 --- a/crates/cli/dev_database_seed/src/seeding/zero_shot_tts.rs +++ b/crates/cli/dev_database_seed/src/seeding/zero_shot_tts.rs @@ -2,12 +2,10 @@ use log::info; use sqlx::{MySql, Pool}; use errors::{anyhow, AnyhowResult}; -use hashing::bcrypt::bcrypt_password_hash::bcrypt_password_hash; -use hashing::md5::email_to_gravatar_hash::email_to_gravatar_hash; -use mysql_queries::queries::users::user::create_account::{create_account, CreateAccountArgs}; use mysql_queries::queries::users::user::get_user_token_by_username::get_user_token_by_username; use mysql_queries::queries::voice_designer::datasets::create_dataset::{create_dataset, CreateDatasetArgs}; use mysql_queries::queries::voice_designer::voices::create_voice::{create_voice, CreateVoiceArgs}; +use tokens::users::user::UserToken; use crate::seeding::users::HANASHI_USERNAME; @@ -19,11 +17,33 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool) -> AnyhowResult<()> { Some(token) => token, }; + let records = [ + ("Goku", "todo", &user_token), + ("David Attenborough", "todo", &user_token), + ("Ash Ketchum", "todo", &user_token), + ]; + + for (voice_name, bucket_hash, user_token) in records { + create_voice_records(voice_name, user_token, mysql_pool).await?; + } + + Ok(()) +} + +async fn create_voice_records( + voice_name: &str, + creator_user_token: &UserToken, + mysql_pool: &Pool, +) -> AnyhowResult<()> { + info!("Creating voice records for voice {} ...", voice_name); + + let dataset_title = format!("{} dataset", voice_name); + info!("Creating dataset..."); let dataset_token = create_dataset(CreateDatasetArgs { - dataset_title: "Goku Dataset", - maybe_creator_user_token: Some(user_token.as_str()), + dataset_title: &dataset_title, + maybe_creator_user_token: Some(creator_user_token.as_str()), creator_ip_address: "127.0.0.1", creator_set_visibility: &Default::default(), maybe_mod_user_token: None, @@ -38,9 +58,9 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool) -> AnyhowResult<()> { model_type: "vall-e-x", model_version: 0, model_encoding_type: "encodec", - voice_title: "Goku Voice", - bucket_hash: "asdf", - maybe_creator_user_token: Some(&user_token), + voice_title: &voice_name, + bucket_hash: "asdf", // TODO + maybe_creator_user_token: Some(&creator_user_token), creator_ip_address: "127.0.0.1", creator_set_visibility: &Default::default(), mysql_pool, @@ -48,28 +68,3 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool) -> AnyhowResult<()> { Ok(()) } - -async fn seed_dataset( - username: &str, - email_address: &str, - password: &str, - mysql_pool: &Pool, -) -> AnyhowResult<()> { - info!("Seeding user {} ...", username); - - let display_name = username.clone(); - let username = username.to_lowercase(); - let email_gravatar_hash = email_to_gravatar_hash(&email_address); - let password_hash = bcrypt_password_hash(password)?; - - create_account(mysql_pool, CreateAccountArgs { - username: &username, - display_name, - email_address, - email_gravatar_hash: &email_gravatar_hash, - password_hash: &password_hash, - ip_address: "127.0.0.1", - }).await.map_err(|err| anyhow!("err: {:?}", err))?; - - Ok(()) -} diff --git a/crates/lib/mysql_queries/src/queries/voice_designer/voices/create_voice.rs b/crates/lib/mysql_queries/src/queries/voice_designer/voices/create_voice.rs index f693b18fd9..3f7812959b 100644 --- a/crates/lib/mysql_queries/src/queries/voice_designer/voices/create_voice.rs +++ b/crates/lib/mysql_queries/src/queries/voice_designer/voices/create_voice.rs @@ -1,17 +1,19 @@ use anyhow::anyhow; use sqlx::MySqlPool; -use enums::common::visibility::Visibility; -use enums::by_table::generic_synthetic_ids::id_category::IdCategory; +use enums::by_table::generic_synthetic_ids::id_category::IdCategory; +use enums::common::visibility::Visibility; use errors::AnyhowResult; use tokens::tokens::zs_dataset::ZsDatasetToken; use tokens::tokens::zs_voice::ZsVoiceToken; use tokens::users::user::UserToken; + use crate::queries::generic_synthetic_ids::transactional_increment_generic_synthetic_id::transactional_increment_generic_synthetic_id; pub struct CreateVoiceArgs<'a> { pub dataset_token: &'a ZsDatasetToken, + // TODO(bt,2023-10-06): These should be *Rust Enums* to limit their possible range of values. pub model_category: &'a str, pub model_type: &'a str, pub model_version: u64, @@ -45,11 +47,6 @@ pub async fn create_voice(args: CreateVoiceArgs<'_>) -> AnyhowResult) -> AnyhowResult