|
import requests |
|
import gradio as gr |
|
|
|
|
|
API_KEY = '5woz23MGx1QrSY0WHFb0BRi29JvbXPu97Hg0xnklYgHUI8G0w23FKH62' |
|
API_URL = 'https://api.pexels.com/v1/search' |
|
|
|
def search_images(keyword): |
|
headers = {'Authorization': API_KEY} |
|
params = {'query': keyword, 'per_page': 8} |
|
response = requests.get(API_URL, headers=headers, params=params) |
|
|
|
if response.status_code == 200 and response.json()['photos']: |
|
photos = response.json()['photos'] |
|
result_html = "" |
|
for photo in photos: |
|
image_url = photo['src']['original'] |
|
photographer = photo['photographer'] |
|
photographer_url = photo['photographer_url'] |
|
photo_url = photo['url'] |
|
|
|
|
|
result_html += f""" |
|
<div style='margin-bottom: 20px;'> |
|
<img src='{image_url}' width='100%' /> |
|
<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> |
|
</div> |
|
""" |
|
return result_html |
|
else: |
|
return "검색 결과가 없습니다." |
|
|
|
interface = gr.Interface( |
|
fn=search_images, |
|
inputs=gr.Textbox(lines=2, placeholder="검색할 이미지 키워드를 입력하세요"), |
|
outputs=gr.HTML(label="검색 결과"), |
|
title="Pexels 이미지 검색기", |
|
description="Pexels에서 키워드에 맞는 이미지를 검색하고, 해당 이미지의 출처와 작가에 대한 정보를 제공합니다." |
|
) |
|
|
|
if __name__ == "__main__": |
|
interface.launch() |