openfree commited on
Commit
0bd1248
ยท
verified ยท
1 Parent(s): 8619bbc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -23
app.py CHANGED
@@ -588,6 +588,8 @@ def create_main_interface():
588
 
589
  async def execute_search_and_generate(query, setting):
590
  try:
 
 
591
  # ๊ฒ€์ƒ‰ ์‹คํ–‰
592
  url = "https://api.serphouse.com/serp/live"
593
  payload = {
@@ -596,70 +598,87 @@ def create_main_interface():
596
  "domain": "google.com",
597
  "lang": "en",
598
  "device": "desktop",
599
- "serp_type": "news", # ๋‰ด์Šค ๊ฒ€์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ
 
600
  "page": "1",
601
- "num": "10"
 
 
602
  }
603
  }
604
  headers = {
605
- "accept": "application/json",
606
- "content-type": "application/json",
607
- "authorization": "Bearer V38CNn4HXpLtynJQyOeoUensTEYoFy8PBUxKpDqAW1pawT1vfJ2BWtPQ98h6"
608
  }
609
 
 
610
  response = requests.post(url, headers=headers, json=payload)
 
 
 
 
 
 
611
  results = response.json()
 
612
 
613
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ HTML๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์š”์•ฝ
614
  search_summary = "<div class='search-results'>\n"
615
  search_summary += "<h2>์ตœ์‹  ๋‰ด์Šค ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ</h2>\n"
616
 
617
- if 'results' in results and 'news' in results['results']:
618
- for item in results['results']['news'][:5]: # ์ƒ์œ„ 5๊ฐœ ๊ฒฐ๊ณผ๋งŒ ์‚ฌ์šฉ
 
 
 
619
  search_summary += f"""
620
  <div class="search-item">
621
- <h3><a href="{item['url']}" target="_blank">{item['title']}</a></h3>
622
- <p>{item['snippet']}</p>
623
  <div class="search-meta">
624
- <span class="source">{item['channel']}</span>
625
- <span class="time">{item['time']}</span>
626
  </div>
627
  </div>
628
  """
629
  search_summary += "</div>"
630
 
631
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ ํ–ฅ์ƒ๋œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
632
- enhanced_prompt = f"""Based on the latest news search results, create a comprehensive and visually appealing response:
633
 
634
- Search Query: {query}
635
 
636
- Search Results Summary:
637
  {search_summary}
638
 
639
- Please create a response that:
640
- 1. Summarizes the key information from the search results
641
- 2. Presents the information in a clear and organized way
642
- 3. Uses appropriate HTML formatting for better visual presentation
643
- 4. Includes relevant quotes or statistics when available
644
- 5. Provides proper attribution to sources
645
 
646
- Response should be in HTML format with appropriate styling.
647
  """
648
 
 
 
649
  # async generator๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ •
650
  async for result in demo_instance.generation_code(enhanced_prompt, setting):
651
  final_result = result
 
 
652
  return final_result
653
 
654
  except Exception as e:
655
- print(f"Search error: {str(e)}")
 
656
  return [
657
  "",
658
  None,
659
  gr.update(active_key="error"),
660
  gr.update(open=False)
661
  ]
662
-
663
  def execute_code(query: str):
664
  if not query or query.strip() == '':
665
  return None, gr.update(active_key="empty")
 
588
 
589
  async def execute_search_and_generate(query, setting):
590
  try:
591
+ print(f"Executing search for query: {query}") # ๋””๋ฒ„๊น…์šฉ
592
+
593
  # ๊ฒ€์ƒ‰ ์‹คํ–‰
594
  url = "https://api.serphouse.com/serp/live"
595
  payload = {
 
598
  "domain": "google.com",
599
  "lang": "en",
600
  "device": "desktop",
601
+ "serp_type": "news",
602
+ "loc": "United States",
603
  "page": "1",
604
+ "num": "10",
605
+ "ie": "UTF-8",
606
+ "tbm": "nws"
607
  }
608
  }
609
  headers = {
610
+ "Authorization": "Bearer V38CNn4HXpLtynJQyOeoUensTEYoFy8PBUxKpDqAW1pawT1vfJ2BWtPQ98h6",
611
+ "Content-Type": "application/json"
 
612
  }
613
 
614
+ print("Sending API request...") # ๋””๋ฒ„๊น…์šฉ
615
  response = requests.post(url, headers=headers, json=payload)
616
+ print(f"API Response status: {response.status_code}") # ๋””๋ฒ„๊น…์šฉ
617
+
618
+ if response.status_code != 200:
619
+ print(f"API Error: {response.text}") # ๋””๋ฒ„๊น…์šฉ
620
+ raise Exception(f"API request failed with status {response.status_code}")
621
+
622
  results = response.json()
623
+ print(f"Got search results: {results.keys()}") # ๋””๋ฒ„๊น…์šฉ
624
 
625
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ HTML๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์š”์•ฝ
626
  search_summary = "<div class='search-results'>\n"
627
  search_summary += "<h2>์ตœ์‹  ๋‰ด์Šค ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ</h2>\n"
628
 
629
+ if 'results' in results:
630
+ news_results = results['results'].get('news', [])
631
+ print(f"Found {len(news_results)} news items") # ๋””๋ฒ„๊น…์šฉ
632
+
633
+ for item in news_results[:5]: # ์ƒ์œ„ 5๊ฐœ ๊ฒฐ๊ณผ๋งŒ ์‚ฌ์šฉ
634
  search_summary += f"""
635
  <div class="search-item">
636
+ <h3><a href="{item.get('url', '#')}">{item.get('title', 'No Title')}</a></h3>
637
+ <p>{item.get('snippet', 'No description available')}</p>
638
  <div class="search-meta">
639
+ <span class="source">{item.get('channel', 'Unknown')}</span>
640
+ <span class="time">{item.get('time', '')}</span>
641
  </div>
642
  </div>
643
  """
644
  search_summary += "</div>"
645
 
646
  # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ ํ–ฅ์ƒ๋œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
647
+ enhanced_prompt = f"""Based on these news search results, create a comprehensive visual summary:
648
 
649
+ Original Query: {query}
650
 
 
651
  {search_summary}
652
 
653
+ Please create a visually appealing HTML response that:
654
+ 1. Summarizes the key points from the news results
655
+ 2. Organizes information in a clear and structured way
656
+ 3. Uses appropriate styling for better readability
657
+ 4. Includes important quotes and facts
658
+ 5. Cites sources properly
659
 
660
+ Make sure to maintain proper HTML formatting in the response.
661
  """
662
 
663
+ print("Generating response with enhanced prompt...") # ๋””๋ฒ„๊น…์šฉ
664
+
665
  # async generator๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ •
666
  async for result in demo_instance.generation_code(enhanced_prompt, setting):
667
  final_result = result
668
+
669
+ print("Response generation completed") # ๋””๋ฒ„๊น…์šฉ
670
  return final_result
671
 
672
  except Exception as e:
673
+ print(f"Search error: {str(e)}") # ๋””๋ฒ„๊น…์šฉ
674
+ print(f"Full error details: {str(e.__class__.__name__)}: {str(e)}") # ๋””๋ฒ„๊น…์šฉ
675
  return [
676
  "",
677
  None,
678
  gr.update(active_key="error"),
679
  gr.update(open=False)
680
  ]
681
+
682
  def execute_code(query: str):
683
  if not query or query.strip() == '':
684
  return None, gr.update(active_key="empty")