File size: 1,329 Bytes
f0743f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import { atom, selector } from 'recoil';
import { EModelEndpoint } from 'librechat-data-provider';
import type { TEndpointsConfig } from 'librechat-data-provider';
const defaultConfig: TEndpointsConfig = {
[EModelEndpoint.azureOpenAI]: null,
[EModelEndpoint.azureAssistants]: null,
[EModelEndpoint.assistants]: null,
[EModelEndpoint.agents]: null,
[EModelEndpoint.openAI]: null,
[EModelEndpoint.chatGPTBrowser]: null,
[EModelEndpoint.gptPlugins]: null,
[EModelEndpoint.google]: null,
[EModelEndpoint.anthropic]: null,
[EModelEndpoint.custom]: null,
};
const endpointsConfig = atom<TEndpointsConfig>({
key: 'endpointsConfig',
default: defaultConfig,
});
const endpointsQueryEnabled = atom<boolean>({
key: 'endpointsQueryEnabled',
default: true,
});
const plugins = selector({
key: 'plugins',
get: ({ get }) => {
const config = get(endpointsConfig) || {};
return config.gptPlugins?.plugins || {};
},
});
const endpointsFilter = selector({
key: 'endpointsFilter',
get: ({ get }) => {
const config = get(endpointsConfig) || {};
const filter = {};
for (const key of Object.keys(config)) {
filter[key] = !!config[key];
}
return filter;
},
});
export default {
plugins,
endpointsConfig,
endpointsFilter,
defaultConfig,
endpointsQueryEnabled,
};
|