|
|
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 |
|
|
|
|
|
|
|
|
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.''') |
|
|
|
|
|
|