from pydantic import BaseModel, ConfigDict , Field from typing import Annotated , TypedDict from langgraph.graph.message import add_messages class State(TypedDict): messages: Annotated[list, add_messages] response: str completion: bool interactions: list formatted_details: dict # Pydantic model for extracted business info class DetailsFormatter(BaseModel): ''' Format the details from the business interaction of User and Assistant ''' business_type_or_name: str = Field(description="The type or name of the business.") platform: str = Field(description="The platform used for the promotion of business") target_audience: str = Field(description="The target audience of the business") business_goals: str = Field(description="The business goals of the business") offerings: str = Field(description="The offerings of the business") devices_used_to_create_videos: str = Field(description="The devices used to create videos.") Challenges_faced: str = Field(description="The challenges faced by the business") additional_informations: str = Field(description="Additional queries or details regarding the video or idea creation.") class ConversationFormatter(BaseModel): response: str= Field(description="The entire response of the assistant.") completion: bool=Field(description=''''Return 'True' if the details extraction is completed. Return 'False' if not completed.''')