from synth_ai.sdk.task import TaskAppConfig, create_task_app
from synth_ai.sdk.task.contracts import TaskInfo, RolloutRequest, RolloutResponse, RolloutMetrics
def my_rollout(request: RolloutRequest, http_request) -> RolloutResponse:
seed = request.env.seed or 0
prompt = request.policy.config.get("prompt_template", {})
reward = evaluate(prompt, seed)
return RolloutResponse(
run_id=request.run_id,
metrics=RolloutMetrics(
mean_return=reward,
episode_returns=[reward],
num_steps=1,
num_episodes=1,
),
trajectories=[],
)
def build_config() -> TaskAppConfig:
return TaskAppConfig(
app_id="my-classifier",
name="Intent Classifier",
description="Classifies intents",
base_task_info=TaskInfo(...),
rollout=my_rollout,
require_api_key=True,
)
def fastapi_app():
return create_task_app(build_config())