ai / client /src /store /endpoints.js
Marco Beretta
LibreChat upload repo
3b6afc0
raw
history blame
No virus
1.17 kB
import { atom, selector } from 'recoil';
const endpointsConfig = atom({
key: 'endpointsConfig',
default: {
azureOpenAI: null,
openAI: null,
bingAI: null,
chatGPTBrowser: null,
gptPlugins: null,
google: null,
anthropic: null,
},
});
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) || {};
let filter = {};
for (const key of Object.keys(config)) {
filter[key] = !!config[key];
}
return filter;
},
});
const availableEndpoints = selector({
key: 'availableEndpoints',
get: ({ get }) => {
const endpoints = [
'azureOpenAI',
'openAI',
'chatGPTBrowser',
'gptPlugins',
'bingAI',
'google',
'anthropic',
];
const f = get(endpointsFilter);
return endpoints.filter((endpoint) => f[endpoint]);
},
});
// const modelAvailable
export default {
plugins,
endpointsConfig,
endpointsFilter,
availableEndpoints,
};