| 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; |
|
|