feat(models): add SubQuestionSources model and per-sub-q history fields
Add SubQuestionSources, SubQuestionResult, GeneratingSubquestionEvent Pydantic models for the new per-sub-question response format. Add chunks_retrieved_per_subq_count and chunks_filtered_per_subq_count optional fields to QueryHistoryRecord and QueryHistoryDetail for per-sub-question chunk count tracking. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
parent
666b603639
commit
40393d81f8
|
|
@ -22,6 +22,8 @@ class QueryHistoryRecord(BaseModel):
|
|||
final_answer: Optional[str] = None
|
||||
sources: Optional[str] = None
|
||||
profile_used: Optional[str] = None
|
||||
chunks_retrieved_per_subq_count: Optional[str] = None
|
||||
chunks_filtered_per_subq_count: Optional[str] = None
|
||||
|
||||
|
||||
class QueryHistorySummary(BaseModel):
|
||||
|
|
@ -53,6 +55,8 @@ class QueryHistoryDetail(BaseModel):
|
|||
final_answer: Optional[str] = None
|
||||
sources: Optional[str] = None
|
||||
profile_used: Optional[str] = None
|
||||
chunks_retrieved_per_subq_count: Optional[str] = None
|
||||
chunks_filtered_per_subq_count: Optional[str] = None
|
||||
created_at: str
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,23 @@ class QueryRequest(BaseModel):
|
|||
question: str
|
||||
|
||||
|
||||
class SubQuestionSources(BaseModel):
|
||||
sub_question_index: int
|
||||
sub_question_text: str
|
||||
sources: List[SourceMetadata]
|
||||
|
||||
|
||||
class SubQuestionResult(BaseModel):
|
||||
sub_question_index: int
|
||||
sub_question_text: str
|
||||
answer_section: str
|
||||
|
||||
|
||||
class QueryResponse(BaseModel):
|
||||
extracted_questions: List[str]
|
||||
answer: str
|
||||
sources: List[SourceMetadata]
|
||||
sub_question_sources: List[SubQuestionSources] = []
|
||||
sources: List[SourceMetadata] = []
|
||||
|
||||
|
||||
class DecomposedEvent(BaseModel):
|
||||
|
|
@ -28,10 +41,22 @@ class FilteringEvent(BaseModel):
|
|||
phase: Literal["filtering"]
|
||||
|
||||
|
||||
class GeneratingEvent(BaseModel):
|
||||
phase: Literal["generating"]
|
||||
|
||||
|
||||
class GeneratingSubquestionEvent(BaseModel):
|
||||
phase: Literal["generating_subquestion"]
|
||||
sub_question_index: int
|
||||
sub_question_text: str
|
||||
answer_section: str = ""
|
||||
|
||||
|
||||
class CompletedEvent(BaseModel):
|
||||
phase: Literal["completed"]
|
||||
answer: str
|
||||
sources: List[SourceMetadata]
|
||||
sub_question_sources: List[SubQuestionSources] = []
|
||||
sources: List[SourceMetadata] = []
|
||||
|
||||
|
||||
class ErrorEvent(BaseModel):
|
||||
|
|
@ -41,5 +66,6 @@ class ErrorEvent(BaseModel):
|
|||
|
||||
StreamingQueryEvent = Union[
|
||||
DecomposedEvent, RetrievingEvent, FilteringEvent,
|
||||
GeneratingEvent, GeneratingSubquestionEvent,
|
||||
CompletedEvent, ErrorEvent
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue