Spaces:
Sleeping
Sleeping
Update index.js
Browse files
index.js
CHANGED
@@ -608,9 +608,11 @@ async function handleResponse(response, model, res, isStream) {
|
|
608 |
if (!data.trim()) continue;
|
609 |
if (data === "[DONE]") continue;
|
610 |
const linejosn = JSON.parse(data);
|
611 |
-
|
612 |
-
if (linejosn?.error) {
|
613 |
Logger.error(JSON.stringify(linejosn, null, 2), 'Server');
|
|
|
|
|
|
|
614 |
stream.destroy();
|
615 |
reject(new Error("RateLimitError"));
|
616 |
return;
|
@@ -640,6 +642,7 @@ async function handleResponse(response, model, res, isStream) {
|
|
640 |
})();
|
641 |
dataPromises.push(processPromise);
|
642 |
} catch (error) {
|
|
|
643 |
continue;
|
644 |
}
|
645 |
}
|
@@ -661,11 +664,13 @@ async function handleResponse(response, model, res, isStream) {
|
|
661 |
CONFIG.IS_IMG_GEN2 = false;
|
662 |
resolve();
|
663 |
} catch (error) {
|
|
|
664 |
reject(error);
|
665 |
}
|
666 |
});
|
667 |
|
668 |
stream.on('error', (error) => {
|
|
|
669 |
reject(error);
|
670 |
});
|
671 |
});
|
@@ -673,7 +678,7 @@ async function handleResponse(response, model, res, isStream) {
|
|
673 |
Logger.error(error, 'Server');
|
674 |
CONFIG.IS_IMG_GEN = false;
|
675 |
CONFIG.IS_IMG_GEN2 = false;
|
676 |
-
throw error;
|
677 |
}
|
678 |
}
|
679 |
|
@@ -700,6 +705,7 @@ async function handleImageResponse(imageUrl) {
|
|
700 |
await new Promise(resolve => setTimeout(resolve, CONFIG.API.RETRY_TIME * retryCount));
|
701 |
|
702 |
} catch (error) {
|
|
|
703 |
retryCount++;
|
704 |
if (retryCount === MAX_RETRIES) {
|
705 |
throw error;
|
@@ -762,12 +768,7 @@ async function handleImageResponse(imageUrl) {
|
|
762 |
} else {
|
763 |
Logger.info("生图成功", 'Server');
|
764 |
const result = await responseURL.json();
|
765 |
-
|
766 |
-
var url = result.data.links.url
|
767 |
-
return ``
|
768 |
-
} catch (error) {
|
769 |
-
return error
|
770 |
-
}
|
771 |
}
|
772 |
}
|
773 |
}
|
@@ -786,7 +787,7 @@ app.use(cors({
|
|
786 |
allowedHeaders: ['Content-Type', 'Authorization']
|
787 |
}));
|
788 |
|
789 |
-
app.get('/
|
790 |
res.json({
|
791 |
object: "list",
|
792 |
data: Object.keys(CONFIG.MODELS).map((model, index) => ({
|
@@ -799,7 +800,7 @@ app.get('/hf/v1/models', (req, res) => {
|
|
799 |
});
|
800 |
|
801 |
|
802 |
-
app.post('/
|
803 |
try {
|
804 |
const authToken = req.headers.authorization?.replace('Bearer ', '');
|
805 |
if (CONFIG.API.IS_CUSTOM_SSO) {
|
@@ -880,8 +881,10 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
880 |
Logger.info(`当前剩余可用令牌数: ${tokenManager.getTokenCount()}`, 'Server');
|
881 |
try {
|
882 |
await handleResponse(response, req.body.model, res, req.body.stream);
|
|
|
883 |
return;
|
884 |
} catch (error) {
|
|
|
885 |
if (isTempCookie) {
|
886 |
await Utils.get_signature();
|
887 |
} else {
|
@@ -900,7 +903,7 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
900 |
if (response.status === 429) {
|
901 |
if (isTempCookie) {
|
902 |
await Utils.get_signature();
|
903 |
-
} else {
|
904 |
tokenManager.setModelLimit(CONFIG.SSO_INDEX, req.body.model);
|
905 |
for (let i = 1; i <= tokenManager.getTokenCount(); i++) {
|
906 |
CONFIG.SSO_INDEX = (CONFIG.SSO_INDEX + 1) % tokenManager.getTokenCount();
|
@@ -911,7 +914,7 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
|
|
911 |
}
|
912 |
}
|
913 |
}
|
914 |
-
} else {
|
915 |
// 非429错误直接抛出
|
916 |
if (isTempCookie) {
|
917 |
await Utils.get_signature();
|
|
|
608 |
if (!data.trim()) continue;
|
609 |
if (data === "[DONE]") continue;
|
610 |
const linejosn = JSON.parse(data);
|
611 |
+
if (linejosn?.error) {
|
|
|
612 |
Logger.error(JSON.stringify(linejosn, null, 2), 'Server');
|
613 |
+
if(linejosn.error?.name === "RateLimitError"){
|
614 |
+
CONFIG.API.TEMP_COOKIE = null;
|
615 |
+
}
|
616 |
stream.destroy();
|
617 |
reject(new Error("RateLimitError"));
|
618 |
return;
|
|
|
642 |
})();
|
643 |
dataPromises.push(processPromise);
|
644 |
} catch (error) {
|
645 |
+
Logger.error(error, 'Server');
|
646 |
continue;
|
647 |
}
|
648 |
}
|
|
|
664 |
CONFIG.IS_IMG_GEN2 = false;
|
665 |
resolve();
|
666 |
} catch (error) {
|
667 |
+
Logger.error(error, 'Server');
|
668 |
reject(error);
|
669 |
}
|
670 |
});
|
671 |
|
672 |
stream.on('error', (error) => {
|
673 |
+
Logger.error(error, 'Server');
|
674 |
reject(error);
|
675 |
});
|
676 |
});
|
|
|
678 |
Logger.error(error, 'Server');
|
679 |
CONFIG.IS_IMG_GEN = false;
|
680 |
CONFIG.IS_IMG_GEN2 = false;
|
681 |
+
throw new Error(error);
|
682 |
}
|
683 |
}
|
684 |
|
|
|
705 |
await new Promise(resolve => setTimeout(resolve, CONFIG.API.RETRY_TIME * retryCount));
|
706 |
|
707 |
} catch (error) {
|
708 |
+
Logger.error(error, 'Server');
|
709 |
retryCount++;
|
710 |
if (retryCount === MAX_RETRIES) {
|
711 |
throw error;
|
|
|
768 |
} else {
|
769 |
Logger.info("生图成功", 'Server');
|
770 |
const result = await responseURL.json();
|
771 |
+
return ``
|
|
|
|
|
|
|
|
|
|
|
772 |
}
|
773 |
}
|
774 |
}
|
|
|
787 |
allowedHeaders: ['Content-Type', 'Authorization']
|
788 |
}));
|
789 |
|
790 |
+
app.get('/v1/models', (req, res) => {
|
791 |
res.json({
|
792 |
object: "list",
|
793 |
data: Object.keys(CONFIG.MODELS).map((model, index) => ({
|
|
|
800 |
});
|
801 |
|
802 |
|
803 |
+
app.post('/v1/chat/completions', async (req, res) => {
|
804 |
try {
|
805 |
const authToken = req.headers.authorization?.replace('Bearer ', '');
|
806 |
if (CONFIG.API.IS_CUSTOM_SSO) {
|
|
|
881 |
Logger.info(`当前剩余可用令牌数: ${tokenManager.getTokenCount()}`, 'Server');
|
882 |
try {
|
883 |
await handleResponse(response, req.body.model, res, req.body.stream);
|
884 |
+
Logger.info(`请求结束`, 'Server');
|
885 |
return;
|
886 |
} catch (error) {
|
887 |
+
Logger.error(error, 'Server');
|
888 |
if (isTempCookie) {
|
889 |
await Utils.get_signature();
|
890 |
} else {
|
|
|
903 |
if (response.status === 429) {
|
904 |
if (isTempCookie) {
|
905 |
await Utils.get_signature();
|
906 |
+
} else {
|
907 |
tokenManager.setModelLimit(CONFIG.SSO_INDEX, req.body.model);
|
908 |
for (let i = 1; i <= tokenManager.getTokenCount(); i++) {
|
909 |
CONFIG.SSO_INDEX = (CONFIG.SSO_INDEX + 1) % tokenManager.getTokenCount();
|
|
|
914 |
}
|
915 |
}
|
916 |
}
|
917 |
+
} else {
|
918 |
// 非429错误直接抛出
|
919 |
if (isTempCookie) {
|
920 |
await Utils.get_signature();
|