Search, chat and research over parliamentary speeches and documents
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

32 lines
752 B

"""Pydantic models for the orchestrator/researcher protocol."""
from typing import List, Literal
from pydantic import BaseModel, Field
class SubQuestion(BaseModel):
id: str
question: str
needs_quotes: bool = False
hints: List[str] = Field(default_factory=list)
class ResearchRequest(BaseModel):
user_message: str
sub_questions: List[SubQuestion]
notes: str = ""
class SubFinding(BaseModel):
sub_question_id: str
answer: str
source_ids: List[str] = Field(default_factory=list)
confidence: Literal["high", "medium", "low"] = "medium"
gaps: str = ""
class ResearchReport(BaseModel):
findings: List[SubFinding]
dead_ends: List[str] = Field(default_factory=list)
overall_notes: str = ""