Refresh all assistants on assistant refresh (#3216)

* k

* k
This commit is contained in:
pablodanswer 2024-11-22 14:38:23 -08:00 committed by GitHub
parent 5dc07d4178
commit 2381c8d498
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 27 deletions

View File

@ -412,7 +412,9 @@ export function AssistantEditor({
});
}
}
await refreshAssistants();
console.log("redirectType", redirectType);
router.push(
redirectType === SuccessfulPersonaUpdateRedirectType.ADMIN
? `/admin/assistants?u=${Date.now()}`

View File

@ -81,34 +81,36 @@ export const AssistantsProvider: React.FC<{
checkImageGenerationAvailability();
}, []);
const fetchPersonas = async () => {
if (!isAdmin && !isCurator) {
return;
}
try {
const [editableResponse, allResponse] = await Promise.all([
fetch("/api/admin/persona?get_editable=true"),
fetch("/api/admin/persona"),
]);
if (editableResponse.ok) {
const editablePersonas = await editableResponse.json();
setEditablePersonas(editablePersonas);
}
if (allResponse.ok) {
console.log("allResponse", allResponse);
const allPersonas = await allResponse.json();
setAllAssistants(allPersonas);
console.log("allAssistants", allAssistants);
} else {
console.error("Error fetching personas:", allResponse);
}
} catch (error) {
console.error("Error fetching personas:", error);
}
};
useEffect(() => {
const fetchPersonas = async () => {
if (!isAdmin && !isCurator) {
return;
}
try {
const [editableResponse, allResponse] = await Promise.all([
fetch("/api/admin/persona?get_editable=true"),
fetch("/api/admin/persona"),
]);
if (editableResponse.ok) {
const editablePersonas = await editableResponse.json();
setEditablePersonas(editablePersonas);
}
if (allResponse.ok) {
const allPersonas = await allResponse.json();
setAllAssistants(allPersonas);
} else {
console.error("Error fetching personas:", allResponse);
}
} catch (error) {
console.error("Error fetching personas:", error);
}
};
fetchPersonas();
}, [isAdmin, isCurator]);
@ -144,6 +146,7 @@ export const AssistantsProvider: React.FC<{
});
if (!response.ok) throw new Error("Failed to fetch assistants");
let assistants: Persona[] = await response.json();
if (!hasImageCompatibleModel) {
assistants = assistants.filter(
(assistant) =>
@ -152,15 +155,21 @@ export const AssistantsProvider: React.FC<{
)
);
}
if (!hasAnyConnectors) {
assistants = assistants.filter(
(assistant) => assistant.num_chunks === 0
);
}
setAssistants(assistants);
// Fetch and update allAssistants for admins and curators
await fetchPersonas();
} catch (error) {
console.error("Error refreshing assistants:", error);
}
setRecentAssistants(
assistants.filter(
(assistant) =>