Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -33,32 +33,56 @@ conversation_histories = {}
|
|
| 33 |
|
| 34 |
def google_search(query):
|
| 35 |
logger.info(f"Searching for query: {query}")
|
| 36 |
-
|
| 37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
try:
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
results = []
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
results.append(f"Title: {title}\nLink: {link}\nSnippet: {snippet}\n\n")
|
| 52 |
-
else:
|
| 53 |
-
logger.warning("No items found in search results")
|
| 54 |
-
if 'error' in search_results:
|
| 55 |
-
error_message = search_results['error']['message']
|
| 56 |
-
logger.error(f"API Error: {error_message}")
|
| 57 |
-
results.append(f"Error: {error_message}")
|
| 58 |
-
else:
|
| 59 |
-
results.append("No results found")
|
| 60 |
|
| 61 |
-
return '\n'.join(results
|
| 62 |
|
| 63 |
except requests.exceptions.RequestException as e:
|
| 64 |
logger.error(f"Request failed: {e}")
|
|
@@ -163,7 +187,7 @@ async def generate_response(message):
|
|
| 163 |
except Exception as e:
|
| 164 |
logging.error(f"Error in generate_response: {e}")
|
| 165 |
return f"{user_mention}, ์ฃ์กํฉ๋๋ค. ์๋ต์ ์์ฑํ๋ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ค์ ์๋ํด ์ฃผ์ธ์."
|
| 166 |
-
|
| 167 |
if __name__ == "__main__":
|
| 168 |
# Discord ํด๋ผ์ด์ธํธ ์คํ
|
| 169 |
bot = MyClient()
|
|
|
|
| 33 |
|
| 34 |
def google_search(query):
|
| 35 |
logger.info(f"Searching for query: {query}")
|
| 36 |
+
|
| 37 |
+
# ๊ธฐ๋ณธ ๋งค๊ฐ๋ณ์ ์ค์
|
| 38 |
+
params = {
|
| 39 |
+
'key': API_KEY,
|
| 40 |
+
'cx': CX,
|
| 41 |
+
'q': query,
|
| 42 |
+
'num': 10,
|
| 43 |
+
'sort': 'date:r:1m', # ์ต๊ทผ 1๊ฐ์ ๋ด์ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ๋ ฌ
|
| 44 |
+
'dateRestrict': 'm1', # ์ต๊ทผ 1๊ฐ์ ๋ด์ ๊ฒฐ๊ณผ๋ง ํ์
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
# ๋ด์ค ๊ฒ์์ ์ํ ๋งค๊ฐ๋ณ์ ์ถ๊ฐ
|
| 48 |
+
news_params = params.copy()
|
| 49 |
+
news_params['tbm'] = 'nws'
|
| 50 |
+
|
| 51 |
+
url = "https://www.googleapis.com/customsearch/v1"
|
| 52 |
|
| 53 |
try:
|
| 54 |
+
# ๋ด์ค ๊ฒ์
|
| 55 |
+
news_response = requests.get(url, params=news_params)
|
| 56 |
+
news_response.raise_for_status()
|
| 57 |
+
news_results = news_response.json()
|
| 58 |
+
|
| 59 |
+
# ์ผ๋ฐ ๊ฒ์
|
| 60 |
+
general_response = requests.get(url, params=params)
|
| 61 |
+
general_response.raise_for_status()
|
| 62 |
+
general_results = general_response.json()
|
| 63 |
+
|
| 64 |
+
# ๊ฒฐ๊ณผ ํฉ์น๊ธฐ
|
| 65 |
+
combined_results = []
|
| 66 |
+
|
| 67 |
+
# ๋ด์ค ๊ฒฐ๊ณผ ์ถ๊ฐ (์ต๋ 3๊ฐ)
|
| 68 |
+
if 'items' in news_results:
|
| 69 |
+
combined_results.extend(news_results['items'][:3])
|
| 70 |
+
|
| 71 |
+
# ์ผ๋ฐ ๊ฒ์ ๊ฒฐ๊ณผ ์ถ๊ฐ
|
| 72 |
+
if 'items' in general_results:
|
| 73 |
+
combined_results.extend(general_results['items'])
|
| 74 |
+
|
| 75 |
+
# ์ต๋ 10๊ฐ ๊ฒฐ๊ณผ๋ก ์ ํ
|
| 76 |
+
combined_results = combined_results[:10]
|
| 77 |
|
| 78 |
results = []
|
| 79 |
+
for item in combined_results:
|
| 80 |
+
title = item['title']
|
| 81 |
+
link = item['link']
|
| 82 |
+
snippet = item.get('snippet', '')
|
| 83 |
+
results.append(f"Title: {title}\nLink: {link}\nSnippet: {snippet}\n\n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
+
return '\n'.join(results)
|
| 86 |
|
| 87 |
except requests.exceptions.RequestException as e:
|
| 88 |
logger.error(f"Request failed: {e}")
|
|
|
|
| 187 |
except Exception as e:
|
| 188 |
logging.error(f"Error in generate_response: {e}")
|
| 189 |
return f"{user_mention}, ์ฃ์กํฉ๋๋ค. ์๋ต์ ์์ฑํ๋ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ค์ ์๋ํด ์ฃผ์ธ์."
|
| 190 |
+
|
| 191 |
if __name__ == "__main__":
|
| 192 |
# Discord ํด๋ผ์ด์ธํธ ์คํ
|
| 193 |
bot = MyClient()
|