Add NanoGPT as chat completions provider

4b5f485bd535eb75dff86a8d91190822bcdb66e6

dylan <dylanbradshaw107@hotmail.com>

2 files changed, +11 -0Showing whitespace changes
src/endpoints/backends/chat-completions.js+10 -0
@@ -48,6 +48,7 @@ const API_MAKERSUITE = 'https://generativelanguage.googleapis.com';
4848const API_01AI = 'https://api.01.ai/v1';
4949const API_BLOCKENTROPY = 'https://api.blockentropy.ai/v1';
5050const API_AI21 = 'https://api.ai21.com/studio/v1';
51+const API_NANOGPT = 'https://nano-gpt.com/api/v1';
5152
5253/**
5354 * Applies a post-processing step to the generated messages.
@@ -656,6 +657,10 @@ router.post('/status', jsonParser, async function (request, response_getstatus_o
656657 api_url = API_BLOCKENTROPY;
657658 api_key_openai = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
658659 headers = {};
660+ } else if (request.body.chat_completion_source === CHAT_COMPLETION_SOURCES.NANOGPT) {
661+ api_url = API_NANOGPT;
662+ api_key_openai = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
663+ headers = {};
659664 } else {
660665 console.log('This chat completion source is not supported yet.');
661666 return response_getstatus_openai.status(400).send({ error: true });
@@ -906,6 +911,11 @@ router.post('/generate', jsonParser, function (request, response) {
906911 apiKey = readSecret(request.user.directories, SECRET_KEYS.GROQ);
907912 headers = {};
908913 bodyParams = {};
914+ } else if (request.body.chat_completion_source === CHAT_COMPLETION_SOURCES.NANOGPT) {
915+ apiUrl = API_NANOGPT;
916+ apiKey = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
917+ headers = {};
918+ bodyParams = {};
909919 } else if (request.body.chat_completion_source === CHAT_COMPLETION_SOURCES.ZEROONEAI) {
910920 apiUrl = API_01AI;
911921 apiKey = readSecret(request.user.directories, SECRET_KEYS.ZEROONEAI);
src/endpoints/secrets.js+1 -0
@@ -48,6 +48,7 @@ export const SECRET_KEYS = {
4848 BLOCKENTROPY: 'api_key_blockentropy',
4949 CUSTOM_OPENAI_TTS: 'api_key_custom_openai_tts',
5050 TAVILY: 'api_key_tavily',
51+ NANOGPT: 'api_key_nanogpt',
5152};
5253
5354// These are the keys that are safe to expose, even if allowKeysExposure is false