Fixed min. required example for edit.

pull/110/head
s8613 2025-07-01 19:09:48 +02:00
parent 810827e0bb
commit be165144ad
1 changed files with 67 additions and 53 deletions

View File

@ -73,75 +73,85 @@ export function KPIForm({
setSnackbarMessage("Name ist erforderlich");
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
if (!formData.examples || formData.examples.length === 0) {
setSnackbarMessage("Mindestens ein Beispielsatz ist erforderlich");
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
if (mode === "add") {
if (!formData.examples || formData.examples.length === 0) {
setSnackbarMessage("Mindestens ein Beispielsatz ist erforderlich");
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
const newExamples = formData.examples.filter(
(ex) => ex.sentence?.trim() && ex.value?.trim(),
);
if (newExamples.length === 0) {
setSnackbarMessage(
"Mindestens ein vollständiger Beispielsatz ist erforderlich.",
const newExamples = formData.examples.filter(
(ex) => ex.sentence?.trim() && ex.value?.trim(),
);
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
for (const ex of newExamples) {
if (!ex.sentence?.trim() || !ex.value?.trim()) {
setSnackbarMessage("Alle Beispielsätze müssen vollständig sein.");
if (newExamples.length === 0) {
setSnackbarMessage(
"Mindestens ein vollständiger Beispielsatz ist erforderlich.",
);
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
}
const newExamples = (formData.examples || []).filter(
(ex) => ex.sentence?.trim() && ex.value?.trim(),
);
if (formData.examples && formData.examples.length > 0) {
for (const ex of formData.examples) {
if (!ex.sentence?.trim() && !ex.value?.trim()) continue;
if (!ex.sentence?.trim() || !ex.value?.trim()) {
setSnackbarMessage("Alle Beispielsätze müssen vollständig sein oder leer gelassen werden.");
setSnackbarSeverity("error");
setSnackbarOpen(true);
return;
}
}
}
setIsSaving(true);
try {
const spacyEntries = generateSpacyEntries({
...formData,
examples: newExamples,
});
if (newExamples.length > 0) {
const spacyEntries = generateSpacyEntries({
...formData,
examples: newExamples,
});
// Für jeden einzelnen Beispielsatz:
for (const entry of spacyEntries) {
// im localStorage speichern (zum Debuggen oder Vorschau)
const stored = localStorage.getItem("spacyData");
const existingData = stored ? JSON.parse(stored) : [];
const updated = [...existingData, entry];
localStorage.setItem("spacyData", JSON.stringify(updated));
// Für jeden einzelnen Beispielsatz:
for (const entry of spacyEntries) {
// im localStorage speichern (zum Debuggen oder Vorschau)
const stored = localStorage.getItem("spacyData");
const existingData = stored ? JSON.parse(stored) : [];
const updated = [...existingData, entry];
localStorage.setItem("spacyData", JSON.stringify(updated));
// POST Request an das Flask-Backend
const response = await fetch(
`${API_HOST}/api/spacy/append-training-entry`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
// POST Request an das Flask-Backend
const response = await fetch(
`${API_HOST}/api/spacy/append-training-entry`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(entry),
},
body: JSON.stringify(entry),
},
);
const data = await response.json();
if (!response.ok) {
throw new Error(
data.error || "Fehler beim Aufruf von append-training-entry",
);
}
console.log("SpaCy-Eintrag gespeichert:", data);
const data = await response.json();
if (!response.ok) {
throw new Error(
data.error || "Fehler beim Aufruf von append-training-entry",
);
}
console.log("SpaCy-Eintrag gespeichert:", data);
}
}
const allExamples =
@ -167,9 +177,13 @@ export function KPIForm({
}));
}
setSnackbarMessage(
"Beispielsätze gespeichert. Jetzt auf -Neu trainieren- klicken oder weitere Kennzahlen hinzufügen.",
);
const successMessage = newExamples.length > 0
? "Beispielsätze gespeichert. Jetzt auf -Neu trainieren- klicken oder weitere Kennzahlen hinzufügen."
: mode === "edit"
? "Kennzahl erfolgreich aktualisiert."
: "Kennzahl erfolgreich erstellt.";
setSnackbarMessage(successMessage);
setSnackbarSeverity("success");
setSnackbarOpen(true);
} catch (e: any) {