mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-14 05:42:32 +00:00
filter out certain model types (so we don't leak to competitors)
This commit is contained in:
1 parent
739f234ac3
commit
59fc891ce4
5 files changed
+43
-26
No files matched your search
+3
-25
@@ -17,6 +17,7 @@ use enums::common::job_status_plus::JobStatusPlus;
|
||||
use mysql_queries::queries::generic_inference::web::get_inference_job_status::get_inference_job_status;
|
||||
use redis_common::redis_keys::RedisKeys;
|
||||
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
|
||||
use crate::http_server::responses::filter_model_name::maybe_filter_model_name;
|
||||
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::server_state::ServerState;
|
||||
@@ -203,7 +204,7 @@ pub async fn get_inference_job_status_handler(
|
||||
job_token: record.job_token,
|
||||
request: RequestDetailsResponse {
|
||||
inference_category: record.request_details.inference_category,
|
||||
maybe_model_type: filter_model_name(record.request_details.maybe_model_type),
|
||||
maybe_model_type: maybe_filter_model_name(record.request_details.maybe_model_type.as_deref()),
|
||||
maybe_model_token: record.request_details.maybe_model_token,
|
||||
maybe_model_title: record.request_details.maybe_model_title,
|
||||
maybe_raw_inference_text: record.request_details.maybe_raw_inference_text,
|
||||
@@ -211,7 +212,7 @@ pub async fn get_inference_job_status_handler(
|
||||
status: StatusDetailsResponse {
|
||||
status: record.status,
|
||||
maybe_extra_status_description,
|
||||
maybe_assigned_worker: filter_model_name(record.maybe_assigned_worker),
|
||||
maybe_assigned_worker: maybe_filter_model_name(record.maybe_assigned_worker.as_deref()),
|
||||
maybe_assigned_cluster: record.maybe_assigned_cluster,
|
||||
maybe_first_started_at: record.maybe_first_started_at,
|
||||
attempt_count: record.attempt_count as u8,
|
||||
@@ -295,26 +296,3 @@ pub async fn get_inference_job_status_handler(
|
||||
.content_type("application/json")
|
||||
.body(body))
|
||||
}
|
||||
|
||||
fn filter_model_name(name: Option<String>) -> Option<String> {
|
||||
// We're not revealing some of the models we use
|
||||
name.map(|name| {
|
||||
name.replace("sadtalker", "faceanimator")
|
||||
.replace("sad-talker", "face-animator")
|
||||
.replace("sad_talker", "face_animator")
|
||||
.replace("vall_e_x", "voice_designer")
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::http_server::endpoints::inference_job::get_inference_job_status::filter_model_name;
|
||||
|
||||
#[test]
|
||||
fn test_filter_model_name() {
|
||||
assert_eq!(filter_model_name(None), None);
|
||||
assert_eq!(filter_model_name(Some("foobarbaz".to_string())), Some("foobarbaz".to_string()));
|
||||
assert_eq!(filter_model_name(Some("inference-job-sadtalker-5df55cfbb7-ngxzh".to_string())), Some("inference-job-faceanimator-5df55cfbb7-ngxzh".to_string()));
|
||||
assert_eq!(filter_model_name(Some("sad_talker".to_string())), Some("face_animator".to_string()));
|
||||
}
|
||||
}
|
||||
+6
-1
@@ -14,6 +14,7 @@ use mysql_queries::queries::generic_inference::web::get_inference_job_status::ge
|
||||
use mysql_queries::queries::tts::tts_inference_jobs::get_tts_inference_job_status::get_tts_inference_job_status;
|
||||
use redis_common::redis_keys::RedisKeys;
|
||||
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
|
||||
use crate::http_server::responses::filter_model_name::filter_model_name;
|
||||
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::server_state::ServerState;
|
||||
@@ -225,6 +226,10 @@ async fn modern_lookup(job_token: &str, server_state: &ServerState)
|
||||
}
|
||||
};
|
||||
|
||||
// NB: Model type is probably TT2, but let's filter it in case a hidden model type ever sneaks in
|
||||
let model_type = record.request_details.maybe_model_type.as_deref().unwrap_or_else(|| "tacotron2");
|
||||
let model_type = filter_model_name(model_type);
|
||||
|
||||
Ok(TtsInferenceJobStatusForResponse {
|
||||
job_token: record.job_token.to_string(),
|
||||
status: record.status.to_string(),
|
||||
@@ -251,7 +256,7 @@ async fn modern_lookup(job_token: &str, server_state: &ServerState)
|
||||
}
|
||||
}),
|
||||
model_token: record.request_details.maybe_model_token.unwrap_or_else(|| "NO_MODEL_TOKEN".to_string()),
|
||||
tts_model_type: record.request_details.maybe_model_type.unwrap_or_else(|| "tacotron2".to_string()), // NB: It's probably TT2
|
||||
tts_model_type: model_type,
|
||||
title: record.request_details.maybe_model_title.unwrap_or_else(|| "no model title".to_string()),
|
||||
raw_inference_text: record.request_details.maybe_raw_inference_text.unwrap_or_else(|| "no inference text".to_string()),
|
||||
created_at: record.created_at,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
pub mod common_responses;
|
||||
pub mod endpoints;
|
||||
pub mod middleware;
|
||||
pub mod responses;
|
||||
pub mod web_utils;
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
pub fn filter_model_name(name: &str) -> String {
|
||||
// We're not revealing some of the models we use
|
||||
name.replace("sadtalker", "faceanimator")
|
||||
.replace("sad-talker", "face-animator")
|
||||
.replace("sad_talker", "face_animator")
|
||||
.replace("vall-e-x", "voice_designer")
|
||||
.replace("vall_e_x", "voice_designer")
|
||||
.replace("vallex", "voice_designer")
|
||||
}
|
||||
|
||||
pub fn maybe_filter_model_name(name: Option<&str>) -> Option<String> {
|
||||
name.map(|name| filter_model_name(name))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::http_server::responses::filter_model_name::maybe_filter_model_name;
|
||||
|
||||
#[test]
|
||||
fn test_maybe_filter_model_name() {
|
||||
// Unfiltered
|
||||
assert_eq!(maybe_filter_model_name(None), None);
|
||||
assert_eq!(maybe_filter_model_name(Some("foobarbaz")), Some("foobarbaz".to_string()));
|
||||
|
||||
// Filter raw field values
|
||||
assert_eq!(maybe_filter_model_name(Some("sad_talker")), Some("face_animator".to_string()));
|
||||
|
||||
// Filter inclusion in pod worker names
|
||||
assert_eq!(maybe_filter_model_name(Some("inference-job-sadtalker-5df55cfbb7-ngxzh")), Some("inference-job-faceanimator-5df55cfbb7-ngxzh".to_string()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
pub mod filter_model_name;
|
||||
Reference in new issue
Block a user