26 lines
816 B
TypeScript
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
|
|
}, []);
|
|
}
|