@@ -232,7 +232,7 @@ def _create_browser_context(self, *, har_file_path: Path | None = None) -> Gener
232232 b .close (reason = "done" )
233233 p .stop ()
234234
235- def __call__ (self , * , url : str , query : str , load_state_timeout : float | None = None ):
235+ def __call__ (self , * , url : str , query : str , max_scrolls : int , load_state_timeout : float | None ):
236236 prompt = PROMPT_TEMPLATE % query
237237 datetime_fmt = datetime .now ().strftime ("%Y-%m-%d_%H-%M-%S" )
238238 har_file_path = Path (gettempdir ()) / f"{ datetime_fmt } --ayejax.har"
@@ -249,9 +249,10 @@ def __call__(self, *, url: str, query: str, load_state_timeout: float | None = N
249249
250250 self .logger .info ("Performing initial scroll" )
251251 self .scroll (page ) # Scroll first to fetch some ajax responses
252+ max_scrolls -= 1
252253 self .logger .info (f"Initial scroll complete | response_count={ len (self .url_to_response )} " )
253254
254- while len (self .url_to_score ) == 0 :
255+ while len (self .url_to_score ) == 0 and max_scrolls > 0 :
255256 try :
256257 self .fetch_keywords (prompt , page )
257258 except Exception as e :
@@ -262,6 +263,7 @@ def __call__(self, *, url: str, query: str, load_state_timeout: float | None = N
262263 break
263264
264265 self .scroll (page )
266+ max_scrolls -= 1
265267
266268 har_data = read_har (har_file_path )
267269 har_file_path .unlink ()
@@ -284,11 +286,12 @@ def __call__(self, *, url: str, query: str, load_state_timeout: float | None = N
284286def find (
285287 url : str ,
286288 query : str ,
289+ max_scrolls : int = 10 ,
287290 * ,
288291 llm_client : llm .LLMClientInterface ,
289292 browser : Browser | Literal ["headless" , "headed" ] = "headed" ,
290293 relevance_threshold : float = 0.4 ,
291294 load_state_timeout : float | None = None ,
292295):
293296 finder = _Finder (llm_client = llm_client , browser = browser , relevance_threshold = relevance_threshold )
294- return finder (url = url , query = query , load_state_timeout = load_state_timeout )
297+ return finder (url = url , query = query , max_scrolls = max_scrolls , load_state_timeout = load_state_timeout )
0 commit comments