feat: Implement AI script generation for audiobook projects

This commit is contained in:
2026-03-13 11:29:56 +08:00
parent 444dcb8bcf
commit 35bf7a302a
14 changed files with 682 additions and 17 deletions

View File

@@ -421,6 +421,7 @@ def create_audiobook_project(
source_text: Optional[str] = None,
source_path: Optional[str] = None,
llm_model: Optional[str] = None,
script_config: Optional[Dict[str, Any]] = None,
) -> AudiobookProject:
project = AudiobookProject(
user_id=user_id,
@@ -429,6 +430,7 @@ def create_audiobook_project(
source_text=source_text,
source_path=source_path,
llm_model=llm_model,
script_config=script_config,
status="pending",
)
db.add(project)
@@ -501,6 +503,13 @@ def get_audiobook_chapter(db: Session, chapter_id: int) -> Optional[AudiobookCha
return db.query(AudiobookChapter).filter(AudiobookChapter.id == chapter_id).first()
def get_audiobook_chapter_by_index(db: Session, project_id: int, chapter_index: int) -> Optional[AudiobookChapter]:
return db.query(AudiobookChapter).filter(
AudiobookChapter.project_id == project_id,
AudiobookChapter.chapter_index == chapter_index,
).first()
def list_audiobook_chapters(db: Session, project_id: int) -> List[AudiobookChapter]:
return db.query(AudiobookChapter).filter(
AudiobookChapter.project_id == project_id