nacho commited on
Commit
fc44ec7
·
1 Parent(s): 8651ef6

perf: shave ~5s off chat — shorter waits, non-blocking delete, lower timeouts

Browse files
Files changed (1) hide show
  1. deepseek_browser.py +8 -11
deepseek_browser.py CHANGED
@@ -76,12 +76,12 @@ class DeepSeekBrowser:
76
  viewport={"width": 1280, "height": 720}, locale="zh-CN", args=args,
77
  )
78
  self.page = await self.context.new_page()
79
- await self.page.goto(self.DEEPSEEK_URL, timeout=30000)
80
  await self._wait_for_cloudflare()
81
  await self._check_login_state()
82
 
83
  async def _wait_for_cloudflare(self):
84
- deadline = time.time() + 25
85
  last_url = ""
86
  while time.time() < deadline:
87
  try:
@@ -216,7 +216,7 @@ class DeepSeekBrowser:
216
  await btn.click()
217
  await self.page.wait_for_selector("textarea", timeout=10000)
218
  return
219
- await self.page.goto(self.DEEPSEEK_URL, timeout=30000)
220
  await self.page.wait_for_selector("textarea", timeout=15000)
221
  except Exception as e:
222
  logger.error("New chat error: %s", e)
@@ -353,7 +353,7 @@ class DeepSeekBrowser:
353
 
354
  async def _wait_for_response(self, timeout, prompt=""):
355
  deadline = time.time() + timeout
356
- await asyncio.sleep(0.8)
357
  last_answer, last_thinking, stable = "", "", 0
358
  while time.time() < deadline:
359
  try:
@@ -372,7 +372,7 @@ class DeepSeekBrowser:
372
  last_answer, last_thinking, stable = answer, thinking, 0
373
  else:
374
  stable += 1
375
- if stable >= 3:
376
  return {"content": last_answer, "reasoning_content": last_thinking}
377
  await asyncio.sleep(0.5)
378
  if last_answer or last_thinking:
@@ -390,7 +390,7 @@ class DeepSeekBrowser:
390
  await inp.press("Enter")
391
  deadline = time.time() + timeout
392
  last_thinking, last_answer, stable = "", "", 0
393
- await asyncio.sleep(0.8)
394
  while time.time() < deadline:
395
  try:
396
  result = await self.page.evaluate(self._EXTRACT_JS)
@@ -415,13 +415,10 @@ class DeepSeekBrowser:
415
  last_answer, stable = answer, 0
416
  elif answer:
417
  stable += 1
418
- if stable >= 3:
419
  break
420
  await asyncio.sleep(0.3)
421
- try:
422
- await self.delete_chat()
423
- except Exception as e:
424
- logger.warning("[stream_message] cleanup error: %s", e)
425
  except Exception as e:
426
  logger.error("Stream message error: %s", e)
427
  raise
 
76
  viewport={"width": 1280, "height": 720}, locale="zh-CN", args=args,
77
  )
78
  self.page = await self.context.new_page()
79
+ await self.page.goto(self.DEEPSEEK_URL, timeout=20000)
80
  await self._wait_for_cloudflare()
81
  await self._check_login_state()
82
 
83
  async def _wait_for_cloudflare(self):
84
+ deadline = time.time() + 15
85
  last_url = ""
86
  while time.time() < deadline:
87
  try:
 
216
  await btn.click()
217
  await self.page.wait_for_selector("textarea", timeout=10000)
218
  return
219
+ await self.page.goto(self.DEEPSEEK_URL, timeout=20000)
220
  await self.page.wait_for_selector("textarea", timeout=15000)
221
  except Exception as e:
222
  logger.error("New chat error: %s", e)
 
353
 
354
  async def _wait_for_response(self, timeout, prompt=""):
355
  deadline = time.time() + timeout
356
+ await asyncio.sleep(0.3)
357
  last_answer, last_thinking, stable = "", "", 0
358
  while time.time() < deadline:
359
  try:
 
372
  last_answer, last_thinking, stable = answer, thinking, 0
373
  else:
374
  stable += 1
375
+ if stable >= 2:
376
  return {"content": last_answer, "reasoning_content": last_thinking}
377
  await asyncio.sleep(0.5)
378
  if last_answer or last_thinking:
 
390
  await inp.press("Enter")
391
  deadline = time.time() + timeout
392
  last_thinking, last_answer, stable = "", "", 0
393
+ await asyncio.sleep(0.3)
394
  while time.time() < deadline:
395
  try:
396
  result = await self.page.evaluate(self._EXTRACT_JS)
 
415
  last_answer, stable = answer, 0
416
  elif answer:
417
  stable += 1
418
+ if stable >= 2:
419
  break
420
  await asyncio.sleep(0.3)
421
+ asyncio.create_task(self._safe_delete_chat())
 
 
 
422
  except Exception as e:
423
  logger.error("Stream message error: %s", e)
424
  raise