from langchain_core.pydantic_v1 import BaseModel, Field from typing import List class RequirementGathering(BaseModel): """Requirement Gathering Pydantic Schema""" overview: str = Field(description="Provide short overview of requirement") description: str = Field(description="Provide requirement description. Ensure each requirement is explicitly stated as per the document.") benefits: str = Field(description="The benefit or impact on the user or system as a result of the requirement. Ground it in the context of the document. Consider only for banking applications as product domain.") reason: str = Field(description="The reason for implementing the requirement.") priority: str = Field(description="The priority of the requirement. Return only one from list of values [High, Medium and Low]. Ground result based on the document.") tags: List[str] = Field(description="List of tags for the requirement to identify into relevant categories(e.g., Product Specifications, Validations and Quality Standards)") class RequirementGatheringDetails(BaseModel): """Requirement Gathering Details Pydantic Schema""" header: str = Field(description="Provide the header of the document.") requirements: List[RequirementGathering] = Field(description="List of requirements gathered from the document.")