File size: 1,425 Bytes
c8d2441
6ea293c
 
c8d2441
 
6ea293c
c8d2441
 
 
 
 
 
 
 
 
 
 
6ea293c
c8d2441
 
 
 
 
 
 
 
 
6ea293c
c8d2441
a9797ee
6ea293c
c8d2441
5bfb5de
 
 
 
6ea293c
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from serpapi import GoogleSearch
import gradio as gr

# SerpAPI 설정
SERP_API_KEY = "56b76bc0db7f66e70958810f3486e99a7ad4fc9b4ad0719e34478b20d2f7ec4f"

def multi_search_serpapi(query):
    # SerpAPI를 사용하여 Google 웹 검색
    params = {
        "engine": "google",
        "q": query,
        "api_key": SERP_API_KEY
    }
    search = GoogleSearch(params)
    results = search.get_dict()
    organic_results = results.get("organic_results", [])
    web_results = [(result['link'],) for result in organic_results]

    # SerpAPI를 사용하여 YouTube 검색
    youtube_params = {
        "engine": "youtube",
        "search_query": query,
        "api_key": SERP_API_KEY
    }
    youtube_search = GoogleSearch(youtube_params)
    youtube_results = youtube_search.get_dict()
    video_results = [(f"https://www.youtube.com/watch?v={video['video_id']}",) for video in youtube_results.get("videos", [])]

    return web_results, video_results

iface = gr.Interface(
    fn=multi_search_serpapi,
    inputs=gr.Textbox(lines=2, placeholder="검색할 텍스트를 입력하세요..."),
    outputs=[gr.List(label="웹 검색 결과"), gr.List(label="YouTube 비디오 검색 결과")],
    title="멀티 검색 결과 출력",
    description="입력 텍스트를 기준으로 웹 검색 결과와 YouTube 비디오 검색 결과를 구분하여 출력합니다."
)

if __name__ == "__main__":
    iface.launch()