yxmiler commited on
Commit
8bb80fd
·
verified ·
1 Parent(s): fbb0338

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +27 -22
index.js CHANGED
@@ -33,7 +33,6 @@ const CONFIG = {
33
  CHROME_PATH: process.env.CHROME_PATH || "/usr/bin/chromium"//chrome路径
34
  };
35
 
36
- //console.log("搜索结果是否开启:",CONFIG.ISSHOW_SEARCH_RESULTS);
37
  // 请求头配置
38
  const DEFAULT_HEADERS = {
39
  'accept': '*/*',
@@ -114,30 +113,35 @@ class Utils {
114
  await new Promise(resolve => setTimeout(resolve, CONFIG.RETRY.DELAY_BASE * retryCount));
115
  }
116
  }
117
- static async retryRequestWithNewSignature(originalRequest) {
118
- console.log("认证信息已过期,尝试刷新认证信息并重新请求~");
119
- try {
120
- // 刷新认证信息
121
- await Utils.get_signature();
122
-
123
- // 重新执行原始请求
124
- return await originalRequest();
125
- } catch (error) {
126
- // 第二次失败直接抛出错误
127
- throw new Error(`重试请求失败: ${error.message}`);
128
- }
129
- }
130
- static async handleError(error, res, originalRequest = null) {
131
  // 如果是500错误且提供了原始请求函数,尝试重新获取签名并重试
132
- if (String(error).includes("status: 500") && originalRequest) {
133
  try {
134
- const result = await Utils.retryRequestWithNewSignature(originalRequest);
135
- return result;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  } catch (retryError) {
137
  console.error('重试失败:', retryError);
138
  return res.status(500).json({
139
  error: {
140
- message: retryError.message,
141
  type: 'server_error',
142
  param: null,
143
  code: retryError.code || null
@@ -480,7 +484,8 @@ app.post('/hf/v1/chat/completions', async (req, res) => {
480
  try {
481
  await makeRequest();
482
  } catch (error) {
483
- await Utils.handleError(error, res, makeRequest);
 
484
  }
485
  });
486
 
@@ -545,7 +550,7 @@ async function handleStreamResponse(response, model, res) {
545
  }
546
  if (linejosn.response === "webSearchResults" && CONFIG.ISSHOW_SEARCH_RESULTS) {
547
  const searchResults = await Utils.organizeSearchResults(linejosn.webSearchResults);
548
- const responseData = MessageProcessor.createChatResponse(`<thinking>\r\n${searchResults}\r\n</thinking>\r\n`, model, true);
549
  res.write(`data: ${JSON.stringify(responseData)}\n\n`);
550
  }
551
  break;
@@ -672,7 +677,7 @@ async function handleImageResponse(imageUrl) {
672
  const formData = new FormData();
673
 
674
  formData.append('source', imageBuffer, {
675
- filename: '2223.jpg',
676
  contentType: 'image/jpeg'
677
  });
678
  const formDataHeaders = formData.getHeaders();
 
33
  CHROME_PATH: process.env.CHROME_PATH || "/usr/bin/chromium"//chrome路径
34
  };
35
 
 
36
  // 请求头配置
37
  const DEFAULT_HEADERS = {
38
  'accept': '*/*',
 
113
  await new Promise(resolve => setTimeout(resolve, CONFIG.RETRY.DELAY_BASE * retryCount));
114
  }
115
  }
116
+ static async handleError(error, res) {
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  // 如果是500错误且提供了原始请求函数,尝试重新获取签名并重试
118
+ if (String(error).includes("status: 500")) {
119
  try {
120
+ await Utils.get_signature();
121
+ if (CONFIG.API.SIGNATURE_COOKIE) {
122
+ return res.status(500).json({
123
+ error: {
124
+ message: `${retryError.message}已重新刷新认证信息,请重新对话`,
125
+ type: 'server_error',
126
+ param: null,
127
+ code: retryError.code || null
128
+ }
129
+ });
130
+ } else {
131
+ return res.status(500).json({
132
+ error: {
133
+ message: "认证信息获取失败",
134
+ type: 'server_error',
135
+ param: null,
136
+ code: null
137
+ }
138
+ });
139
+ }
140
  } catch (retryError) {
141
  console.error('重试失败:', retryError);
142
  return res.status(500).json({
143
  error: {
144
+ message: `${retryError.message},认证信息获取失败`,
145
  type: 'server_error',
146
  param: null,
147
  code: retryError.code || null
 
484
  try {
485
  await makeRequest();
486
  } catch (error) {
487
+ CONFIG.API.SIGNATURE_COOKIE = null;
488
+ await Utils.handleError(error, res);
489
  }
490
  });
491
 
 
550
  }
551
  if (linejosn.response === "webSearchResults" && CONFIG.ISSHOW_SEARCH_RESULTS) {
552
  const searchResults = await Utils.organizeSearchResults(linejosn.webSearchResults);
553
+ const responseData = MessageProcessor.createChatResponse(`<think>\r\n${searchResults}\r\n</think>\r\n`, model, true);
554
  res.write(`data: ${JSON.stringify(responseData)}\n\n`);
555
  }
556
  break;
 
677
  const formData = new FormData();
678
 
679
  formData.append('source', imageBuffer, {
680
+ filename: 'new.jpg',
681
  contentType: 'image/jpeg'
682
  });
683
  const formDataHeaders = formData.getHeaders();