| """Structured output models for LLM.""" | |
| from pydantic import BaseModel, Field | |
| class IntentClassification(BaseModel): | |
| """Intent classification output.""" | |
| intent: str = Field( | |
| description="The user's intent: 'question', 'greeting', 'goodbye', 'other'" | |
| ) | |
| needs_search: bool = Field( | |
| description="Whether document search is needed" | |
| ) | |
| search_query: str = Field( | |
| default="", | |
| description="The query to use for document search if needed" | |
| ) | |
| direct_response: str = Field( | |
| default="", | |
| description="Direct response if no search needed (for greetings, etc.)" | |
| ) | |