Fixed min. required example for edit.
parent
810827e0bb
commit
be165144ad
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue