optimize page load check in getCompletion method
This commit is contained in:
+22
-2
@@ -214,6 +214,18 @@ class YouProvider {
|
||||
const { page, browser } = session;
|
||||
const emitter = new EventEmitter();
|
||||
|
||||
// 检查页面是否已经加载完成
|
||||
const isLoaded = await page.evaluate(() => {
|
||||
return document.readyState === 'complete' || document.readyState === 'interactive';
|
||||
});
|
||||
|
||||
if (!isLoaded) {
|
||||
console.log('页面尚未加载完成,等待加载...');
|
||||
await page.waitForNavigation({ waitUntil: 'domcontentloaded', timeout: 10000 }).catch(() => {
|
||||
console.log('页面加载超时,继续执行');
|
||||
});
|
||||
}
|
||||
|
||||
// 计算用户消息长度
|
||||
let userMessage = [{ question: "", answer: "" }];
|
||||
let userQuery = "";
|
||||
@@ -378,7 +390,8 @@ class YouProvider {
|
||||
var url = "https://you.com/api/streamingSearch?" + req_param.toString();
|
||||
console.log("正在发送请求");
|
||||
emitter.emit("start", traceId);
|
||||
page.evaluate(
|
||||
try {
|
||||
await page.evaluate(
|
||||
async (url, traceId) => {
|
||||
var evtSource = new EventSource(url);
|
||||
var callbackName = "callback" + traceId;
|
||||
@@ -424,11 +437,18 @@ class YouProvider {
|
||||
url,
|
||||
traceId
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("评估过程中出错:", error);
|
||||
emitter.emit("error", error);
|
||||
return { completion: emitter, cancel: () => {} };
|
||||
}
|
||||
|
||||
const cancel = () => {
|
||||
page?.evaluate((traceId) => {
|
||||
window["exit" + traceId]();
|
||||
}, traceId);
|
||||
}, traceId).catch(console.error);
|
||||
};
|
||||
|
||||
return { completion: emitter, cancel };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user