ChatGPT-Next-Web/app/hooks/useLoadData.ts

26 lines
816 B
TypeScript

import { useEffect } from "react";
import { useAppConfig } from "@/app/store/config";
import { ClientApi } from "@/app/client/api";
import { ModelProvider } from "@/app/constant";
import { identifyDefaultClaudeModel } from "@/app/utils/checkers";
export function useLoadData() {
const config = useAppConfig();
var api: ClientApi;
if (config.modelConfig.model.startsWith("gemini")) {
api = new ClientApi(ModelProvider.GeminiPro);
} else if (identifyDefaultClaudeModel(config.modelConfig.model)) {
api = new ClientApi(ModelProvider.Claude);
} else {
api = new ClientApi(ModelProvider.GPT);
}
useEffect(() => {
(async () => {
const models = await api.llm.models();
config.mergeModels(models);
})();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
}