More updates to seed tool

This commit is contained in:
Brandon Thomas committed 2023-10-06 01:30:43 -04:00
1 parent 6354e7c3b4
commit 39de5aba13
2 files changed
+35 -43

No files matched your search

@@ -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<MySql>) -> 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<MySql>,
) -> 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<MySql>) -> 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<MySql>) -> AnyhowResult<()> {
Ok(())
}
async fn seed_dataset(
username: &str,
email_address: &str,
password: &str,
mysql_pool: &Pool<MySql>,
) -> 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(())
}
@@ -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<ZsVoiceToke
maybe_creator_synthetic_id = Some(next_zs_dataset_synthetic_id);
}
// TODO(bt,2023-10-06): These should be parameters, and moreover they should be *enums*
// to limit their possible values.
const MODEL_CATEGORY : &str = "vc";
const MODEL_TYPE : &str = "vall-e-x";
const ENCODING_TYPE : &str = "encodec";
let query_result = sqlx::query!(
r#"
@@ -69,9 +66,9 @@ pub async fn create_voice(args: CreateVoiceArgs<'_>) -> AnyhowResult<ZsVoiceToke
"#,
voice_token.as_str(),
args.dataset_token,
MODEL_CATEGORY,
MODEL_TYPE,
ENCODING_TYPE,
args.model_category,
args.model_type,
args.model_encoding_type,
args.voice_title,
args.bucket_hash,
args.maybe_creator_user_token,