From 2900eb0e452325d5e4f4f190d0ac0c65473649a9 Mon Sep 17 00:00:00 2001 From: Tianjing Li Date: Tue, 22 Oct 2024 14:05:25 -0400 Subject: [PATCH] frontend: Fix Agent model being set (#819) * Fix model setting * more fixes for model --- src/backend/routers/agent.py | 3 +-- .../src/app/(main)/edit/[agentId]/UpdateAgent.tsx | 1 + .../src/components/AgentSettingsForm/ConfigStep.tsx | 4 +--- .../src/components/AgentSettingsForm/index.tsx | 10 ++-------- src/interfaces/assistants_web/src/hooks/use-agents.ts | 5 ++++- 5 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/backend/routers/agent.py b/src/backend/routers/agent.py index c4781ec243..9aa4066c98 100644 --- a/src/backend/routers/agent.py +++ b/src/backend/routers/agent.py @@ -280,7 +280,7 @@ async def update_agent( db_deployment, db_model = get_deployment_model_from_agent(new_agent, session) deployment_config = new_agent.deployment_config is_default_deployment = new_agent.is_default_deployment - # remove association fields + # Remove association fields - handled manually new_agent_cleaned = new_agent.dict( exclude={ "model", @@ -290,7 +290,6 @@ async def update_agent( "is_default_model", } ) - # TODO Eugene - if no deployment or model is provide or if the deployment or model is not found, should we raise an error? if db_deployment and db_model: current_association = agent_crud.get_agent_model_deployment_association( session, agent, db_model.id, db_deployment.id diff --git a/src/interfaces/assistants_web/src/app/(main)/edit/[agentId]/UpdateAgent.tsx b/src/interfaces/assistants_web/src/app/(main)/edit/[agentId]/UpdateAgent.tsx index 91a5551e5c..76a66930b8 100644 --- a/src/interfaces/assistants_web/src/app/(main)/edit/[agentId]/UpdateAgent.tsx +++ b/src/interfaces/assistants_web/src/app/(main)/edit/[agentId]/UpdateAgent.tsx @@ -52,6 +52,7 @@ export const UpdateAgent: React.FC = ({ agent }) => { request: { ...fields, tools_metadata }, agentId: agent.id, }); + setIsSubmitting(false); // Reset button to allow new update after previous one info(`Updated ${newAgent?.name}`); } catch (e) { setIsSubmitting(false); diff --git a/src/interfaces/assistants_web/src/components/AgentSettingsForm/ConfigStep.tsx b/src/interfaces/assistants_web/src/components/AgentSettingsForm/ConfigStep.tsx index da5acd147f..8c5ca8ade9 100644 --- a/src/interfaces/assistants_web/src/components/AgentSettingsForm/ConfigStep.tsx +++ b/src/interfaces/assistants_web/src/components/AgentSettingsForm/ConfigStep.tsx @@ -4,18 +4,16 @@ import { useState } from 'react'; import { AgentSettingsFields } from '@/components/AgentSettingsForm'; import { Dropdown } from '@/components/UI'; -import { DEFAULT_AGENT_MODEL } from '@/constants'; import { useListAllDeployments } from '@/hooks'; type Props = { fields: AgentSettingsFields; - isNewAssistant: boolean; nameError?: string; setFields: (fields: AgentSettingsFields) => void; }; export const ConfigStep: React.FC = ({ fields, setFields }) => { - const [selectedValue, setSelectedValue] = useState(DEFAULT_AGENT_MODEL); + const [selectedValue, setSelectedValue] = useState(fields.model); const { data: deployments } = useListAllDeployments(); diff --git a/src/interfaces/assistants_web/src/components/AgentSettingsForm/index.tsx b/src/interfaces/assistants_web/src/components/AgentSettingsForm/index.tsx index e38cb0554e..a79999fa3a 100644 --- a/src/interfaces/assistants_web/src/components/AgentSettingsForm/index.tsx +++ b/src/interfaces/assistants_web/src/components/AgentSettingsForm/index.tsx @@ -59,7 +59,6 @@ export const AgentSettingsForm: React.FC = (props) => { const { data: listToolsData, status: listToolsStatus } = useListTools(); const isAgentNameUnique = useIsAgentNameUnique(); const params = useSearchParams(); - const defaultStep = params.has('datasources'); const defaultState = params.has('state'); useEffect(() => { @@ -78,7 +77,7 @@ export const AgentSettingsForm: React.FC = (props) => { const [currentStep, setCurrentStep] = useState< 'define' | 'config' | 'dataSources' | 'tools' | 'visibility' | undefined - >(() => (defaultStep ? 'dataSources' : 'define')); + >('define'); const [googleFiles, setGoogleFiles] = useState( fields.tools_metadata?.find((metadata) => metadata.tool_name === TOOL_GOOGLE_DRIVE_ID) @@ -208,12 +207,7 @@ export const AgentSettingsForm: React.FC = (props) => { isExpanded={currentStep === 'config'} setIsExpanded={(expanded) => setCurrentStep(expanded ? 'config' : undefined)} > - + setCurrentStep('dataSources')} hide={source !== 'create'} diff --git a/src/interfaces/assistants_web/src/hooks/use-agents.ts b/src/interfaces/assistants_web/src/hooks/use-agents.ts index 223adde8c4..b84caa08a4 100644 --- a/src/interfaces/assistants_web/src/hooks/use-agents.ts +++ b/src/interfaces/assistants_web/src/hooks/use-agents.ts @@ -114,8 +114,11 @@ export const useIsAgentNameUnique = () => { export const useUpdateAgent = () => { const cohereClient = useCohereClient(); const queryClient = useQueryClient(); + return useMutation({ - mutationFn: ({ request, agentId }) => cohereClient.updateAgent(request, agentId), + mutationFn: ({ request, agentId }) => { + return cohereClient.updateAgent(request, agentId); + }, onSettled: (agent) => { queryClient.invalidateQueries({ queryKey: ['agent', agent?.id] }); queryClient.invalidateQueries({ queryKey: ['listAgents'] });