Enrich external API failure audit metadata

This commit is contained in:
kdletters
2026-05-28 15:42:46 +08:00
parent 2cd2b9704b
commit f1fb92aa29
40 changed files with 315 additions and 152 deletions

View File

@@ -701,6 +701,7 @@ pub async fn generate_match3d_cover_image(
.await?;
let generated_cover = generate_match3d_cover_image_asset(
&state,
&request_context,
&context.owner_user_id,
context.session_id.as_str(),
profile_id.as_str(),
@@ -772,6 +773,7 @@ pub async fn generate_match3d_background_image_for_work(
async {
let generated_background = generate_match3d_background_image(
&state,
&request_context,
owner_user_id.as_str(),
session_id.as_str(),
profile_id.as_str(),
@@ -883,6 +885,7 @@ pub async fn generate_match3d_container_image_for_work(
async {
let generated_container = generate_match3d_container_image(
&state,
&request_context,
owner_user_id.as_str(),
session_id.as_str(),
profile_id.as_str(),

View File

@@ -202,6 +202,7 @@ async fn generate_match3d_item_image_assets_in_batches(
async move {
let material_sheet = generate_match3d_material_sheet_from_level_scene(
state,
request_context,
owner_user_id,
session_id,
profile_id,
@@ -747,16 +748,19 @@ pub(super) struct Match3DSlicedItemImage {
async fn generate_match3d_material_sheet_from_level_scene(
state: &AppState,
request_context: &RequestContext,
owner_user_id: &str,
session_id: &str,
profile_id: &str,
config: &Match3DConfigJson,
background_asset: Option<&Match3DGeneratedBackgroundAsset>,
) -> Result<Match3DMaterialSheet, AppError> {
let settings = require_openai_image_settings(state)?.with_external_api_audit_context(
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let settings = require_openai_image_settings(state)?
.with_external_api_audit_context(
request_context,
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let http_client = build_openai_image_http_client(&settings)?;
let prompt = build_match3d_item_spritesheet_prompt();
let reference = load_match3d_level_scene_reference_image(state, background_asset).await?;

View File

@@ -214,6 +214,7 @@ pub(super) async fn ensure_match3d_background_asset(
let generated_background = generate_match3d_level_asset_bundle(
state,
request_context,
owner_user_id,
session_id,
profile_id,
@@ -260,6 +261,7 @@ pub(super) async fn resolve_or_generate_match3d_level_asset_bundle(
};
generate_match3d_level_asset_bundle(
state,
request_context,
owner_user_id,
session_id,
profile_id,
@@ -292,6 +294,7 @@ pub(super) fn build_match3d_item_slug(item_id: &str, item_name: &str) -> String
pub(super) async fn generate_match3d_cover_image_asset(
state: &AppState,
request_context: &RequestContext,
owner_user_id: &str,
session_id: &str,
profile_id: &str,
@@ -301,10 +304,12 @@ pub(super) async fn generate_match3d_cover_image_asset(
reference_image_srcs: Vec<String>,
) -> Result<Match3DAssetUpload, AppError> {
require_match3d_oss_client(state)?;
let settings = require_openai_image_settings(state)?.with_external_api_audit_context(
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let settings = require_openai_image_settings(state)?
.with_external_api_audit_context(
request_context,
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let http_client = build_openai_image_http_client(&settings)?;
let cover_prompt = build_match3d_cover_generation_prompt(config, prompt);
let generated = if let Some(uploaded_image) = resolve_match3d_reference_image_for_edit(
@@ -425,6 +430,7 @@ pub(super) fn build_match3d_cover_reference_generation_prompt(
pub(super) async fn generate_match3d_background_image(
state: &AppState,
request_context: &RequestContext,
owner_user_id: &str,
session_id: &str,
profile_id: &str,
@@ -433,6 +439,7 @@ pub(super) async fn generate_match3d_background_image(
) -> Result<Match3DGeneratedBackgroundAsset, AppError> {
generate_match3d_level_asset_bundle(
state,
request_context,
owner_user_id,
session_id,
profile_id,
@@ -444,6 +451,7 @@ pub(super) async fn generate_match3d_background_image(
pub(super) async fn generate_match3d_level_asset_bundle(
state: &AppState,
request_context: &RequestContext,
owner_user_id: &str,
session_id: &str,
profile_id: &str,
@@ -451,10 +459,12 @@ pub(super) async fn generate_match3d_level_asset_bundle(
prompt: &str,
) -> Result<Match3DGeneratedBackgroundAsset, AppError> {
require_match3d_oss_client(state)?;
let settings = require_openai_image_settings(state)?.with_external_api_audit_context(
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let settings = require_openai_image_settings(state)?
.with_external_api_audit_context(
request_context,
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let http_client = build_openai_image_http_client(&settings)?;
let level_scene_prompt = build_match3d_level_scene_generation_prompt(config);
@@ -589,6 +599,7 @@ pub(super) async fn generate_match3d_level_asset_bundle(
pub(super) async fn generate_match3d_container_image(
state: &AppState,
request_context: &RequestContext,
owner_user_id: &str,
session_id: &str,
profile_id: &str,
@@ -596,10 +607,12 @@ pub(super) async fn generate_match3d_container_image(
prompt: &str,
) -> Result<Match3DGeneratedBackgroundAsset, AppError> {
require_match3d_oss_client(state)?;
let settings = require_openai_image_settings(state)?.with_external_api_audit_context(
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let settings = require_openai_image_settings(state)?
.with_external_api_audit_context(
request_context,
Some(owner_user_id.to_string()),
Some(profile_id.to_string()),
);
let http_client = build_openai_image_http_client(&settings)?;
let reference_image = load_match3d_container_reference_image()?;
let container_prompt = build_match3d_container_generation_prompt(config, prompt);