diff --git a/scripts/generate-datasets.mjs b/scripts/generate-datasets.mjs
index 29a1403..d6ff936 100644
--- a/scripts/generate-datasets.mjs
+++ b/scripts/generate-datasets.mjs
@@ -323,7 +323,12 @@ async function generateDatasets() {
const datasets = normalizeManifest(readJson(datasetsPath));
const hfDatasetsRaw = readJson(hfDatasetsPath);
const hfDatasets = Array.isArray(hfDatasetsRaw)
- ? hfDatasetsRaw.map((entry) => ({ ...entry, source: 'huggingface' }))
+ ? hfDatasetsRaw.map((entry) => ({
+ ...entry,
+ // Only default to 'huggingface' — externally hosted entries (e.g. source: 'doi') must
+ // keep their own source so the site doesn't present them as rehosted AgML data.
+ source: typeof entry.source === 'string' && entry.source.trim() ? entry.source : 'huggingface',
+ }))
: hfDatasetsRaw;
writeJson(datasetsPath, datasets);
diff --git a/src/components/DatasetMetadataModal.module.css b/src/components/DatasetMetadataModal.module.css
index d574034..95817b5 100644
--- a/src/components/DatasetMetadataModal.module.css
+++ b/src/components/DatasetMetadataModal.module.css
@@ -1503,3 +1503,14 @@
grid-template-columns: 1fr !important;
}
}
+
+.externalDisclaimer {
+ margin: 0.5rem 0 0;
+ padding: 0.6rem 0.8rem;
+ border-left: 3px solid var(--agml-border-strong);
+ border-radius: 4px;
+ background: var(--agml-tag-bg);
+ color: var(--agml-tag-fg);
+ font-size: 0.82rem;
+ line-height: 1.45;
+}
diff --git a/src/components/DatasetMetadataModal.tsx b/src/components/DatasetMetadataModal.tsx
index 403126e..12175f9 100644
--- a/src/components/DatasetMetadataModal.tsx
+++ b/src/components/DatasetMetadataModal.tsx
@@ -105,6 +105,11 @@ function formatMetricScore(entry: { metrics: { key: string; label: string; value
return entry.score != null ? entry.score.toLocaleString() : '—';
}
+// Datasets AgML links to but does not rehost (e.g. source "doi"): no AgML loader exists for them.
+function isExternalDataset(dataset: Dataset) {
+ return dataset.source != null && dataset.source !== 'agml' && dataset.source !== 'huggingface';
+}
+
function formatLoaderInstructions(dataset: Dataset) {
if (dataset.source === 'huggingface') {
if(dataset.dataset_type === 'vlm') {
@@ -1199,6 +1204,7 @@ export function DatasetMetadataModal({
] as const)
: ([['Number of images', formatImageCount(dataset.num_images)]] as const)),
['Size', formatBytesDecimal(dataset.zip_size_bytes)],
+ ...(dataset.num_files != null ? ([['Number of files', dataset.num_files.toLocaleString()]] as const) : []),
...(dataset.augmented_num_images != null
? ([['Augmented images', formatImageCount(dataset.augmented_num_images)]] as const)
: []),
@@ -1423,6 +1429,16 @@ export function DatasetMetadataModal({
)}
+ {isExternalDataset(dataset) ? (
+
+ This dataset is hosted externally and is not rehosted by AgML. AgML makes no claims about its
+ quality, accuracy, or availability — please review the original source
+ documentation before use.
+ Get the data
+ {loader.title}