@@ -28,7 +28,6 @@ pip install faim-sdk
2828``` python
2929import numpy as np
3030from faim_sdk import ForecastClient, Chronos2ForecastRequest
31- from faim_client.models import ModelName
3231
3332# Initialize client with your API endpoint
3433client = ForecastClient(
@@ -49,8 +48,8 @@ request = Chronos2ForecastRequest(
4948 quantiles = [0.1 , 0.5 , 0.9 ] # 10th, 50th (median), 90th percentiles
5049)
5150
52- # Generate forecast
53- response = client.forecast(ModelName. CHRONOS2 , request)
51+ # Generate forecast - model inferred automatically from request type
52+ response = client.forecast(request)
5453
5554# Access predictions
5655print (response.quantiles.shape) # (32, 24, 3)
@@ -75,7 +74,7 @@ request = FlowStateForecastRequest(
7574 prediction_type = " mean" # Options: "mean", "median"
7675)
7776
78- response = client.forecast(ModelName. FLOWSTATE , request)
77+ response = client.forecast(request)
7978print (response.point.shape) # (batch_size, 24, features)
8079```
8180
@@ -94,7 +93,7 @@ request = Chronos2ForecastRequest(
9493 quantiles = [0.05 , 0.25 , 0.5 , 0.75 , 0.95 ] # Full distribution
9594)
9695
97- response = client.forecast(ModelName. CHRONOS2 , request)
96+ response = client.forecast(request)
9897print (response.quantiles.shape) # (batch_size, 24, 5)
9998```
10099
@@ -111,7 +110,7 @@ request = TiRexForecastRequest(
111110 output_type = " point"
112111)
113112
114- response = client.forecast(ModelName. TIREX , request)
113+ response = client.forecast(request)
115114print (response.point.shape) # (batch_size, 24, features)
116115```
117116
@@ -120,7 +119,7 @@ print(response.point.shape) # (batch_size, 24, features)
120119All forecasts return a ` ForecastResponse ` object with predictions and metadata:
121120
122121``` python
123- response = client.forecast(ModelName. CHRONOS2 , request)
122+ response = client.forecast(request)
124123
125124# Access predictions based on output_type
126125if response.point is not None :
@@ -252,7 +251,6 @@ fig, axes = plot_forecast(
252251import numpy as np
253252from faim_sdk import ForecastClient, Chronos2ForecastRequest
254253from faim_sdk.eval import mse, mase, crps_from_quantiles, plot_forecast
255- from faim_client.models import ModelName
256254
257255# Initialize client
258256client = ForecastClient(base_url = " https://api.faim.example.com" )
@@ -268,7 +266,7 @@ request = Chronos2ForecastRequest(
268266 output_type = " quantiles" ,
269267 quantiles = [0.1 , 0.5 , 0.9 ]
270268)
271- response = client.forecast(ModelName. CHRONOS2 , request)
269+ response = client.forecast(request)
272270
273271# Evaluate point forecast (use median)
274272point_pred = response.quantiles[:, :, 1 :2 ] # Extract median, keep 3D shape
@@ -315,6 +313,7 @@ The SDK provides **machine-readable error codes** for robust error handling:
315313``` python
316314from faim_sdk import (
317315 ForecastClient,
316+ Chronos2ForecastRequest,
318317 ValidationError,
319318 AuthenticationError,
320319 RateLimitError,
@@ -323,7 +322,8 @@ from faim_sdk import (
323322)
324323
325324try :
326- response = client.forecast(ModelName.CHRONOS2 , request)
325+ request = Chronos2ForecastRequest(x = data, horizon = 24 , quantiles = [0.1 , 0.5 , 0.9 ])
326+ response = client.forecast(request)
327327
328328except AuthenticationError as e:
329329 # Handle authentication failures (401, 403)
@@ -375,7 +375,6 @@ The SDK supports async operations for concurrent requests:
375375``` python
376376import asyncio
377377from faim_sdk import ForecastClient, Chronos2ForecastRequest
378- from faim_client.models import ModelName
379378
380379async def forecast_multiple_series ():
381380 client = ForecastClient(
@@ -393,7 +392,7 @@ async def forecast_multiple_series():
393392 # Execute concurrently
394393 async with client:
395394 tasks = [
396- client.forecast_async(ModelName. CHRONOS2 , req)
395+ client.forecast_async(req)
397396 for req in requests
398397 ]
399398 responses = await asyncio.gather(* tasks)
@@ -462,13 +461,15 @@ Use context managers for automatic resource cleanup:
462461``` python
463462# Sync context manager
464463with ForecastClient(base_url = " https://api.faim.example.com" ) as client:
465- response = client.forecast(ModelName.CHRONOS2 , request)
464+ request = Chronos2ForecastRequest(x = data, horizon = 24 , quantiles = [0.1 , 0.5 , 0.9 ])
465+ response = client.forecast(request)
466466 print (response.quantiles)
467467# Client automatically closed
468468
469469# Async context manager
470470async with ForecastClient(base_url = " https://api.faim.example.com" ) as client:
471- response = await client.forecast_async(ModelName.CHRONOS2 , request)
471+ request = Chronos2ForecastRequest(x = data, horizon = 24 , quantiles = [0.1 , 0.9 ])
472+ response = await client.forecast_async(request)
472473 print (response.quantiles)
473474# Client automatically closed
474475```
0 commit comments