본문으로 건너뛰기

데이터 세트 개요

추가된 항목: @mastra/core@1.4.0

데이터세트는 Agent와 Workflow의 성능을 측정하기 위해 실험을 실행하는 테스트 사례 모음입니다. 각 돌연변이는 새로운 버전을 생성하므로 과거 실험을 정확하게 재현할 수 있습니다. 데이터세트를 다음과 페어링하세요.scorers 를 사용하여 Prompt, Model 또는 코드 변경 전반의 품질을 추적할 수 있습니다.

용법
용법에 대한 직접 링크

스토리지 구성
스토리지 구성에 대한 직접 링크

Mastra 인스턴스에서 스토리지를 구성합니다. 데이터 세트에는 다음을 제공하는 스토리지 어댑터가 필요합니다.datasets domain:

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { LibSQLStore } from '@mastra/libsql'

export const mastra = new Mastra({
storage: new LibSQLStore({
id: 'my-store',
url: 'file:./mastra.db',
}),
})

데이터 세트 API에 액세스
데이터 세트 API에 액세스에 대한 직접 링크

모든 데이터세트 작업은 다음을 통해 가능합니다.mastra.datasets:

const datasets = mastra.datasets

// Create a dataset
const dataset = await datasets.create({ name: 'my-dataset' })

// Retrieve an existing dataset
const existing = await datasets.get({ id: 'dataset-id' })

// List all datasets
const { datasets: all } = await datasets.list()

방문DatasetsManager reference for the full list of methods.

사진관
사진관에 대한 직접 링크

다음에서 데이터 세트를 관리할 수도 있습니다.Studio. After opening Studio, select Datasets 를 사이드바에서 선택하여 사용 가능한 모든 데이터 세트를 확인하거나 새 데이터 세트를 생성하세요.

시작하려면 다음을 선택하세요.Create Dataset 를 선택하고 이름, 설명 및 선택적 스키마를 설정합니다. 확인하면 다음 두 개의 탭이 있는 데이터 세트 세부 정보 페이지가 표시됩니다: Items and Experiments.

에서Items 보기에서는 항목을 추가, 업데이트 및 삭제하고 버전 기록을 확인할 수 있습니다. Add Item 를 선택하여 입력과 정답을 위한 JSON 편집기로 새 항목을 삽입합니다. 이 보기에서는 CSV 또는 JSON 파일에서 항목을 대량으로 가져올 수도 있습니다. 가져올 때 각 열을 해당 데이터 세트 필드에 매핑하세요.

선택하다Versions 를 선택하여 데이터 세트의 전체 변경 기록을 확인합니다. Compare Versions, choose any two versions and select Compare 를 선택하여 해당 버전 간에 추가, 변경 또는 제거된 모든 항목의 차이를 나란히 확인합니다.

데이터세트 만들기
데이터세트 만들기에 대한 직접 링크

부르다create() with a name and optional description:

src/mastra/datasets/create-dataset.ts
import { mastra } from '../index'

const dataset = await mastra.datasets.create({
name: 'translation-pairs',
description: 'English to Spanish translation test cases',
})

console.log(dataset.id) // auto-generated UUID

스키마 정의
스키마 정의에 대한 직접 링크

모양을 강제할 수 있습니다.input and groundTruth by passing a Standard JSON Schema (Zod, Valibot, ArkType, etc.) when creating the dataset:

src/mastra/datasets/create-with-schema.ts
import { z } from 'zod'
import { mastra } from '../index'

const dataset = await mastra.datasets.create({
name: 'translation-pairs',
inputSchema: z.object({
text: z.string(),
sourceLang: z.string(),
targetLang: z.string(),
}),
groundTruthSchema: z.object({
translation: z.string(),
}),
})

스키마와 일치하지 않는 항목은 삽입 시 거부됩니다.

항목 추가
항목 추가에 대한 직접 링크

사용addItem() for a single item or addItems() to insert in bulk:

src/mastra/datasets/add-items.ts
// Single item
await dataset.addItem({
input: { text: 'Hello', sourceLang: 'en', targetLang: 'es' },
groundTruth: { translation: 'Hola' },
})

// Bulk insert
await dataset.addItems({
items: [
{
input: { text: 'Goodbye', sourceLang: 'en', targetLang: 'es' },
groundTruth: { translation: 'Adiós' },
},
{
input: { text: 'Thank you', sourceLang: 'en', targetLang: 'es' },
groundTruth: { translation: 'Gracias' },
},
],
})

항목 업데이트 및 삭제
항목 업데이트 및 삭제에 대한 직접 링크

updateItem(), deleteItem(), and deleteItems() let you modify or remove existing items by itemId:

src/mastra/datasets/update-delete.ts
await dataset.updateItem({
itemId: 'item-abc-123',
groundTruth: { translation: '¡Hola!' },
})

await dataset.deleteItem({ itemId: 'item-abc-123' })

await dataset.deleteItems({ itemIds: ['item-1', 'item-2'] })

항목 나열 및 검색
항목 나열 및 검색에 대한 직접 링크

listItems()페이지 매김 및 전체 텍스트 검색을 지원합니다.

src/mastra/datasets/list-items.ts
// Paginated list
const { items, pagination } = await dataset.listItems({
page: 0,
perPage: 50,
})

// Full-text search
const { items: matches } = await dataset.listItems({
search: 'Hello',
})

// Search and pagination can be combined with a specific version
const { items: v2Matches } = await dataset.listItems({
version: 2,
search: 'Hello',
page: 0,
perPage: 50,
})

// Version-only snapshot returns a bare DatasetItem[]
const v2Items = await dataset.listItems({ version: 2 })

버전 관리
버전 관리에 대한 직접 링크

데이터세트 항목에 대한 모든 변형(추가, 업데이트 또는 삭제)으로 인해 데이터세트 버전이 변경됩니다. 이를 통해 데이터의 특정 스냅샷에 실험을 고정할 수 있습니다.

버전 나열
버전 나열에 대한 직접 링크

사용listVersions() to see the paginated history of versions:

src/mastra/datasets/list-versions.ts
const { versions, pagination } = await dataset.listVersions()

for (const v of versions) {
console.log(`Version ${v.version} — created ${v.createdAt}`)
}

항목 내역 보기
항목 내역 보기에 대한 직접 링크

호출을 통해 버전에 따라 특정 항목이 어떻게 변경되었는지 확인하세요.getItemHistory() with the itemId:

src/mastra/datasets/item-history.ts
const history = await dataset.getItemHistory({ itemId: 'item-abc-123' })

for (const row of history) {
console.log(`Version ${row.datasetVersion}`, row.input, row.groundTruth)
}

버전에 고정
버전에 고정에 대한 직접 링크

이전 버전에 존재했던 정확한 항목을 가져옵니다.

src/mastra/datasets/pin-version.ts
const items = await dataset.listItems({ version: 2 })

실험을 버전에 고정할 수도 있습니다.running experiments. Visit the Dataset reference 에서 전체 메서드 및 매개변수 목록을 확인하세요.