openfree commited on
Commit
89fcc58
ยท
verified ยท
1 Parent(s): ebf139f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -14
app.py CHANGED
@@ -32,7 +32,9 @@ from safetensors.torch import load_file
32
  from diffusers import FluxPipeline
33
  import torch
34
  from os import path # ์ด ์ค„์„ ์ถ”๊ฐ€
35
-
 
 
36
  # ์บ์‹œ ๊ฒฝ๋กœ ์„ค์ •
37
  cache_path = path.join(path.dirname(path.abspath(__file__)), "models")
38
  os.environ["TRANSFORMERS_CACHE"] = cache_path
@@ -587,30 +589,44 @@ def create_main_interface():
587
  async def execute_search_and_generate(query, setting):
588
  try:
589
  print(f"Executing web search for query: {query}") # ๋””๋ฒ„๊น…์šฉ
 
590
  # ๊ฒ€์ƒ‰ ์‹คํ–‰
591
  url = "https://api.serphouse.com/serp/live"
 
 
 
 
 
 
592
  payload = {
593
  "data": {
594
  "q": query,
595
- "domain": "google.com",
 
596
  "lang": "en",
597
  "device": "desktop",
598
- "serp_type": "web",
599
- "loc": "Alba,Texas,United States",
600
- "loc_id": "1026201",
601
- "verbatim": "0",
602
- "gfilter": "0",
603
  "page": "1",
604
- "num_result": "5"
 
 
605
  }
606
  }
 
607
  headers = {
608
- 'Authorization': 'Bearer V38CNn4HXpLtynJQyOeoUensTEYoFy8PBUxKpDqAW1pawT1vfJ2BWtPQ98h6',
609
- 'Content-Type': 'application/json'
 
610
  }
611
 
 
 
 
 
 
612
  print("Sending search request...") # ๋””๋ฒ„๊น…์šฉ
613
- response = requests.post(url, headers=headers, json=payload)
 
614
  results = response.json()
615
  print(f"Search results received: {len(results.get('results', []))} items") # ๋””๋ฒ„๊น…์šฉ
616
 
@@ -625,22 +641,24 @@ def create_main_interface():
625
  title = result.get('title', 'No Title')
626
  url = result.get('url', '#')
627
  snippet = result.get('snippet', 'No description available')
 
628
 
629
  search_content += f"""
630
  <div class="search-item">
631
  <h3><a href="{url}" target="_blank">{title}</a></h3>
632
  <p>{snippet}</p>
 
633
  </div>
634
  """
635
  search_content += "</div>"
636
 
637
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
638
- enhanced_prompt = f"""Based on these search results, create a visually appealing and informative response:
639
  {search_content}
640
 
641
  Original query: {query}
642
 
643
- Create a comprehensive visual response that incorporates relevant information from the search results.
644
  """
645
 
646
  # async generator๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ •
@@ -656,7 +674,7 @@ def create_main_interface():
656
  gr.update(active_key="error"),
657
  gr.update(open=False)
658
  ]
659
-
660
  def execute_code(query: str):
661
  if not query or query.strip() == '':
662
  return None, gr.update(active_key="empty")
 
32
  from diffusers import FluxPipeline
33
  import torch
34
  from os import path # ์ด ์ค„์„ ์ถ”๊ฐ€
35
+ from datetime import datetime, timedelta
36
+ from requests.adapters import HTTPAdapter
37
+ from requests.packages.urllib3.util.retry import Retry
38
  # ์บ์‹œ ๊ฒฝ๋กœ ์„ค์ •
39
  cache_path = path.join(path.dirname(path.abspath(__file__)), "models")
40
  os.environ["TRANSFORMERS_CACHE"] = cache_path
 
589
  async def execute_search_and_generate(query, setting):
590
  try:
591
  print(f"Executing web search for query: {query}") # ๋””๋ฒ„๊น…์šฉ
592
+
593
  # ๊ฒ€์ƒ‰ ์‹คํ–‰
594
  url = "https://api.serphouse.com/serp/live"
595
+
596
+ # ๋‚ ์งœ ๋ฒ”์œ„ ์„ค์ •
597
+ now = datetime.utcnow()
598
+ yesterday = now - timedelta(days=1)
599
+ date_range = f"{yesterday.strftime('%Y-%m-%d')},{now.strftime('%Y-%m-%d')}"
600
+
601
  payload = {
602
  "data": {
603
  "q": query,
604
+ "domain": "google.com",
605
+ "loc": "United States",
606
  "lang": "en",
607
  "device": "desktop",
608
+ "serp_type": "news", # ๋‰ด์Šค ๊ฒ€์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ
 
 
 
 
609
  "page": "1",
610
+ "num": "10",
611
+ "date_range": date_range,
612
+ "sort_by": "date"
613
  }
614
  }
615
+
616
  headers = {
617
+ "accept": "application/json",
618
+ "content-type": "application/json",
619
+ "authorization": "Bearer V38CNn4HXpLtynJQyOeoUensTEYoFy8PBUxKpDqAW1pawT1vfJ2BWtPQ98h6"
620
  }
621
 
622
+ # ์„ธ์…˜ ์„ค์ • ๋ฐ ์žฌ์‹œ๋„ ๋กœ์ง ์ถ”๊ฐ€
623
+ session = requests.Session()
624
+ retries = Retry(total=3, backoff_factor=0.5)
625
+ session.mount('https://', HTTPAdapter(max_retries=retries))
626
+
627
  print("Sending search request...") # ๋””๋ฒ„๊น…์šฉ
628
+ response = session.post(url, json=payload, headers=headers, timeout=(5, 15))
629
+ response.raise_for_status()
630
  results = response.json()
631
  print(f"Search results received: {len(results.get('results', []))} items") # ๋””๋ฒ„๊น…์šฉ
632
 
 
641
  title = result.get('title', 'No Title')
642
  url = result.get('url', '#')
643
  snippet = result.get('snippet', 'No description available')
644
+ time = result.get('time', '')
645
 
646
  search_content += f"""
647
  <div class="search-item">
648
  <h3><a href="{url}" target="_blank">{title}</a></h3>
649
  <p>{snippet}</p>
650
+ <span class="search-time">{time}</span>
651
  </div>
652
  """
653
  search_content += "</div>"
654
 
655
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
656
+ enhanced_prompt = f"""Based on these recent news results, create a visually appealing and informative response:
657
  {search_content}
658
 
659
  Original query: {query}
660
 
661
+ Create a comprehensive visual response that incorporates relevant information from the news results.
662
  """
663
 
664
  # async generator๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ •
 
674
  gr.update(active_key="error"),
675
  gr.update(open=False)
676
  ]
677
+
678
  def execute_code(query: str):
679
  if not query or query.strip() == '':
680
  return None, gr.update(active_key="empty")