Skip to main content
POST
/
api
/
graphgen
/
jobs
from synth_ai.sdk.optimization import GraphOptimizationJob

job = await GraphOptimizationJob.create(
    dataset=my_dataset,
    policy_model="gpt-4o-mini",
    rollout_budget=200
)

# Stream progress
async for event in job.stream():
    print(f"Generation {event.generation}: {event.best_reward}")
{
  "job_id": "graph_gen_abc123",
  "status": "running"
}
Create a Graph Evolve job to train an optimized graph from a dataset.
Graph Evolve trains a graph that can be used for inference via the Graph Completions API.
dataset
object
required
GraphEvolveTaskSet containing training examples.
policy_model
string
required
Model for the policy graph (e.g., gpt-4o-mini).
rollout_budget
integer
default:"200"
Total rollout budget for optimization.
proposer_effort
string
default:"medium"
Proposer effort level: low, medium, high.
auto_start
boolean
default:"true"
Start the job immediately after creation.
from synth_ai.sdk.optimization import GraphOptimizationJob

job = await GraphOptimizationJob.create(
    dataset=my_dataset,
    policy_model="gpt-4o-mini",
    rollout_budget=200
)

# Stream progress
async for event in job.stream():
    print(f"Generation {event.generation}: {event.best_reward}")
{
  "job_id": "graph_gen_abc123",
  "status": "running"
}

Get Job Status

GET /api/graphgen/jobs/{job_id}

Returns current job status and progress.
Response
{
  "job_id": "graph_gen_abc123",
  "status": "running",
  "progress": {
    "generation": 2,
    "best_reward": 0.85
  }
}

Stream Job Events

GET /api/graphgen/jobs/{job_id}/events/stream

Server-sent events (SSE) for live progress updates.
curl -N -H "Authorization: Bearer $SYNTH_API_KEY" \
  "https://api.usesynth.ai/api/graphgen/jobs/{job_id}/events/stream"

Download Artifacts

GET /api/graphgen/jobs/{job_id}/download

Download the best prompt snapshot and export artifacts.
Returns a ZIP file containing:
  • Best prompt configuration
  • Graph definition
  • Training metadata

Run Inference

POST /api/graphgen/graph/completions

Run inference with a trained graph.
Request
{
  "job_id": "graph_gen_abc123",
  "input": {
    "query": "Upgrade my plan"
  }
}
For unified inference across trained and built-in graphs, use the Graph Completions API.