## MODIFIED Requirements ### Requirement: Chat endpoint proxies to Responses API The API backend SHALL expose `POST /api/chat` that accepts a `ChatRequest` containing messages, an optional system prompt, and optional model settings. The request is processed using a Semantic Kernel chat completion service. When a system prompt is provided, it SHALL be added as the first system message in the ChatHistory. When model settings are provided, non-null values SHALL be applied to the execution settings. A separate `POST /api/chat/extract` endpoint SHALL handle extraction-specific requests with few-shot prompting. #### Scenario: Successful chat request with system prompt - **WHEN** the client sends a POST to `/api/chat` with messages and a system prompt - **THEN** the API creates a ChatHistory with the system prompt as the first message, followed by the conversation messages, and processes them through Semantic Kernel #### Scenario: Successful chat request with model settings - **WHEN** the client sends a POST to `/api/chat` with messages and model settings (e.g., Temperature=0.3) - **THEN** the API applies the settings to OpenAIPromptExecutionSettings before calling the Semantic Kernel #### Scenario: Successful chat request without optional fields - **WHEN** the client sends a POST to `/api/chat` with only messages (no system prompt, no settings) - **THEN** the API processes the request with default behavior (no system message, default execution settings) #### Scenario: Extraction request routed to dedicated endpoint - **WHEN** the client sends a POST to `/api/chat/extract` with email HTML - **THEN** the API uses the few-shot ChatHistory prefix and extraction tools instead of the general chat configuration