Guiyom commited on
Commit
3524f32
·
verified ·
1 Parent(s): 19a4ef5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -19
app.py CHANGED
@@ -49,20 +49,32 @@ class RaindropSearchBot:
49
  self.max_delay = 15 # Increased maximum delay
50
  self.ua = UserAgent()
51
  self.setup_proxies()
52
-
 
 
 
 
 
 
 
 
 
 
 
 
53
  def get_alternative_search_results(self, query: str) -> List[Dict]:
54
  """Implement alternative search engine if Google fails"""
55
- # Example using DuckDuckGo (you'll need to install duckduckgo-search)
56
  try:
57
- from duckduckgo_search import ddg
58
 
59
  self.random_delay()
60
- results = ddg(query, max_results=5)
 
61
 
62
  return [{
63
- 'title': result['title'],
64
- 'link': result['link'],
65
- 'snippet': result['snippet']
66
  } for result in results]
67
 
68
  except Exception as e:
@@ -515,15 +527,7 @@ class RaindropSearchBot:
515
  return output
516
 
517
  def process_request(self, user_request: str) -> str:
518
- """
519
- Process user request with improved error handling and query generation.
520
-
521
- Args:
522
- user_request (str): The user's original search request
523
-
524
- Returns:
525
- str: Formatted results and analysis
526
- """
527
  try:
528
  # Generate optimized search query
529
  search_query = self.generate_search_queries(user_request)
@@ -538,8 +542,13 @@ class RaindropSearchBot:
538
  # Get news results
539
  news_results = self.get_news_results(search_query)
540
 
541
- # Process all results
542
- processed_results = self.process_all_results([], google_results, news_results)
 
 
 
 
 
543
 
544
  # Generate response
545
  essay = self.generate_essay_response(processed_results, user_request)
@@ -593,7 +602,7 @@ class RaindropSearchBot:
593
  """
594
 
595
  response = self.client.chat.completions.create(
596
- model="gpt-4-mini",
597
  messages=[{"role": "user", "content": prompt}],
598
  temperature=0.3,
599
  max_tokens=100
 
49
  self.max_delay = 15 # Increased maximum delay
50
  self.ua = UserAgent()
51
  self.setup_proxies()
52
+
53
+ def get_next_proxy(self) -> dict:
54
+ """Get next proxy from the rotation"""
55
+ try:
56
+ proxy = next(self.proxy_cycle)
57
+ return {
58
+ 'http': proxy,
59
+ 'https': proxy
60
+ }
61
+ except StopIteration:
62
+ logger.warning("No proxies available, returning empty proxy dict")
63
+ return {}
64
+
65
  def get_alternative_search_results(self, query: str) -> List[Dict]:
66
  """Implement alternative search engine if Google fails"""
 
67
  try:
68
+ from duckduckgo_search import DDGS
69
 
70
  self.random_delay()
71
+ with DDGS() as ddgs:
72
+ results = list(ddgs.text(query, max_results=5))
73
 
74
  return [{
75
+ 'title': result.get('title', ''),
76
+ 'link': result.get('link', ''),
77
+ 'snippet': result.get('body', '')
78
  } for result in results]
79
 
80
  except Exception as e:
 
527
  return output
528
 
529
  def process_request(self, user_request: str) -> str:
530
+ """Process user request with improved error handling and query generation."""
 
 
 
 
 
 
 
 
531
  try:
532
  # Generate optimized search query
533
  search_query = self.generate_search_queries(user_request)
 
542
  # Get news results
543
  news_results = self.get_news_results(search_query)
544
 
545
+ # Process all results - Fix: Pass the user_request as first argument
546
+ processed_results = self.process_all_results(
547
+ request=user_request,
548
+ raindrop_results=[], # Empty list for raindrop results
549
+ google_results=google_results,
550
+ news_results=news_results
551
+ )
552
 
553
  # Generate response
554
  essay = self.generate_essay_response(processed_results, user_request)
 
602
  """
603
 
604
  response = self.client.chat.completions.create(
605
+ model="gpt-4o-mini",
606
  messages=[{"role": "user", "content": prompt}],
607
  temperature=0.3,
608
  max_tokens=100