Spaces:
Building
Building
Update app.py
Browse files
app.py
CHANGED
@@ -293,29 +293,22 @@ target_models = {
|
|
293 |
|
294 |
def get_models_data(progress=gr.Progress()):
|
295 |
"""모델 데이터 가져오기"""
|
296 |
-
url = "https://huggingface.co/api/models" #
|
297 |
-
params = {
|
298 |
-
'full': 'true',
|
299 |
-
'limit': 1000, # 1000위까지 가져오기
|
300 |
-
'sort': 'trending', # trending으로 정렬
|
301 |
-
'direction': -1
|
302 |
-
}
|
303 |
|
304 |
try:
|
305 |
progress(0, desc="Fetching models data...")
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
print(f"URL: {url}")
|
312 |
-
print(f"Params: {params}")
|
313 |
-
return create_error_plot(), "<div>모델 데이터를 가져오는데 실패했습니다.</div>", pd.DataFrame()
|
314 |
|
|
|
|
|
315 |
all_models = response.json()
|
316 |
-
print(f"Total models fetched: {len(all_models)}")
|
317 |
|
318 |
-
# 전체 모델의 순위 정보 저장
|
319 |
model_ranks = {model['id']: idx + 1 for idx, model in enumerate(all_models)}
|
320 |
|
321 |
# target_models에 있는 모델만 필터링하고 실제 순위 포함
|
@@ -324,13 +317,13 @@ def get_models_data(progress=gr.Progress()):
|
|
324 |
if model.get('id', '') in target_models:
|
325 |
model['rank'] = model_ranks[model['id']]
|
326 |
filtered_models.append(model)
|
327 |
-
print(f"Found model: {model['id']} at rank {model['rank']}")
|
328 |
|
329 |
# 순위로 정렬
|
330 |
filtered_models.sort(key=lambda x: x['rank'])
|
331 |
|
332 |
if not filtered_models:
|
333 |
-
print("No matching models found in the response")
|
334 |
return create_error_plot(), "<div>선택된 모델의 데이터를 찾을 수 없습니다.</div>", pd.DataFrame()
|
335 |
|
336 |
progress(0.3, desc="Creating visualization...")
|
@@ -421,6 +414,8 @@ def get_models_data(progress=gr.Progress()):
|
|
421 |
</a>
|
422 |
</div>
|
423 |
"""
|
|
|
|
|
424 |
|
425 |
# 순위권 밖 모델 카드 생성
|
426 |
for model_id in target_models:
|
|
|
293 |
|
294 |
def get_models_data(progress=gr.Progress()):
|
295 |
"""모델 데이터 가져오기"""
|
296 |
+
url = "https://huggingface.co/api/models/trending" # trending 전용 엔드포인트
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
try:
|
299 |
progress(0, desc="Fetching models data...")
|
300 |
+
params = {
|
301 |
+
'full': 'true',
|
302 |
+
'limit': 1000, # 1000위까지 가져오기
|
303 |
+
'interval': 'day' # 일간 트렌딩
|
304 |
+
}
|
|
|
|
|
|
|
305 |
|
306 |
+
response = requests.get(url, params=params)
|
307 |
+
response.raise_for_status()
|
308 |
all_models = response.json()
|
309 |
+
print(f"Total models fetched: {len(all_models)}")
|
310 |
|
311 |
+
# 전체 모델의 순위 정보 저장 (1000위까지)
|
312 |
model_ranks = {model['id']: idx + 1 for idx, model in enumerate(all_models)}
|
313 |
|
314 |
# target_models에 있는 모델만 필터링하고 실제 순위 포함
|
|
|
317 |
if model.get('id', '') in target_models:
|
318 |
model['rank'] = model_ranks[model['id']]
|
319 |
filtered_models.append(model)
|
320 |
+
print(f"Found model: {model['id']} at rank {model['rank']}")
|
321 |
|
322 |
# 순위로 정렬
|
323 |
filtered_models.sort(key=lambda x: x['rank'])
|
324 |
|
325 |
if not filtered_models:
|
326 |
+
print("No matching models found in the response")
|
327 |
return create_error_plot(), "<div>선택된 모델의 데이터를 찾을 수 없습니다.</div>", pd.DataFrame()
|
328 |
|
329 |
progress(0.3, desc="Creating visualization...")
|
|
|
414 |
</a>
|
415 |
</div>
|
416 |
"""
|
417 |
+
progress((0.6 + 0.3 * filtered_models.index(model)/len(filtered_models)),
|
418 |
+
desc=f"Loading model {filtered_models.index(model)+1}/{len(filtered_models)}...")
|
419 |
|
420 |
# 순위권 밖 모델 카드 생성
|
421 |
for model_id in target_models:
|