|
const { availableTools } = require('../../app/clients/tools'); |
|
const { addOpenAPISpecs } = require('../../app/clients/tools/util/addOpenAPISpecs'); |
|
const { |
|
openAIApiKey, |
|
azureOpenAIApiKey, |
|
useAzurePlugins, |
|
userProvidedOpenAI, |
|
palmKey, |
|
openAI, |
|
azureOpenAI, |
|
bingAI, |
|
chatGPTBrowser, |
|
anthropic, |
|
} = require('../services/EndpointService').config; |
|
|
|
let i = 0; |
|
async function endpointController(req, res) { |
|
let key, palmUser; |
|
try { |
|
key = require('../../data/auth.json'); |
|
} catch (e) { |
|
if (i === 0) { |
|
i++; |
|
} |
|
} |
|
|
|
if (palmKey === 'user_provided') { |
|
palmUser = true; |
|
if (i <= 1) { |
|
i++; |
|
} |
|
} |
|
|
|
const tools = await addOpenAPISpecs(availableTools); |
|
function transformToolsToMap(tools) { |
|
return tools.reduce((map, obj) => { |
|
map[obj.pluginKey] = obj.name; |
|
return map; |
|
}, {}); |
|
} |
|
const plugins = transformToolsToMap(tools); |
|
|
|
const google = key || palmUser ? { userProvide: palmUser } : false; |
|
|
|
const gptPlugins = |
|
openAIApiKey || azureOpenAIApiKey |
|
? { |
|
plugins, |
|
availableAgents: ['classic', 'functions'], |
|
userProvide: userProvidedOpenAI, |
|
azure: useAzurePlugins, |
|
} |
|
: false; |
|
|
|
res.send( |
|
JSON.stringify({ azureOpenAI, openAI, google, bingAI, chatGPTBrowser, gptPlugins, anthropic }), |
|
); |
|
} |
|
|
|
module.exports = endpointController; |
|
|