43 lines
712 B
Python
43 lines
712 B
Python
"""심층 분석의 입력 모델."""
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class BookMetadata(BaseModel):
|
|
title: str
|
|
author: str
|
|
|
|
|
|
class Excerpt(BaseModel):
|
|
text: str
|
|
locator: str | None = None # 페이지·장 표기
|
|
|
|
|
|
class DiscussionTurn(BaseModel):
|
|
speaker: str
|
|
text: str
|
|
|
|
|
|
class Persona(BaseModel):
|
|
name: str
|
|
personality: str
|
|
speaking_style: str
|
|
perspective: str
|
|
|
|
|
|
class AnalysisInput(BaseModel):
|
|
book: BookMetadata
|
|
persona: Persona
|
|
excerpts: list[Excerpt] = []
|
|
turns: list[DiscussionTurn] = []
|
|
|
|
|
|
class Claim(BaseModel):
|
|
speaker: str
|
|
statement: str
|
|
evidence: list[str] = []
|
|
|
|
|
|
class DiscussionContext(BaseModel):
|
|
claims: list[Claim] = []
|