fix(portal): explicit dataklass för dokumentstrukturering #430

Merged
admin merged 1 commits from fix/document-data-class into main 2026-11-02 14:07:12 +00:00
+27 -2
View File
@@ -79,6 +79,7 @@ export default function DocumentsPage() {
const [models, setModels] = useState<ModelsResponse | null>(null);
const [modelsError, setModelsError] = useState<string | null>(null);
const [modelId, setModelId] = useState('');
const [dataClass, setDataClass] = useState('low');
const [format, setFormat] = useState<'json' | 'csv'>('json');
const [structuring, setStructuring] = useState(false);
const [result, setResult] = useState<StructureResponse | null>(null);
@@ -96,6 +97,9 @@ export default function DocumentsPage() {
}
setModels(body);
setModelId((current) => current || body.models[0] || '');
setDataClass((current) =>
body.data_classes.includes(current) ? current : (body.data_classes[0] ?? 'low'),
);
})
.catch(() => setModelsError('Kunde inte läsa modellpolicyn'));
}, []);
@@ -183,7 +187,7 @@ export default function DocumentsPage() {
instruction,
fields,
model_id: modelId,
data_class: 'low',
data_class: dataClass,
format,
}),
});
@@ -200,7 +204,7 @@ export default function DocumentsPage() {
} finally {
setStructuring(false);
}
}, [receipt, structuring, instruction, modelId, projectId, fields, format, t]);
}, [receipt, structuring, instruction, modelId, dataClass, projectId, fields, format, t]);
function download() {
if (!result?.export) return;
@@ -414,7 +418,28 @@ export default function DocumentsPage() {
<option value="csv">CSV</option>
</select>
</label>
<label className="block">
<span className={label}>{t({ en: 'data class', sv: 'dataklass' })}</span>
<select
className={input}
value={dataClass}
onChange={(event) => setDataClass(event.target.value)}
disabled={!models}
>
{(models?.data_classes ?? [dataClass]).map((value) => (
<option key={value} value={value}>
{value}
</option>
))}
</select>
</label>
</div>
<p className="mt-2 font-mono text-[10px] uppercase tracking-[0.14em] text-muted-foreground">
{t({
en: 'External models are refused for high/restricted data.',
sv: 'Externa modeller nekas för hög/restricted data.',
})}
</p>
{modelsError ? <p className="mt-3 text-[13px] text-muted-foreground">{modelsError}</p> : null}