api-proxy-demo / app.py
Sunghyun Jun
Add application file
f6c62cd
raw
history blame
1.8 kB
import gradio as gr
import requests
import os # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์‚ฌ์šฉ์„ ์œ„ํ•ด ํ•„์š”
# Secrets์—์„œ Private Space URL๊ณผ Access Token ์ฝ๊ธฐ
PRIVATE_SPACE_URL = os.getenv("PRIVATE_SPACE_URL")
HF_TOKEN = os.getenv("HF_TOKEN")
def fetch_actor_data():
if not PRIVATE_SPACE_URL:
return "Error: Private Space URL not found. Please check the Secrets configuration."
if not HF_TOKEN:
return "Error: Access token not found. Please check the Secrets configuration."
headers = {
"Authorization": f"Bearer {HF_TOKEN}"
}
try:
# Private Space์˜ /api/actor ์—”๋“œํฌ์ธํŠธ๋กœ ์š”์ฒญ
url = f"{PRIVATE_SPACE_URL}/api/actor"
response = requests.get(url, headers=headers)
if response.status_code == 200:
# ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒฝ์šฐ
data = response.json()
# actor_id ์ถ”์ถœ
actor_ids = []
# JSON ๊ตฌ์กฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ actor_id ์ˆ˜์ง‘
if "results" in data:
for item in data["results"]:
if "actor_id" in item:
actor_ids.append(item["actor_id"])
return f"Actor ID: {actor_ids}"
else:
# ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ƒํƒœ ์ฝ”๋“œ์™€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ฐ˜ํ™˜
return f"Error {response.status_code}: {response.text}"
except Exception as e:
return f"Request failed: {str(e)}"
# Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜
iface = gr.Interface(
fn=fetch_actor_data,
inputs=None, # ์ž…๋ ฅ๊ฐ’ ํ•„์š” ์—†์Œ
outputs="text", # ํ…์ŠคํŠธ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
title="Fetch Actor Data",
description="Fetches actor data from the private Hugging Face Space using the /api/actor endpoint."
)
# ์•ฑ ์‹คํ–‰
if __name__ == "__main__":
iface.launch()