import gradio as gr import requests API_KEY = 'XDDeRl6U3IY8VRzv7YBGRrnGuOwqpOYD2yS9VTAYM7VEfZcr1aWXubZ1' API_ENDPOINT = 'https://api.pexels.com/v1/search' def fetch_high_quality_images(keyword): """ Pexels API를 호출하여 주어진 키워드에 대한 고화질 이미지 URL 목록을 가져옵니다. """ headers = {'Authorization': API_KEY} params = {'query': keyword, 'per_page': 10, 'size': 'large'} # per_page는 요청할 이미지 수를 조정할 수 있습니다. response = requests.get(API_ENDPOINT, headers=headers, params=params) images_urls = [] if response.status_code == 200: data = response.json() images = data['photos'] for image in images: images_urls.append(image['src']['original']) else: print("Error:", response.status_code, response.text) return images_urls def show_images(keyword): """ 주어진 키워드에 대한 이미지 검색 결과를 보여줍니다. """ urls = fetch_high_quality_images(keyword) # Gradio의 Image 컴포넌트를 사용하여 이미지 URL을 표시합니다. return [gr.Image(src=url) for url in urls] # Gradio 인터페이스 설정 interface = gr.Interface( fn=show_images, inputs=gr.Textbox(label="Enter Keyword"), outputs=gr.Gallery(), title="Pexels Image Search", description="Enter a keyword to search for high-quality images from Pexels." ) if __name__ == "__main__": interface.launch()