import { LlmModelType } from '@/constants/knowledge'; import { IThirdOAIModelCollection } from '@/interfaces/database/llm'; import { useCallback, useEffect, useMemo } from 'react'; import { useDispatch, useSelector } from 'umi'; export const useFetchLlmList = (modelType: LlmModelType) => { const dispatch = useDispatch(); const fetchLlmList = useCallback(() => { dispatch({ type: 'settingModel/llm_list', payload: { model_type: modelType }, }); }, [dispatch, modelType]); useEffect(() => { fetchLlmList(); }, [fetchLlmList]); }; export const useSelectLlmOptions = () => { const llmInfo: IThirdOAIModelCollection = useSelector( (state: any) => state.settingModel.llmInfo, ); const embeddingModelOptions = useMemo(() => { return Object.entries(llmInfo).map(([key, value]) => { return { label: key, options: value.map((x) => ({ label: x.llm_name, value: x.llm_name, })), }; }); }, [llmInfo]); return embeddingModelOptions; };