LejobuildYT commited on
Commit
b3ba34d
·
verified ·
1 Parent(s): 1d7b739

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -17
app.py CHANGED
@@ -1,13 +1,10 @@
1
  import re
2
  import requests
3
  from bs4 import BeautifulSoup
4
- # DuckDuckGo Search: use DDGS class
5
  from duckduckgo_search import DDGS
6
- # Google search (unofficial scraping library)
7
- from googlesearch import search as google_search
8
  # SerpAPI client for various search engines (Google, Bing, etc.)
9
- # Requires SERPAPI_API_KEY environment variable or explicit key
10
- from serpapi import GoogleSearch as SerpApiClient
11
  from rake_nltk import Rake
12
  import gradio as gr
13
  from transformers import pipeline
@@ -19,21 +16,18 @@ def extract_keywords(text: str) -> list[str]:
19
  return rake.get_ranked_phrases()[:5]
20
 
21
  # 2) Search functions
22
-
23
  def ddg_search_links(query: str, num: int = 5) -> list[str]:
24
  ddgs = DDGS()
25
  results = ddgs.text(query, max_results=num)
26
  return [r['href'] for r in results]
27
 
28
-
29
  def google_search_links(query: str, num: int = 5) -> list[str]:
30
- return list(google_search(query, num_results=num, pause=2))
31
-
32
 
33
  def serpapi_search_links(query: str, api_key: str, engine: str = 'bing', num: int = 5) -> list[str]:
34
- # engine: 'bing', 'google', 'yahoo', etc.
35
  params = {"engine": engine, "q": query, "api_key": api_key}
36
- client = SerpApiClient(params)
37
  data = client.get_dict()
38
  results = data.get('organic_results', [])
39
  return [r['link'] for r in results if not r.get('sponsored')][:num]
@@ -94,7 +88,6 @@ def process(prompt: str, web_enabled: bool, serpapi_key: str) -> str:
94
 
95
  # Websearch enabled: model first
96
  ans = model_answer(prompt)
97
- # If model confident, return
98
  if not is_uncertain(ans):
99
  return ans
100
 
@@ -102,7 +95,6 @@ def process(prompt: str, web_enabled: bool, serpapi_key: str) -> str:
102
  links = []
103
  links += google_search_links(query)
104
  links += ddg_search_links(query)
105
- # Bing and Google via SerpAPI
106
  if serpapi_key:
107
  links += serpapi_search_links(query, serpapi_key, engine='bing')
108
  links += serpapi_search_links(query, serpapi_key, engine='google')
@@ -115,9 +107,6 @@ def process(prompt: str, web_enabled: bool, serpapi_key: str) -> str:
115
  return summary
116
 
117
  # 8) Gradio UI
118
- def main(prompt: str, web_enabled: bool, serpapi_key: str) -> str:
119
- return process(prompt, web_enabled, serpapi_key)
120
-
121
  with gr.Blocks() as demo:
122
  gr.Markdown("# Intelligente KI mit Multi-Engine-Websuche")
123
  with gr.Row():
@@ -128,9 +117,13 @@ with gr.Blocks() as demo:
128
  output = gr.Textbox(label="Antwort", lines=10)
129
 
130
  btn.click(
131
- fn=main,
132
  inputs=[prompt_input, web_switch, serp_input],
133
  outputs=output
134
  )
135
 
 
 
 
 
136
  demo.launch()
 
1
  import re
2
  import requests
3
  from bs4 import BeautifulSoup
4
+ # DuckDuckGo Search
5
  from duckduckgo_search import DDGS
 
 
6
  # SerpAPI client for various search engines (Google, Bing, etc.)
7
+ from serpapi import GoogleSearch
 
8
  from rake_nltk import Rake
9
  import gradio as gr
10
  from transformers import pipeline
 
16
  return rake.get_ranked_phrases()[:5]
17
 
18
  # 2) Search functions
 
19
  def ddg_search_links(query: str, num: int = 5) -> list[str]:
20
  ddgs = DDGS()
21
  results = ddgs.text(query, max_results=num)
22
  return [r['href'] for r in results]
23
 
 
24
  def google_search_links(query: str, num: int = 5) -> list[str]:
25
+ from googlesearch import search
26
+ return list(search(query, num_results=num, pause=2))
27
 
28
  def serpapi_search_links(query: str, api_key: str, engine: str = 'bing', num: int = 5) -> list[str]:
 
29
  params = {"engine": engine, "q": query, "api_key": api_key}
30
+ client = GoogleSearch(params)
31
  data = client.get_dict()
32
  results = data.get('organic_results', [])
33
  return [r['link'] for r in results if not r.get('sponsored')][:num]
 
88
 
89
  # Websearch enabled: model first
90
  ans = model_answer(prompt)
 
91
  if not is_uncertain(ans):
92
  return ans
93
 
 
95
  links = []
96
  links += google_search_links(query)
97
  links += ddg_search_links(query)
 
98
  if serpapi_key:
99
  links += serpapi_search_links(query, serpapi_key, engine='bing')
100
  links += serpapi_search_links(query, serpapi_key, engine='google')
 
107
  return summary
108
 
109
  # 8) Gradio UI
 
 
 
110
  with gr.Blocks() as demo:
111
  gr.Markdown("# Intelligente KI mit Multi-Engine-Websuche")
112
  with gr.Row():
 
117
  output = gr.Textbox(label="Antwort", lines=10)
118
 
119
  btn.click(
120
+ fn=process,
121
  inputs=[prompt_input, web_switch, serp_input],
122
  outputs=output
123
  )
124
 
125
+ gr.Spacer()
126
+ gr.Markdown("---")
127
+ gr.Markdown("*Hinweis: Suche nur bei aktivierter Websuche und nicht bei verbotenen Phrasen.*")
128
+
129
  demo.launch()