Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import os | |
import json | |
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. Check Secrets." | |
if not HF_TOKEN: | |
return "Error: HF_TOKEN not found. Check Secrets." | |
headers = { | |
"Authorization": f"Bearer {HF_TOKEN}" | |
} | |
try: | |
response = requests.get(f"{PRIVATE_SPACE_URL}/api/actor", headers=headers) | |
if response.status_code == 200: | |
# 응답 JSON 파싱 | |
data = response.json() | |
# 기대 구조: data["data"]["result"] => list of actor items | |
actor_ids = [] | |
if ( | |
"data" in data | |
and isinstance(data["data"], dict) | |
and "result" in data["data"] | |
and isinstance(data["data"]["result"], list) | |
): | |
for item in data["data"]["result"]: | |
if "actor_id" in item: | |
actor_ids.append(item["actor_id"]) | |
if len(actor_ids) >= 10: | |
break | |
if actor_ids: | |
return f"Found actor_ids: {actor_ids}" | |
else: | |
# actor_id가 없을 경우 구조 파악용 반환 | |
top_level_keys = list(data["data"].keys()) if "data" in data and isinstance(data["data"], dict) else [] | |
first_item = data["data"]["result"][0] if "data" in data and "result" in data["data"] and len(data["data"]["result"]) > 0 else {} | |
return ( | |
"No actor_id found.\n\n" | |
f"Keys in data['data']: {top_level_keys}\n\n" | |
"First item in data['data']['result']:\n" + | |
json.dumps(first_item, indent=2, ensure_ascii=False) | |
) | |
else: | |
return f"Error {response.status_code}\nResponse Text:\n{response.text}" | |
except Exception as e: | |
return f"Request failed: {str(e)}" | |
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.\n" | |
"Assumes structure: {status_code:..., data:{count:..., result:[{actor_id:...}]}}\n" | |
"If no actor_id found, shows partial keys for debugging." | |
) | |
) | |
if __name__ == "__main__": | |
iface.launch() | |