Create a dataset

Six ways to create a dataset and get data into it.

A dataset starts as just a name in your organization; everything else comes from how you fill it. Future AGI gives you six ways to do that, each landing you on the same dataset table of rows and columns you can keep editing afterward.

Every method starts the same way: from the dataset list (Dataset in the left nav), click Add Dataset. That opens a panel with six tiles:

MethodReach for it when
Add data using SDKYou’re scripting the setup or pushing rows from your own pipeline
Upload a file (JSON, CSV)You already have test cases in a CSV, Excel, or JSON export
Create Synthetic DataYou don’t have real data yet, but know the shape of the examples you need
Add datasets ManuallyYou’re hand-building a small set and want an empty grid to fill in
Import from HuggingFaceThe data you need already exists as a Hugging Face dataset
Add from existing model dataset or experimentYou want to branch off a dataset or experiment you already have

Note

Whichever method you pick, the dataset’s name must be unique inside your organization. A name that’s already taken is rejected. For the full set of dataset and column limits, see Limits & Data Types.

Add data using the SDK

For scripting dataset creation, or when you’d rather write rows in code than click through the grid.

In the Add dataset panel, pick Add data using SDK and name the dataset. Future AGI creates an empty dataset and drops you on its Data tab, which shows the dataset’s name, ID, API key, and secret key alongside a ready-to-run code snippet. Copy the snippet below and run it against your dataset to add columns and rows.

An empty dataset starts with at most 10 rows; add the rest with the SDK.

# pip install futureagi

import os
from fi.datasets import Dataset
from fi.datasets.types import Cell, Column, DataTypeChoices, Row, SourceChoices

os.environ["FI_API_KEY"] = "<fi_api_key>"
os.environ["FI_SECRET_KEY"] = "<fi_secret_key>"

# Get the dataset you just created
dataset = Dataset.get_dataset_config("support-agent-eval")

# Define columns
columns = [
    Column(name="user_query", data_type=DataTypeChoices.TEXT, source=SourceChoices.OTHERS),
    Column(name="response_quality", data_type=DataTypeChoices.INTEGER, source=SourceChoices.OTHERS),
    Column(name="is_helpful", data_type=DataTypeChoices.BOOLEAN, source=SourceChoices.OTHERS),
]

# Define rows
rows = [
    Row(order=1, cells=[
        Cell(column_name="user_query", value="What is machine learning?"),
        Cell(column_name="response_quality", value=8),
        Cell(column_name="is_helpful", value=True),
    ]),
    Row(order=2, cells=[
        Cell(column_name="user_query", value="Explain quantum computing"),
        Cell(column_name="response_quality", value=9),
        Cell(column_name="is_helpful", value=True),
    ]),
]

dataset = dataset.add_columns(columns=columns)
dataset = dataset.add_rows(rows=rows)
import { Dataset, DataTypeChoices, createRow, createCell } from "@future-agi/sdk";

process.env["FI_API_KEY"] = "<fi_api_key>";
process.env["FI_SECRET_KEY"] = "<fi_secret_key>";

async function main() {
  // Get the dataset you just created
  const dataset = await Dataset.open("support-agent-eval");

  // Define columns
  const columns = [
    { name: "user_query", dataType: DataTypeChoices.TEXT },
    { name: "response_quality", dataType: DataTypeChoices.INTEGER },
    { name: "is_helpful", dataType: DataTypeChoices.BOOLEAN },
  ];

  // Define rows
  const rows = [
    createRow({
      cells: [
        createCell({ columnName: "user_query", value: "What is machine learning?" }),
        createCell({ columnName: "response_quality", value: 8 }),
        createCell({ columnName: "is_helpful", value: true }),
      ],
    }),
    createRow({
      cells: [
        createCell({ columnName: "user_query", value: "Explain quantum computing" }),
        createCell({ columnName: "response_quality", value: 9 }),
        createCell({ columnName: "is_helpful", value: true }),
      ],
    }),
  ];

  await dataset.addColumns(columns);
  await dataset.addRows(rows);
}

main();
curl --request POST \
  --url https://api.futureagi.com/model-hub/develops/<dataset_id>/add_columns/ \
  --header 'X-Api-Key: <fi_api_key>' \
  --header 'X-Secret-Key: <fi_secret_key>' \
  --header 'content-type: application/json' \
  --data '{
    "new_columns_data": [
      {"name": "user_query", "data_type": "text"},
      {"name": "response_quality", "data_type": "integer"},
      {"name": "is_helpful", "data_type": "boolean"}
    ]
  }'

See the Datasets SDK reference for the full Dataset API.

Upload a file

For bringing in test cases you already have as a file, instead of typing them in.

In the Add dataset panel, pick Upload a file (JSON, CSV) and name the dataset. Drop or browse to your file: accepted formats are .csv, .xls, .xlsx, .json, and .jsonl, up to 25 MB. The dataset appears on your list right away. Future AGI processes the file in the background with a visible progress state until it’s done.

Create synthetic data

For when you don’t have real data yet, but know the shape of the examples you need.

In the Add dataset panel, pick Create Synthetic Data and name the dataset. From there, Future AGI walks you through describing the schema and generates rows for you. See Synthetic Data if you want to regenerate later.

Add a dataset manually

For hand-building a small dataset from scratch when you already know its shape.

In the Add dataset panel, pick Add datasets Manually, name the dataset, and choose how many rows and how many columns to start with, up to 100 of each. Future AGI creates the dataset with that many empty rows and columns, ready for you to fill in.

Import from Hugging Face

For pulling in a Hugging Face dataset instead of typing test cases by hand.

In the Add dataset panel, pick Import from HuggingFace and paste the Hugging Face dataset ID. Click Load Dataset, then pick the Subset and Split you want. Name the new dataset to finish. Only the first 100 rows of the source are ingested.

Add from an existing dataset or experiment

For branching off a dataset or experiment you already have.

In the Add dataset panel, pick Add from existing model dataset or experiment and choose the dataset or experiment you want to copy from. Choose whether to bring over Import Data or Import data and prompt configuration, then select which columns to include. Name the new dataset to finish.

Dive deeper

Was this page helpful?

Questions & Discussion