Spaces:
Building
Building
Update app.py
Browse files
app.py
CHANGED
@@ -27,21 +27,7 @@ COUNTRY_LANGUAGES = {
|
|
27 |
"Saudi Arabia": "ar",
|
28 |
"United Arab Emirates": "ar",
|
29 |
"Egypt": "ar",
|
30 |
-
"Morocco": "ar"
|
31 |
-
"Greece": "el",
|
32 |
-
"Poland": "pl",
|
33 |
-
"Czech Republic": "cs",
|
34 |
-
"Hungary": "hu",
|
35 |
-
"Turkey": "tr",
|
36 |
-
"Romania": "ro",
|
37 |
-
"Bulgaria": "bg",
|
38 |
-
"Croatia": "hr",
|
39 |
-
"Serbia": "sr",
|
40 |
-
"Slovakia": "sk",
|
41 |
-
"Slovenia": "sl",
|
42 |
-
"Estonia": "et",
|
43 |
-
"Latvia": "lv",
|
44 |
-
"Lithuania": "lt"
|
45 |
}
|
46 |
|
47 |
COUNTRY_LOCATIONS = {
|
@@ -124,10 +110,9 @@ def translate_query(query, country):
|
|
124 |
|
125 |
translated = hf_client.text_generation(
|
126 |
prompt,
|
127 |
-
max_new_tokens=50,
|
128 |
-
temperature=0.1
|
129 |
)
|
130 |
-
# ๋ฒ์ญ๋ ํ
์คํธ๋ง ์ถ์ถ
|
131 |
translated = translated.strip()
|
132 |
print(f"Original query: {query}")
|
133 |
print(f"Translated query: {translated}")
|
@@ -140,12 +125,11 @@ def translate_query(query, country):
|
|
140 |
def search_serphouse(query, country, page=1, num_result=10):
|
141 |
url = "https://api.serphouse.com/serp/live"
|
142 |
|
143 |
-
# ๊ฒ์์ด ๋ฒ์ญ
|
144 |
translated_query = translate_query(query, country)
|
145 |
|
146 |
payload = {
|
147 |
"data": {
|
148 |
-
"q": translated_query,
|
149 |
"domain": "google.com",
|
150 |
"loc": COUNTRY_LOCATIONS.get(country, "United States"),
|
151 |
"lang": "en",
|
@@ -208,22 +192,18 @@ css = """
|
|
208 |
footer {visibility: hidden;}
|
209 |
"""
|
210 |
|
211 |
-
# Gradio ์ธํฐํ์ด์ค ์์
|
212 |
with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css, title="NewsAI ์๋น์ค") as iface:
|
213 |
-
gr.Markdown("๊ฒ์์ด๋ฅผ ์
๋ ฅํ๊ณ ์ํ๋ ๊ตญ๊ฐ๋ฅผ ์ ํํ๋ฉด,
|
214 |
-
|
215 |
|
216 |
with gr.Column():
|
217 |
with gr.Row():
|
218 |
query = gr.Textbox(label="๊ฒ์์ด")
|
219 |
country = gr.Dropdown(MAJOR_COUNTRIES, label="๊ตญ๊ฐ", value="South Korea")
|
220 |
|
221 |
-
# ๋ฒ์ญ๋ ๊ฒ์์ด ํ์
|
222 |
-
translated_display = gr.Markdown(visible=True
|
223 |
|
224 |
search_button = gr.Button("๊ฒ์", variant="primary")
|
225 |
-
|
226 |
-
|
227 |
|
228 |
progress = gr.Progress()
|
229 |
status_message = gr.Markdown(visible=False)
|
@@ -248,21 +228,18 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css, title="NewsAI ์๋น์ค") as
|
|
248 |
|
249 |
def search_and_display(query, country, articles_state, progress=gr.Progress()):
|
250 |
progress(0, desc="๊ฒ์์ด ๋ฒ์ญ ์ค...")
|
251 |
-
|
252 |
-
# ๊ฒ์์ด ๋ฒ์ญ
|
253 |
translated_query = translate_query(query, country)
|
254 |
if translated_query != query:
|
255 |
translated_display_text = f"์๋ณธ ๊ฒ์์ด: {query}\n๋ฒ์ญ๋ ๊ฒ์์ด: {translated_query}"
|
256 |
else:
|
257 |
translated_display_text = f"๊ฒ์์ด: {query}"
|
258 |
-
|
259 |
progress(0.2, desc="๊ฒ์ ์์...")
|
260 |
response_data = search_serphouse(query, country)
|
261 |
error_message, articles = format_results_from_raw(response_data)
|
262 |
|
263 |
-
outputs = [gr.update(value=translated_display_text, visible=True)]
|
264 |
-
|
265 |
-
|
266 |
|
267 |
if error_message:
|
268 |
outputs.append(gr.update(value=error_message, visible=True))
|
@@ -301,14 +278,21 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css, title="NewsAI ์๋น์ค") as
|
|
301 |
outputs.append(gr.update(visible=False))
|
302 |
return outputs
|
303 |
|
304 |
-
|
|
|
305 |
for comp in article_components:
|
306 |
-
search_outputs.extend([
|
307 |
-
|
|
|
|
|
|
|
|
|
|
|
308 |
search_outputs.extend([articles_state, status_message])
|
309 |
|
|
|
310 |
search_button.click(
|
311 |
-
search_and_display,
|
312 |
inputs=[query, country, articles_state],
|
313 |
outputs=search_outputs,
|
314 |
show_progress=True
|
|
|
27 |
"Saudi Arabia": "ar",
|
28 |
"United Arab Emirates": "ar",
|
29 |
"Egypt": "ar",
|
30 |
+
"Morocco": "ar"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
|
33 |
COUNTRY_LOCATIONS = {
|
|
|
110 |
|
111 |
translated = hf_client.text_generation(
|
112 |
prompt,
|
113 |
+
max_new_tokens=50,
|
114 |
+
temperature=0.1
|
115 |
)
|
|
|
116 |
translated = translated.strip()
|
117 |
print(f"Original query: {query}")
|
118 |
print(f"Translated query: {translated}")
|
|
|
125 |
def search_serphouse(query, country, page=1, num_result=10):
|
126 |
url = "https://api.serphouse.com/serp/live"
|
127 |
|
|
|
128 |
translated_query = translate_query(query, country)
|
129 |
|
130 |
payload = {
|
131 |
"data": {
|
132 |
+
"q": translated_query,
|
133 |
"domain": "google.com",
|
134 |
"loc": COUNTRY_LOCATIONS.get(country, "United States"),
|
135 |
"lang": "en",
|
|
|
192 |
footer {visibility: hidden;}
|
193 |
"""
|
194 |
|
|
|
195 |
with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css, title="NewsAI ์๋น์ค") as iface:
|
196 |
+
gr.Markdown("๊ฒ์์ด๋ฅผ ์
๋ ฅํ๊ณ ์ํ๋ ๊ตญ๊ฐ๋ฅผ ์ ํํ๋ฉด, ํด๋น ๊ตญ๊ฐ์ ์ธ์ด๋ก ๋ฒ์ญ๋ ๊ฒ์์ด๋ก ๋ด์ค๋ฅผ ๊ฒ์ํฉ๋๋ค.")
|
|
|
197 |
|
198 |
with gr.Column():
|
199 |
with gr.Row():
|
200 |
query = gr.Textbox(label="๊ฒ์์ด")
|
201 |
country = gr.Dropdown(MAJOR_COUNTRIES, label="๊ตญ๊ฐ", value="South Korea")
|
202 |
|
203 |
+
# ๋ฒ์ญ๋ ๊ฒ์์ด ํ์ ์ปดํฌ๋ํธ
|
204 |
+
translated_display = gr.Markdown(visible=True)
|
205 |
|
206 |
search_button = gr.Button("๊ฒ์", variant="primary")
|
|
|
|
|
207 |
|
208 |
progress = gr.Progress()
|
209 |
status_message = gr.Markdown(visible=False)
|
|
|
228 |
|
229 |
def search_and_display(query, country, articles_state, progress=gr.Progress()):
|
230 |
progress(0, desc="๊ฒ์์ด ๋ฒ์ญ ์ค...")
|
231 |
+
|
|
|
232 |
translated_query = translate_query(query, country)
|
233 |
if translated_query != query:
|
234 |
translated_display_text = f"์๋ณธ ๊ฒ์์ด: {query}\n๋ฒ์ญ๋ ๊ฒ์์ด: {translated_query}"
|
235 |
else:
|
236 |
translated_display_text = f"๊ฒ์์ด: {query}"
|
237 |
+
|
238 |
progress(0.2, desc="๊ฒ์ ์์...")
|
239 |
response_data = search_serphouse(query, country)
|
240 |
error_message, articles = format_results_from_raw(response_data)
|
241 |
|
242 |
+
outputs = [gr.update(value=translated_display_text, visible=True)]
|
|
|
|
|
243 |
|
244 |
if error_message:
|
245 |
outputs.append(gr.update(value=error_message, visible=True))
|
|
|
278 |
outputs.append(gr.update(visible=False))
|
279 |
return outputs
|
280 |
|
281 |
+
# ๊ฒ์ ๋ฒํผ ํด๋ฆญ ์ ์
๋ฐ์ดํธ๋ ์ถ๋ ฅ ์ปดํฌ๋ํธ ๋ชฉ๋ก
|
282 |
+
search_outputs = [translated_display, gr.Markdown(visible=False)] # ๋ฒ์ญ ๊ฒฐ๊ณผ ํ์ ์ปดํฌ๋ํธ
|
283 |
for comp in article_components:
|
284 |
+
search_outputs.extend([
|
285 |
+
comp['group'],
|
286 |
+
comp['title'],
|
287 |
+
comp['image'],
|
288 |
+
comp['snippet'],
|
289 |
+
comp['info']
|
290 |
+
])
|
291 |
search_outputs.extend([articles_state, status_message])
|
292 |
|
293 |
+
# ๊ฒ์ ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ ์ค์
|
294 |
search_button.click(
|
295 |
+
fn=search_and_display,
|
296 |
inputs=[query, country, articles_state],
|
297 |
outputs=search_outputs,
|
298 |
show_progress=True
|