searchapi / app.py
seawolf2357's picture
Update app.py
591ec6f verified
raw
history blame contribute delete
No virus
2.07 kB
import gradio as gr
import requests
import os
import logging
# ๋กœ๊น… ์„ค์ •
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
# Google Custom Search API ์ •๋ณด
API_KEY = os.getenv("JSONKEY")
CX = "c01abc75e1b95483d" # ์‚ฌ์šฉ์ž ์ปค์Šคํ…€ ๊ฒ€์ƒ‰ ์—”์ง„ ID
def google_search(query):
logger.info(f"Searching for query: {query}")
url = f"https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={CX}&q={query}&num=10"
logger.debug(f"Request URL: {url}")
try:
response = requests.get(url)
response.raise_for_status() # HTTP ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
search_results = response.json()
logger.debug(f"API Response: {search_results}")
results = []
if 'items' in search_results:
for item in search_results['items'][:10]: # ์ตœ๋Œ€ 10๊ฐœ์˜ ๊ฒฐ๊ณผ๋งŒ ์ฒ˜๋ฆฌ
title = item['title']
link = item['link']
snippet = item.get('snippet', '')
results.append(f"Title: {title}\nLink: {link}\nSnippet: {snippet}\n\n")
else:
logger.warning("No items found in search results")
if 'error' in search_results:
error_message = search_results['error']['message']
logger.error(f"API Error: {error_message}")
results.append(f"Error: {error_message}")
else:
results.append("No results found")
return '\n'.join(results[:10]) # ์ตœ๋Œ€ 10๊ฐœ์˜ ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜
except requests.exceptions.RequestException as e:
logger.error(f"Request failed: {e}")
return f"An error occurred: {e}"
# Gradio ์ธํ„ฐํŽ˜์ด์Šค ์„ค์ •
iface = gr.Interface(
fn=google_search,
inputs="text",
outputs="text",
title="Google Custom Search",
description="Enter a search query to get results from Google Custom Search API."
)
# ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰
if __name__ == "__main__":
logger.info("Starting Gradio interface")
iface.launch()