Update app.py
Browse files
app.py
CHANGED
|
@@ -141,10 +141,12 @@ target_models = {
|
|
| 141 |
|
| 142 |
def get_models_data(progress=gr.Progress()):
|
| 143 |
"""모델 데이터 가져오기"""
|
| 144 |
-
url = "https://huggingface.co/api/models
|
| 145 |
params = {
|
| 146 |
'full': 'true',
|
| 147 |
-
'limit': 1000 # 1000위까지 가져오기
|
|
|
|
|
|
|
| 148 |
}
|
| 149 |
|
| 150 |
try:
|
|
@@ -155,24 +157,28 @@ def get_models_data(progress=gr.Progress()):
|
|
| 155 |
print(f"API 요청 실패: {response.status_code}")
|
| 156 |
print(f"Response: {response.text}")
|
| 157 |
print(f"URL: {url}")
|
|
|
|
| 158 |
return create_error_plot(), "<div>모델 데이터를 가져오는데 실패했습니다.</div>", pd.DataFrame()
|
| 159 |
|
| 160 |
all_models = response.json()
|
|
|
|
| 161 |
|
| 162 |
-
# 전체 모델의 순위 정보 저장
|
| 163 |
model_ranks = {model['id']: idx + 1 for idx, model in enumerate(all_models)}
|
| 164 |
|
| 165 |
# target_models에 있는 모델만 필터링하고 실제 순위 포함
|
| 166 |
filtered_models = []
|
| 167 |
for model in all_models:
|
| 168 |
if model.get('id', '') in target_models:
|
| 169 |
-
model['rank'] = model_ranks[model['id']]
|
| 170 |
filtered_models.append(model)
|
|
|
|
| 171 |
|
| 172 |
# 순위로 정렬
|
| 173 |
filtered_models.sort(key=lambda x: x['rank'])
|
| 174 |
|
| 175 |
if not filtered_models:
|
|
|
|
| 176 |
return create_error_plot(), "<div>선택된 모델의 데이터를 찾을 수 없습니다.</div>", pd.DataFrame()
|
| 177 |
|
| 178 |
progress(0.3, desc="Creating visualization...")
|
|
@@ -323,6 +329,9 @@ def get_models_data(progress=gr.Progress()):
|
|
| 323 |
except Exception as e:
|
| 324 |
print(f"Error in get_models_data: {str(e)}")
|
| 325 |
return create_error_plot(), f"<div>에러 발생: {str(e)}</div>", pd.DataFrame()
|
|
|
|
|
|
|
|
|
|
| 326 |
|
| 327 |
# 관심 스페이스 URL 리스트와 정보
|
| 328 |
target_spaces = {
|
|
|
|
| 141 |
|
| 142 |
def get_models_data(progress=gr.Progress()):
|
| 143 |
"""모델 데이터 가져오기"""
|
| 144 |
+
url = "https://huggingface.co/api/models" # 기본 API 엔드포인트
|
| 145 |
params = {
|
| 146 |
'full': 'true',
|
| 147 |
+
'limit': 1000, # 1000위까지 가져오기
|
| 148 |
+
'sort': 'trending', # trending으로 정렬
|
| 149 |
+
'direction': -1
|
| 150 |
}
|
| 151 |
|
| 152 |
try:
|
|
|
|
| 157 |
print(f"API 요청 실패: {response.status_code}")
|
| 158 |
print(f"Response: {response.text}")
|
| 159 |
print(f"URL: {url}")
|
| 160 |
+
print(f"Params: {params}")
|
| 161 |
return create_error_plot(), "<div>모델 데이터를 가져오는데 실패했습니다.</div>", pd.DataFrame()
|
| 162 |
|
| 163 |
all_models = response.json()
|
| 164 |
+
print(f"Total models fetched: {len(all_models)}") # 디버깅용
|
| 165 |
|
| 166 |
+
# 전체 모델의 순위 정보 저장
|
| 167 |
model_ranks = {model['id']: idx + 1 for idx, model in enumerate(all_models)}
|
| 168 |
|
| 169 |
# target_models에 있는 모델만 필터링하고 실제 순위 포함
|
| 170 |
filtered_models = []
|
| 171 |
for model in all_models:
|
| 172 |
if model.get('id', '') in target_models:
|
| 173 |
+
model['rank'] = model_ranks[model['id']]
|
| 174 |
filtered_models.append(model)
|
| 175 |
+
print(f"Found model: {model['id']} at rank {model['rank']}") # 디버깅용
|
| 176 |
|
| 177 |
# 순위로 정렬
|
| 178 |
filtered_models.sort(key=lambda x: x['rank'])
|
| 179 |
|
| 180 |
if not filtered_models:
|
| 181 |
+
print("No matching models found in the response") # 디버깅용
|
| 182 |
return create_error_plot(), "<div>선택된 모델의 데이터를 찾을 수 없습니다.</div>", pd.DataFrame()
|
| 183 |
|
| 184 |
progress(0.3, desc="Creating visualization...")
|
|
|
|
| 329 |
except Exception as e:
|
| 330 |
print(f"Error in get_models_data: {str(e)}")
|
| 331 |
return create_error_plot(), f"<div>에러 발생: {str(e)}</div>", pd.DataFrame()
|
| 332 |
+
|
| 333 |
+
|
| 334 |
+
|
| 335 |
|
| 336 |
# 관심 스페이스 URL 리스트와 정보
|
| 337 |
target_spaces = {
|