fix 'unusual query volume' check

This commit is contained in:
被遗忘的记忆
2024-10-30 01:23:01 +08:00
committed by GitHub
parent 4ebf967839
commit 78ab7c9b34
+21 -15
View File
@@ -529,14 +529,17 @@ class YouProvider {
}
checkAndSwitchMode() {
const availableModes = Object.keys(this.modeStatus).filter(mode => this.modeStatus[mode]);
// 如果当前模式不可用
if (!this.modeStatus[this.currentMode]) {
if (availableModes.length === 0) {
console.log("两种模式达到请求上限。");
} else if (availableModes.length === 1) {
console.log(`当前模式 ${this.currentMode} 已达到请求次数阈值`);
this.currentMode = availableModes[0];
this.rotationEnabled = false;
const availableModes = Object.keys(this.modeStatus).filter(mode => this.modeStatus[mode]);
if (availableModes.length === 0) {
console.warn("两种模式都达到请求上限。");
} else if (availableModes.length === 1) {
this.currentMode = availableModes[0];
this.rotationEnabled = false;
}
}
}
@@ -559,6 +562,9 @@ class YouProvider {
// 检查
if (this.isRotationEnabled) {
this.checkAndSwitchMode();
if (!Object.values(this.modeStatus).some(status => status)) {
return;
}
}
// 处理模式轮换逻辑
if (this.isCustomModeEnabled && this.isRotationEnabled && this.rotationEnabled) {
@@ -568,6 +574,8 @@ class YouProvider {
if (this.switchCounter >= this.switchThreshold) {
this.switchMode();
}
} else {
console.log(`当前模式: ${this.currentMode}`);
}
// 根据轮换状态决定是否使用自定义模式
@@ -774,6 +782,7 @@ class YouProvider {
}, traceId);
};
const self = this;
page.exposeFunction("callback" + traceId, async (event, data) => {
if (isEnding) return;
@@ -794,20 +803,17 @@ class YouProvider {
// 检测 'unusual query volume'
if (tokenContent.includes('unusual query volume')) {
console.log("检测到请求量异常提示");
isEnding = true;
if (self.isRotationEnabled) {
self.modeStatus[self.currentMode] = false;
self.checkAndSwitchMode();
emitter.emit("error", new Error(`模式达到请求上限,已切换模式 ${self.currentMode},请重试请求。`));
if (Object.values(self.modeStatus).some(status => status)) {
console.log(`模式达到请求上限,已切换模式 ${self.currentMode},请重试请求。`);
}
} else {
emitter.emit("error", new Error("检测到请求量异常提示,请求终止。"));
console.log("检测到请求量异常提示,请求终止。");
}
await cleanup();
return;
isEnding = true;
}
process.stdout.write(tokenContent);