# -*- coding: utf-8 -*-
from typing import List

from pydantic import BaseModel, Field


class SearchQueryList(BaseModel):
    query: List[str] = Field(
        description="A list of search queries to be used for web research.",
    )
    rationale: str = Field(
        description="A brief explanation of why these queries are relevant "
        "to the research topic.",
    )


class Reflection(BaseModel):
    is_sufficient: bool = Field(
        description="Whether the provided summaries are sufficient to answer "
        "the user's question.",
    )
    knowledge_gap: str = Field(
        description="A description of what information is missing or needs "
        "clarification.",
    )
    follow_up_queries: List[str] = Field(
        description="A list of follow-up queries to address the knowledge "
        "gap.",
    )
