diff --git a/components-mdx/datasets-create-dataset-item.mdx b/components-mdx/datasets-create-dataset-item.mdx index e3c11dd81..cf425cdf5 100644 --- a/components-mdx/datasets-create-dataset-item.mdx +++ b/components-mdx/datasets-create-dataset-item.mdx @@ -19,6 +19,24 @@ langfuse.create_dataset_item( ) ``` +You can also add media to dataset item `input`, `expected_output`, or `metadata`: + +```python +from langfuse.media import LangfuseMedia + +langfuse.create_dataset_item( + dataset_name="visual-qa", + input={ + "question": "What is shown in this image?", + "image": LangfuseMedia( + file_path="./example.jpg", + content_type="image/jpeg", + ), + }, + expected_output={"label": "invoice"}, +) +``` + _See [Python SDK](/docs/sdk/python/sdk-v3) docs for details on how to initialize the Python client._ @@ -29,7 +47,7 @@ import { LangfuseClient } from "@langfuse/client"; const langfuse = new LangfuseClient(); -await langfuse.api.datasetItems.create({ +await langfuse.dataset.createItem({ datasetName: "", // any JS object or value input: { @@ -46,6 +64,28 @@ await langfuse.api.datasetItems.create({ }); ``` +You can also add media to dataset item `input`, `expectedOutput`, or `metadata`: + +```ts +import { LangfuseClient, LangfuseMedia } from "@langfuse/client"; +import fs from "node:fs"; + +const langfuse = new LangfuseClient(); + +await langfuse.dataset.createItem({ + datasetName: "visual-qa", + input: { + question: "What is shown in this image?", + image: new LangfuseMedia({ + source: "bytes", + contentBytes: fs.readFileSync("./example.jpg"), + contentType: "image/jpeg", + }), + }, + expectedOutput: { label: "invoice" }, +}); +``` + _See [JS/TS SDK](/docs/sdk/typescript/guide) docs for details on how to initialize the JS/TS client._ diff --git a/content/changelog/2026-02-11-versioned-dataset-experiments.mdx b/content/changelog/2026-02-11-versioned-dataset-experiments.mdx index 028eb4a64..d5e23ce94 100644 --- a/content/changelog/2026-02-11-versioned-dataset-experiments.mdx +++ b/content/changelog/2026-02-11-versioned-dataset-experiments.mdx @@ -124,7 +124,7 @@ const versionedDataset = await langfuse.dataset.get("qa-dataset", { const result = await versionedDataset.runExperiment({ name: "Baseline Experiment v1", description: "Testing against dataset from Dec 15", - task: async ({ item }) => { + task: async (item) => { const response = await observeOpenAI(new OpenAI()).chat.completions.create({ model: "gpt-4.1", messages: [{ role: "user", content: item.input }] diff --git a/content/changelog/2026-06-23-multi-modal-datasets.mdx b/content/changelog/2026-06-23-multi-modal-datasets.mdx new file mode 100644 index 000000000..5495b75b3 --- /dev/null +++ b/content/changelog/2026-06-23-multi-modal-datasets.mdx @@ -0,0 +1,45 @@ +--- +date: 2026-06-23 +title: Multi-modal datasets +description: Create Langfuse dataset items with images, audio, video, documents, and other attachments for SDK-based multi-modal experiments. +author: Tobias Wochinger +canonical: /docs/evaluation/experiments/datasets +--- + +import { ChangelogHeader } from "@/components/changelog/ChangelogHeader"; +import { Book, FlaskConical } from "lucide-react"; + + + +