| from pydantic import BaseModel, Field | |
| from typing import List, Literal,Optional | |
| from langgraph.graph.message import MessagesState | |
| class State(MessagesState): | |
| user_query: str = "" | |
| image_path: str = "" | |
| image_summary: str = "" | |
| llm_query: str = "" | |
| db_res: List[dict] = [] | |
| summary: str = "" | |
| redirect_to: str = "" | |
| query_for_db_search: str = "" | |
| top_k: int = 5 | |
| img_caption:Optional[str] = None | |
| class Product_type(BaseModel): | |
| pass | |
| class Orchastrator_Output(BaseModel): | |
| redirect_to: Literal['chat_node', 'retreiver_node'] = Field( | |
| 'chat_node', | |
| description="This model redirects to chat_node for casual talk or to retreiver_node for product retrieval." | |
| ) | |
| querie: str = Field( | |
| default="", | |
| description="Search query for database retrieval." | |
| ) | |
| class Exact_Matcher_State(BaseModel): | |
| image_path: str = "" | |
| query_for_db_search: str = "" | |
| top_k: int = 5 | |
| img_caption: Optional[str] = None | |
| db_res: List[dict] = [] | |