File size: 1,174 Bytes
3b6afc0 |
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 57 58 59 60 61 |
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,
};
|