feat: support configurable card variables and layouts

This commit is contained in:
2026-08-14 13:36:53 +08:00
parent f952d6dc58
commit 77399df060
14 changed files with 619 additions and 88 deletions

View File

@@ -50,6 +50,7 @@ def save_content_generation_config(
config_type=config_type,
template_content=payload.templateContent,
instruction_content=payload.instructionContent,
variables=[item.model_dump() for item in payload.variables],
updated_by=current_admin.id,
)
OperationLogService.write(
@@ -166,7 +167,15 @@ def preview_content_generation(
payload: ContentGenerationPreviewRequest,
current_admin: Admin = Depends(get_current_admin),
) -> dict:
return api_success({"content": ContentGenerationConfigService.preview(payload.configType, payload.templateContent)})
return api_success(
{
"content": ContentGenerationConfigService.preview(
payload.configType,
payload.templateContent,
[item.model_dump() for item in payload.variables],
)
}
)
@router.post("/content-generation/test")
@@ -175,6 +184,7 @@ def test_content_generation(
db: Session = Depends(get_db),
current_admin: Admin = Depends(get_current_admin),
) -> dict:
variables = [item.model_dump() for item in payload.variables]
values = dict(SAMPLE_VALUES)
values.update(
{
@@ -183,6 +193,7 @@ def test_content_generation(
"current_focus": "(请由 AI 根据测试材料整理)",
"next_observation": "(请由 AI 根据测试材料整理)",
"teacher_question": "(请由 AI 根据测试材料整理)",
"source_material": payload.sampleText.strip()[:20000],
}
)
generated, used_fallback = ContentGenerationConfigService.generate_values(
@@ -190,9 +201,10 @@ def test_content_generation(
config_type=payload.configType,
instruction_content=payload.instructionContent,
values=values,
variables=variables,
user_id=None,
)
content = ContentGenerationConfigService.render(payload.configType, payload.templateContent, generated)
content = ContentGenerationConfigService.render(payload.configType, payload.templateContent, generated, variables)
OperationLogService.write(
db,
admin_id=current_admin.id,