Update index.js
Browse files
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
|
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")
|
133 |
try {
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
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(`<
|
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: '
|
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();
|