seawolf2357 commited on
Commit
145ad7d
·
verified ·
1 Parent(s): cfd9d13

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -45
app.py CHANGED
@@ -1,51 +1,42 @@
1
- import gradio as gr
2
  import requests
 
3
 
4
- # Pexels API 설정
5
- PEXELS_API_KEY = '여기에_당신의_API_키를_입력하세요'
 
6
 
7
  def search_images(keyword):
8
- headers = {
9
- 'Authorization': PEXELS_API_KEY
10
- }
11
- params = {
12
- 'query': keyword,
13
- 'per_page': 80 # 한 번에 반환받을 이미지 수
14
- }
15
- url = 'https://api.pexels.com/v1/search'
16
- response = requests.get(url, headers=headers, params=params)
17
- data = response.json()
18
-
19
- # 검색된 이미지의 URL을 리스트로 추출
20
- image_urls = [photo['src']['original'] for photo in data['photos']]
21
- return image_urls
22
-
23
- def search_videos(keyword):
24
- headers = {
25
- 'Authorization': PEXELS_API_KEY
26
- }
27
- params = {
28
- 'query': keyword,
29
- 'per_page': 80 # 한 번에 반환받을 비디오 수
30
- }
31
- url = 'https://api.pexels.com/videos/search'
32
- response = requests.get(url, headers=headers, params=params)
33
- data = response.json()
34
-
35
- # 검색된 비디오의 다운로드 가능한 URL을 리스트로 추출
36
- video_download_links = [video['video_files'][0]['link'] for video in data['videos']]
37
- return video_download_links
38
 
39
- with gr.Blocks() as demo:
40
- with gr.Tabs():
41
- with gr.Tab("이미지 검색"):
42
- image_search_input = gr.Textbox(label="검색 키워드")
43
- image_search_output = gr.Gallery(label="검색된 이미지")
44
- image_search_input.change(search_images, inputs=image_search_input, outputs=image_search_output)
45
-
46
- with gr.Tab("비디오 검색"):
47
- video_search_input = gr.Textbox(label="검색 키워드")
48
- video_search_output = gr.Markdown(label="검색된 비디오")
49
- video_search_input.change(search_videos, inputs=video_search_input, outputs=video_search_output)
50
 
51
- demo.launch()
 
 
 
1
  import requests
2
+ import gradio as gr
3
 
4
+ # Pexels API 키를 여기에 입력하세요
5
+ API_KEY = '5woz23MGx1QrSY0WHFb0BRi29JvbXPu97Hg0xnklYgHUI8G0w23FKH62'
6
+ API_URL = 'https://api.pexels.com/v1/search'
7
 
8
  def search_images(keyword):
9
+ headers = {'Authorization': API_KEY}
10
+ params = {'query': keyword, 'per_page': 8} # per_page 값을 8로 설정하여 8개의 이미지를 검색
11
+ response = requests.get(API_URL, headers=headers, params=params)
12
+
13
+ if response.status_code == 200 and response.json()['photos']:
14
+ photos = response.json()['photos']
15
+ result_html = ""
16
+ for photo in photos:
17
+ image_url = photo['src']['original']
18
+ photographer = photo['photographer']
19
+ photographer_url = photo['photographer_url']
20
+ photo_url = photo['url']
21
+
22
+ # 각 이미지와 크레딧을 HTML 형식으로 추가
23
+ result_html += f"""
24
+ <div style='margin-bottom: 20px;'>
25
+ <img src='{image_url}' width='100%' />
26
+ <p>This <a href='{photo_url}'>Photo</a> was taken by <a href='{photographer_url}'>{photographer}</a> on <a href='https://www.pexels.com'>Pexels</a>.</p>
27
+ </div>
28
+ """
29
+ return result_html
30
+ else:
31
+ return "검색 결과가 없습니다."
 
 
 
 
 
 
 
32
 
33
+ interface = gr.Interface(
34
+ fn=search_images,
35
+ inputs=gr.Textbox(lines=2, placeholder="검색할 이미지 키워드를 입력하세요"),
36
+ outputs=gr.HTML(label="검색 결과"),
37
+ title="Pexels 이미지 검색기",
38
+ description="Pexels에서 키워드에 맞는 이미지를 검색하고, 해당 이미지의 출처와 작가에 대한 정보를 제공합니다."
39
+ )
 
 
 
 
40
 
41
+ if __name__ == "__main__":
42
+ interface.launch()