summaryrefslogtreecommitdiff
path: root/backend/app/schemas.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/app/schemas.py')
-rw-r--r--backend/app/schemas.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/backend/app/schemas.py b/backend/app/schemas.py
index 4213f15..7a657a3 100644
--- a/backend/app/schemas.py
+++ b/backend/app/schemas.py
@@ -76,6 +76,35 @@ class CouncilRunRequest(BaseModel):
attached_file_ids: List[str] = Field(default_factory=list)
scopes: List[str] = Field(default_factory=list)
+class DebateJudgeMode(str, Enum):
+ EXTERNAL_JUDGE = "external_judge"
+ SELF_CONVERGENCE = "self_convergence"
+ DISPLAY_ONLY = "display_only"
+
+class DebateFormat(str, Enum):
+ FREE_DISCUSSION = "free_discussion"
+ STRUCTURED_OPPOSITION = "structured_opposition"
+ ITERATIVE_IMPROVEMENT = "iterative_improvement"
+ CUSTOM = "custom"
+
+class DebateRunRequest(BaseModel):
+ node_id: str
+ incoming_contexts: List[Context] = []
+ user_prompt: str
+ debate_models: List[CouncilMemberConfig] # 2-6 models
+ judge_model: Optional[CouncilMemberConfig] = None
+ judge_mode: DebateJudgeMode = DebateJudgeMode.EXTERNAL_JUDGE
+ debate_format: DebateFormat = DebateFormat.FREE_DISCUSSION
+ custom_format_prompt: Optional[str] = None
+ max_rounds: int = 5
+ system_prompt: Optional[str] = None
+ temperature: float = 0.7
+ reasoning_effort: ReasoningEffort = ReasoningEffort.MEDIUM
+ enable_google_search: bool = False
+ merge_strategy: MergeStrategy = MergeStrategy.SMART
+ attached_file_ids: List[str] = Field(default_factory=list)
+ scopes: List[str] = Field(default_factory=list)
+
class NodeRunResponse(BaseModel):
node_id: str
output_context: Context