38 lines
2.3 KiB
Markdown
38 lines
2.3 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Predict proxy endpoint
|
|
The system SHALL provide a `POST /api/predict` Next.js API route that proxies requests to the Python inference service at `${INFERENCE_API_URL}/predict`. The route SHALL forward the request body (pair, timeframe, candles array) and return the Python service's response. If the inference service is unreachable, the route SHALL return HTTP 503 with `{ "error": "Inference service unavailable" }`.
|
|
|
|
#### Scenario: Successful prediction proxy
|
|
- **WHEN** POST /api/predict is called with valid candle data and the Python service is running
|
|
- **THEN** the route forwards the request to the inference service and returns the prediction response with HTTP 200
|
|
|
|
#### Scenario: Inference service down
|
|
- **WHEN** POST /api/predict is called but the Python inference service is unreachable
|
|
- **THEN** the route returns HTTP 503 with `{ "error": "Inference service unavailable" }`
|
|
|
|
#### Scenario: Inference service error
|
|
- **WHEN** the Python inference service returns an error status (4xx or 5xx)
|
|
- **THEN** the route forwards the error status and message to the client
|
|
|
|
### Requirement: Batch predict proxy endpoint
|
|
The system SHALL provide a `POST /api/predict/batch` Next.js API route that proxies batch prediction requests to `${INFERENCE_API_URL}/predict/batch`. The route SHALL forward pair, timeframe, start_date, and end_date.
|
|
|
|
#### Scenario: Successful batch prediction
|
|
- **WHEN** POST /api/predict/batch is called with valid parameters
|
|
- **THEN** the route forwards to the inference service and returns the batch prediction response
|
|
|
|
#### Scenario: Timeout on large batch
|
|
- **WHEN** the batch prediction takes longer than INFERENCE_BATCH_TIMEOUT
|
|
- **THEN** the route returns HTTP 504 with `{ "error": "Batch prediction timed out" }`
|
|
|
|
### Requirement: Model info proxy endpoint
|
|
The system SHALL provide a `GET /api/model/info` Next.js API route that proxies to `${INFERENCE_API_URL}/model/info`. This endpoint returns model metadata and per-class metrics.
|
|
|
|
#### Scenario: Successful model info
|
|
- **WHEN** GET /api/model/info is called and the inference service is running
|
|
- **THEN** the route returns the model metadata JSON
|
|
|
|
#### Scenario: No model available
|
|
- **WHEN** GET /api/model/info is called and the inference service returns 503
|
|
- **THEN** the route returns HTTP 503 with `{ "error": "No model available" }`
|