mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-07 02:21:23 +00:00
refactor
This commit is contained in:
1 parent
d2e545fa46
commit
38499e421e
6 files changed
+42
-40
No files matched your search
+11
-4
@@ -31,7 +31,8 @@ use crate::http_server::endpoints::generate::common::payments_error_test::paymen
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
use super::request_to_costs::estimate_costs;
|
||||
use super::request_to_costs::request_to_costs;
|
||||
use super::transform_request::transform_request;
|
||||
|
||||
/// Generate an image using the omni-gen unified endpoint.
|
||||
#[utoipa::path(
|
||||
@@ -55,6 +56,14 @@ pub async fn omni_gen_image_generate_handler(
|
||||
|
||||
payments_error_test(&request.prompt.as_deref().unwrap_or(""))?;
|
||||
|
||||
// ==================== TRANSFORM REQUEST ==================== //
|
||||
|
||||
let mut generate_request = transform_request(&request)?;
|
||||
|
||||
// ==================== COST ==================== //
|
||||
|
||||
let cost_estimate = request_to_costs(&mut generate_request)?;
|
||||
|
||||
// ==================== SESSION ==================== //
|
||||
|
||||
let mut mysql_connection = server_state.mysql_pool.acquire().await?;
|
||||
@@ -94,9 +103,7 @@ pub async fn omni_gen_image_generate_handler(
|
||||
AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string())
|
||||
})?;
|
||||
|
||||
// ==================== COST + BILLING ==================== //
|
||||
|
||||
let cost_estimate = estimate_costs(&request)?;
|
||||
// ==================== BILLING ==================== //
|
||||
|
||||
let cost = cost_estimate.cost_in_credits.unwrap_or(0);
|
||||
|
||||
|
||||
+5
-8
@@ -1,20 +1,17 @@
|
||||
use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::generate::generate_image::generate_image_request::GenerateImageRequest;
|
||||
use artcraft_router::generate::generate_image::image_generation_cost_estimate::ImageGenerationCostEstimate;
|
||||
use log::warn;
|
||||
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::endpoints::omni_gen::generate::image::transform_request::transform_request;
|
||||
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_image_cost_and_generate_request::OmniGenImageCostAndGenerateRequest;
|
||||
|
||||
/// Build the Artcraft-provider cost plan for this request.
|
||||
pub fn estimate_costs(
|
||||
request: &OmniGenImageCostAndGenerateRequest,
|
||||
pub fn request_to_costs(
|
||||
request: &mut GenerateImageRequest<'_>,
|
||||
) -> Result<ImageGenerationCostEstimate, AdvancedCommonWebError> {
|
||||
let mut generate_request = transform_request(request)?;
|
||||
generate_request.provider = Provider::Artcraft;
|
||||
request.provider = Provider::Artcraft;
|
||||
|
||||
let plan = generate_request.build()
|
||||
let plan = request.build()
|
||||
.map_err(|e| {
|
||||
warn!("Failed to build cost plan: {}", e);
|
||||
AdvancedCommonWebError::from_error(e)
|
||||
|
||||
+5
-8
@@ -1,16 +1,13 @@
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::endpoints::omni_gen::generate::image::transform_request::transform_request;
|
||||
use artcraft_router::generate::generate_image::generate_image_request::GenerateImageRequest;
|
||||
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_image_cost_and_generate_request::OmniGenImageCostAndGenerateRequest;
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
|
||||
/// Validate that an execution plan can be built for this request.
|
||||
/// Returns an error if the model/provider combination is unsupported.
|
||||
pub fn validate_execution_plan(
|
||||
request: &OmniGenImageCostAndGenerateRequest,
|
||||
pub fn request_to_execution_plan(
|
||||
request: &GenerateImageRequest<'_>,
|
||||
) -> Result<(), AdvancedCommonWebError> {
|
||||
let generate_request = transform_request(request)?;
|
||||
|
||||
generate_request.build()
|
||||
request.build()
|
||||
.map(|_| ())
|
||||
.map_err(|e| AdvancedCommonWebError::BadInputWithSimpleMessage(
|
||||
format!("Failed to build execution plan: {}", e),
|
||||
|
||||
+11
-4
@@ -31,7 +31,8 @@ use crate::http_server::endpoints::generate::common::payments_error_test::paymen
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
use super::request_to_costs::estimate_costs;
|
||||
use super::request_to_costs::request_to_costs;
|
||||
use super::transform_request::transform_request;
|
||||
|
||||
/// Generate a video using the omni-gen unified endpoint.
|
||||
#[utoipa::path(
|
||||
@@ -55,6 +56,14 @@ pub async fn omni_gen_video_generate_handler(
|
||||
|
||||
payments_error_test(&request.prompt.as_deref().unwrap_or(""))?;
|
||||
|
||||
// ==================== TRANSFORM REQUEST ==================== //
|
||||
|
||||
let mut generate_request = transform_request(&request)?;
|
||||
|
||||
// ==================== COST ==================== //
|
||||
|
||||
let cost_estimate = request_to_costs(&mut generate_request)?;
|
||||
|
||||
// ==================== SESSION ==================== //
|
||||
|
||||
let mut mysql_connection = server_state.mysql_pool.acquire().await?;
|
||||
@@ -94,9 +103,7 @@ pub async fn omni_gen_video_generate_handler(
|
||||
AdvancedCommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string())
|
||||
})?;
|
||||
|
||||
// ==================== COST + BILLING ==================== //
|
||||
|
||||
let cost_estimate = estimate_costs(&request)?;
|
||||
// ==================== BILLING ==================== //
|
||||
|
||||
let cost = cost_estimate.cost_in_credits.unwrap_or(0);
|
||||
|
||||
|
||||
+5
-8
@@ -1,20 +1,17 @@
|
||||
use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::video_generation_cost_estimate::VideoGenerationCostEstimate;
|
||||
use log::warn;
|
||||
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::endpoints::omni_gen::generate::video::transform_request::transform_request;
|
||||
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_video_cost_and_generate_request::OmniGenVideoCostAndGenerateRequest;
|
||||
|
||||
/// Build the Artcraft-provider cost plan for this request.
|
||||
pub fn estimate_costs(
|
||||
request: &OmniGenVideoCostAndGenerateRequest,
|
||||
pub fn request_to_costs(
|
||||
request: &mut GenerateVideoRequest<'_>,
|
||||
) -> Result<VideoGenerationCostEstimate, AdvancedCommonWebError> {
|
||||
let mut generate_request = transform_request(request)?;
|
||||
generate_request.provider = Provider::Artcraft;
|
||||
request.provider = Provider::Artcraft;
|
||||
|
||||
let plan = generate_request.build()
|
||||
let plan = request.build()
|
||||
.map_err(|e| {
|
||||
warn!("Failed to build cost plan: {}", e);
|
||||
AdvancedCommonWebError::from_error(e)
|
||||
|
||||
+5
-8
@@ -1,16 +1,13 @@
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::endpoints::omni_gen::generate::video::transform_request::transform_request;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
|
||||
use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_video_cost_and_generate_request::OmniGenVideoCostAndGenerateRequest;
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
|
||||
/// Validate that an execution plan can be built for this request.
|
||||
/// Returns an error if the model/provider combination is unsupported.
|
||||
pub fn validate_execution_plan(
|
||||
request: &OmniGenVideoCostAndGenerateRequest,
|
||||
pub fn request_to_execution_plan(
|
||||
request: &GenerateVideoRequest<'_>,
|
||||
) -> Result<(), AdvancedCommonWebError> {
|
||||
let generate_request = transform_request(request)?;
|
||||
|
||||
generate_request.build()
|
||||
request.build()
|
||||
.map(|_| ())
|
||||
.map_err(|e| AdvancedCommonWebError::BadInputWithSimpleMessage(
|
||||
format!("Failed to build execution plan: {}", e),
|
||||
|
||||
Reference in new issue
Block a user