真人素材库修复相关BUG
This commit is contained in:
@@ -33,6 +33,7 @@ from app.services.resource_accounting_service import (
|
||||
record_generation_record_generated_resource,
|
||||
safe_file_size,
|
||||
)
|
||||
from app.services.private_portrait.reference_resolver import batch_resolve_private_portrait_reference_display_urls, resolve_private_portrait_reference_display_urls
|
||||
from app.services.resource_signed_url_service import build_resource_signed_url
|
||||
from app.services.resource_capacity_service import assert_user_resource_capacity_available
|
||||
from app.services.generation_billing_service import (
|
||||
@@ -59,9 +60,9 @@ router = APIRouter(prefix="/generation-records", tags=["generation"])
|
||||
logger = logging.getLogger("videogen")
|
||||
|
||||
|
||||
def _record_to_out(record: GenerationRecord, project_name: str) -> GenerationRecordOut:
|
||||
refs = None
|
||||
if record.media_references:
|
||||
def _record_to_out(record: GenerationRecord, project_name: str, refs_override: list[dict] | None = None) -> GenerationRecordOut:
|
||||
refs = refs_override
|
||||
if refs is None and record.media_references:
|
||||
try:
|
||||
refs = json.loads(record.media_references)
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
@@ -191,13 +192,18 @@ async def list_records(
|
||||
|
||||
result = await db.execute(query)
|
||||
rows = result.all()
|
||||
refs_map = await batch_resolve_private_portrait_reference_display_urls(
|
||||
db,
|
||||
{record.id: json.loads(record.media_references) if record.media_references else None for record, _project_name in rows},
|
||||
user_id=current_user.id,
|
||||
)
|
||||
|
||||
return {
|
||||
"total": int(total),
|
||||
"page": page,
|
||||
"page_size": page_size,
|
||||
"items": [
|
||||
_record_to_out(record, project_name)
|
||||
_record_to_out(record, project_name, refs_override=refs_map.get(record.id))
|
||||
for record, project_name in rows
|
||||
],
|
||||
}
|
||||
@@ -240,11 +246,12 @@ async def optimize(
|
||||
row = existing.first()
|
||||
if row:
|
||||
record, project_name = row
|
||||
refs = await resolve_private_portrait_reference_display_urls(db, json.loads(record.media_references) if record.media_references else None, user_id=current_user.id)
|
||||
return OptimizeResult(
|
||||
optimized_prompt=record.optimized_prompt or "",
|
||||
text_credits_cost=record.text_credits_cost or 0.00,
|
||||
text_tokens_used=record.text_tokens_used or 0,
|
||||
record=_record_to_out(record, project_name),
|
||||
record=_record_to_out(record, project_name, refs_override=refs),
|
||||
)
|
||||
|
||||
# Check project exists and belongs to user
|
||||
@@ -370,11 +377,12 @@ async def optimize(
|
||||
record.text_tokens_used = token_usage["total_tokens"]
|
||||
await db.flush()
|
||||
|
||||
refs = await resolve_private_portrait_reference_display_urls(db, json.loads(record.media_references) if record.media_references else None, user_id=current_user.id)
|
||||
return OptimizeResult(
|
||||
optimized_prompt=optimized,
|
||||
text_credits_cost=round(text_credits, 2),
|
||||
# text_tokens_used=token_usage["total_tokens"],
|
||||
record=_record_to_out(record, project.name),
|
||||
record=_record_to_out(record, project.name, refs_override=refs),
|
||||
)
|
||||
|
||||
|
||||
@@ -502,7 +510,8 @@ async def generate(
|
||||
)
|
||||
await db.flush()
|
||||
|
||||
return _record_to_out(record, project_name)
|
||||
refs = await resolve_private_portrait_reference_display_urls(db, json.loads(record.media_references) if record.media_references else None, user_id=current_user.id)
|
||||
return _record_to_out(record, project_name, refs_override=refs)
|
||||
|
||||
|
||||
@router.post("/{record_id}/retry")
|
||||
@@ -578,7 +587,8 @@ async def retry_generation(
|
||||
)
|
||||
await db.flush()
|
||||
|
||||
return _record_to_out(record, project_name)
|
||||
refs = await resolve_private_portrait_reference_display_urls(db, json.loads(record.media_references) if record.media_references else None, user_id=current_user.id)
|
||||
return _record_to_out(record, project_name, refs_override=refs)
|
||||
|
||||
|
||||
@router.put("/{record_id}/prompt")
|
||||
|
||||
Reference in New Issue
Block a user