From 88e6948bb17f7c8a00e90d38342f0f472cbf05f5 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 17 Feb 2025 09:42:53 +0100 Subject: [PATCH] Disable chatgxy wizard for anon users Retrieving and storing responses requires a user id, and anon's don't have user ids. Fixes https://github.com/galaxyproject/galaxy/issues/19529 --- client/src/components/DatasetInformation/DatasetError.vue | 4 ++-- lib/galaxy/webapps/galaxy/api/chat.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client/src/components/DatasetInformation/DatasetError.vue b/client/src/components/DatasetInformation/DatasetError.vue index 22a807219ae..278a4b6de94 100644 --- a/client/src/components/DatasetInformation/DatasetError.vue +++ b/client/src/components/DatasetInformation/DatasetError.vue @@ -28,7 +28,7 @@ interface Props { const props = defineProps(); const userStore = useUserStore(); -const { currentUser } = storeToRefs(userStore); +const { currentUser, isAnonymous } = storeToRefs(userStore); const { renderMarkdown } = useMarkdown({ openLinksInNewPage: true }); const { config, isConfigLoaded } = useConfig(); @@ -49,7 +49,7 @@ const showForm = computed(() => { return noResult || hasError; }); -const showWizard = computed(() => isConfigLoaded && config.value?.llm_api_configured); +const showWizard = computed(() => isConfigLoaded && config.value?.llm_api_configured && !isAnonymous.value); async function getDatasetDetails() { datasetLoading.value = true; diff --git a/lib/galaxy/webapps/galaxy/api/chat.py b/lib/galaxy/webapps/galaxy/api/chat.py index de32b6a452f..8633954cd3d 100644 --- a/lib/galaxy/webapps/galaxy/api/chat.py +++ b/lib/galaxy/webapps/galaxy/api/chat.py @@ -16,11 +16,13 @@ from galaxy.exceptions import ConfigurationError from galaxy.managers.chat import ChatManager from galaxy.managers.context import ProvidesUserContext from galaxy.managers.jobs import JobManager +from galaxy.model import User from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.schema import ChatPayload from galaxy.webapps.galaxy.api import ( depends, DependsOnTrans, + DependsOnUser, Router, ) @@ -57,6 +59,7 @@ class ChatAPI: job_id: JobIdPathParam, payload: ChatPayload, trans: ProvidesUserContext = DependsOnTrans, + user: User = DependsOnUser, ) -> str: """We're off to ask the wizard""" # Currently job-based chat exchanges are the only ones supported, @@ -87,6 +90,7 @@ class ChatAPI: job_id: JobIdPathParam, feedback: int, trans: ProvidesUserContext = DependsOnTrans, + user: User = DependsOnUser, ) -> Union[int, None]: """Provide feedback on the chatbot response.""" job = self.job_manager.get_accessible_job(trans, job_id)