import { useEffect, useMemo } from 'react'; import { Capabilities } from 'librechat-data-provider'; import type { AssistantsEndpoint } from 'librechat-data-provider'; import { useFormContext, Controller, useWatch } from 'react-hook-form'; import { Checkbox, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, } from '~/components/ui'; import OptionHover from '~/components/SidePanel/Parameters/OptionHover'; import { CircleHelpIcon } from '~/components/svg'; import type { AssistantForm } from '~/common'; import { useLocalize } from '~/hooks'; import { ESide } from '~/common'; import { cn } from '~/utils/'; export default function Retrieval({ version, retrievalModels, }: { version: number | string; retrievalModels: Set; endpoint: AssistantsEndpoint; }) { const localize = useLocalize(); const methods = useFormContext(); const { control, setValue, getValues } = methods; const model = useWatch({ control, name: 'model' }); const assistant = useWatch({ control, name: 'assistant' }); const vectorStores = useMemo(() => { if (typeof assistant === 'string') { return []; } return assistant.tool_resources?.file_search; }, [assistant]); const isDisabled = useMemo(() => !retrievalModels.has(model), [model, retrievalModels]); useEffect(() => { if (model && isDisabled) { setValue(Capabilities.retrieval, false); } }, [model, setValue, isDisabled]); return ( <>
( )} />

{version == 2 && localize('com_assistants_file_search_info')}

); }