yxmiler commited on
Commit
f364a0e
·
verified ·
1 Parent(s): a69edbb

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +16 -13
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
- Logger.error(JSON.stringify(linejosn, null, 2), 'Server');
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
- try {
766
- var url = result.data.links.url
767
- return `![image](${result.data.links.url})`
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('/hf/v1/models', (req, res) => {
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('/hf/v1/chat/completions', async (req, res) => {
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 `![image](${result.data.links.url})`
 
 
 
 
 
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();