Files
twenty/packages/twenty-front/src/modules/ai/hooks/useAgentChatModelId.ts
T

24 lines
895 B
TypeScript

import { isDefined } from 'twenty-shared/utils';
import { useWorkspaceAiModelAvailability } from '@/ai/hooks/useWorkspaceAiModelAvailability';
import { agentChatUserSelectedModelState } from '@/ai/states/agentChatUserSelectedModelState';
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
export const useAgentChatModelId = () => {
const { enabledModels } = useWorkspaceAiModelAvailability();
const agentChatUserSelectedModel = useAtomStateValue(
agentChatUserSelectedModelState,
);
const isUserModelAvailable =
!isDefined(agentChatUserSelectedModel) ||
enabledModels.some((model) => model.modelId === agentChatUserSelectedModel);
const selectedModelId = isUserModelAvailable
? agentChatUserSelectedModel
: null;
const modelIdForRequest = selectedModelId ?? undefined;
return { selectedModelId, modelIdForRequest };
};