alex4cip Claude commited on
Commit
fc890b6
Β·
1 Parent(s): 751b361

feat: Add dynamic model count display

Browse files

Changes:
- Add TOTAL_MODEL_COUNT, PUBLIC_MODEL_COUNT, GATED_MODEL_COUNT variables
- Calculate model counts dynamically from MODEL_CONFIGS
- Replace hardcoded "10κ°€μ§€" with dynamic {TOTAL_MODEL_COUNT}
- Show breakdown: "13κ°€μ§€ λͺ¨λΈ (10 Public + 3 Gated)"

Dynamic Calculation:
- TOTAL_MODEL_COUNT = len(MODEL_CONFIGS)
- PUBLIC_MODEL_COUNT = count models without πŸ”’ icon
- GATED_MODEL_COUNT = TOTAL_MODEL_COUNT - PUBLIC_MODEL_COUNT

Updated Locations:
- Header (ZeroGPU mode): Shows total and breakdown
- Header (CPU Upgrade mode): Shows total and breakdown
- Footer (ZeroGPU mode): Shows total model count
- Footer (CPU Upgrade mode): Shows total model count

Benefits:
- Auto-updates when models are added/removed
- No manual text updates needed
- Prevents outdated information
- Shows clear Public vs Gated distinction

Model Analysis:
- Reviewed suggested models (DialoGPT, GPT-2, Llama-2-Ko, etc.)
- Current list already contains superior alternatives
- No additions needed - current selection optimal

πŸ€– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +13 -8
app.py CHANGED
@@ -33,8 +33,8 @@ if HF_TOKEN:
33
  else:
34
  print("⚠️ HF_TOKEN not found in environment - some models may not be accessible")
35
 
36
- # Model configurations (10 Public + 3 Gated models = 13 total)
37
- # Note: Gated models require HF access approval at https://huggingface.co/[model-name]
38
  MODEL_CONFIGS = [
39
  {
40
  "MODEL_NAME": "LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct",
@@ -137,6 +137,11 @@ loaded_model_name = None # Track which model is currently loaded
137
  model = None
138
  tokenizer = None
139
 
 
 
 
 
 
140
 
141
  def check_model_cached(model_name):
142
  """Check if model is already downloaded in HF cache"""
@@ -348,7 +353,7 @@ with gr.Blocks(title="πŸ€– Multi-Model Chatbot") as demo:
348
 
349
  **νŠΉμ§•**:
350
  - ⚑ GPU κ°€μ†μœΌλ‘œ λΉ λ₯Έ 응닡 (3-5초)
351
- - 🎯 10κ°€μ§€ ν•œκΈ€ μ΅œμ ν™” λͺ¨λΈ 선택 κ°€λŠ₯
352
  - πŸ”„ λͺ¨λΈ μ „ν™˜ μ‹œ μžλ™ μž¬λ‘œλ”©
353
  - πŸ’° PRO ꡬ독 μ‹œ ν•˜λ£¨ 25λΆ„ 무료 μ‚¬μš©
354
  """
@@ -359,7 +364,7 @@ with gr.Blocks(title="πŸ€– Multi-Model Chatbot") as demo:
359
  **ν•˜λ“œμ›¨μ–΄**: CPU Upgrade (8 vCPU / 32 GB RAM)
360
 
361
  **νŠΉμ§•**:
362
- - 🎯 10κ°€μ§€ ν•œκΈ€ μ΅œμ ν™” λͺ¨λΈ 선택 κ°€λŠ₯
363
  - πŸ”„ λͺ¨λΈ μ „ν™˜ μ‹œ μžλ™ μž¬λ‘œλ”©
364
  - ⏳ CPU ν™˜κ²½μ΄λ―€λ‘œ 응닡이 λ‹€μ†Œ λŠλ¦½λ‹ˆλ‹€ (30초~1λΆ„)
365
  - πŸ’° μ‹œκ°„λ‹Ή $0.03 (μ›” μ•½ $22)
@@ -435,10 +440,10 @@ with gr.Blocks(title="πŸ€– Multi-Model Chatbot") as demo:
435
 
436
  # Dynamic footer based on hardware
437
  if ZEROGPU_AVAILABLE:
438
- footer = """
439
  ---
440
  **참고사항 (ZeroGPU λͺ¨λ“œ)**:
441
- - πŸ€– 10κ°€μ§€ λͺ¨λΈ 쀑 선택 κ°€λŠ₯ (λ“œλ‘­λ‹€μš΄μ—μ„œ 선택)
442
  - ⚑ ZeroGPUλŠ” μš”μ²­ μ‹œ μžλ™μœΌλ‘œ GPUλ₯Ό ν• λ‹Ήν•©λ‹ˆλ‹€
443
  - πŸ’° PRO κ΅¬λ…μžλŠ” ν•˜λ£¨ 25λΆ„ 무료 μ‚¬μš©
444
  - πŸ”„ λͺ¨λΈ λ³€κ²½ μ‹œ λŒ€ν™” 내역이 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€
@@ -450,10 +455,10 @@ with gr.Blocks(title="πŸ€– Multi-Model Chatbot") as demo:
450
  - "ν•œκ΅­μ˜ μˆ˜λ„λŠ” μ–΄λ””μΈκ°€μš”?"
451
  """
452
  else:
453
- footer = """
454
  ---
455
  **참고사항 (CPU Upgrade λͺ¨λ“œ)**:
456
- - πŸ€– 10κ°€μ§€ λͺ¨λΈ 쀑 선택 κ°€λŠ₯ (λ“œλ‘­λ‹€μš΄μ—μ„œ 선택)
457
  - πŸ”„ λͺ¨λΈ λ³€κ²½ μ‹œ λŒ€ν™” 내역이 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€
458
  - ⏳ CPU ν™˜κ²½μ΄λ―€λ‘œ 응닡이 λŠλ¦½λ‹ˆλ‹€ (30초~1λΆ„)
459
  - ⏱️ 첫 응닡은 λͺ¨λΈ λ‘œλ”© μ‹œκ°„ 포함 (~1-2λΆ„)
 
33
  else:
34
  print("⚠️ HF_TOKEN not found in environment - some models may not be accessible")
35
 
36
+ # Model configurations
37
+ # Note: Gated models (marked with πŸ”’) require HF access approval at https://huggingface.co/[model-name]
38
  MODEL_CONFIGS = [
39
  {
40
  "MODEL_NAME": "LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct",
 
137
  model = None
138
  tokenizer = None
139
 
140
+ # Dynamic model count
141
+ TOTAL_MODEL_COUNT = len(MODEL_CONFIGS)
142
+ PUBLIC_MODEL_COUNT = sum(1 for cfg in MODEL_CONFIGS if "πŸ”’" not in cfg["MODEL_CONFIG"]["name"])
143
+ GATED_MODEL_COUNT = TOTAL_MODEL_COUNT - PUBLIC_MODEL_COUNT
144
+
145
 
146
  def check_model_cached(model_name):
147
  """Check if model is already downloaded in HF cache"""
 
353
 
354
  **νŠΉμ§•**:
355
  - ⚑ GPU κ°€μ†μœΌλ‘œ λΉ λ₯Έ 응닡 (3-5초)
356
+ - 🎯 {TOTAL_MODEL_COUNT}κ°€μ§€ ν•œκΈ€ μ΅œμ ν™” λͺ¨λΈ 선택 κ°€λŠ₯ ({PUBLIC_MODEL_COUNT} Public + {GATED_MODEL_COUNT} Gated)
357
  - πŸ”„ λͺ¨λΈ μ „ν™˜ μ‹œ μžλ™ μž¬λ‘œλ”©
358
  - πŸ’° PRO ꡬ독 μ‹œ ν•˜λ£¨ 25λΆ„ 무료 μ‚¬μš©
359
  """
 
364
  **ν•˜λ“œμ›¨μ–΄**: CPU Upgrade (8 vCPU / 32 GB RAM)
365
 
366
  **νŠΉμ§•**:
367
+ - 🎯 {TOTAL_MODEL_COUNT}κ°€μ§€ ν•œκΈ€ μ΅œμ ν™” λͺ¨λΈ 선택 κ°€λŠ₯ ({PUBLIC_MODEL_COUNT} Public + {GATED_MODEL_COUNT} Gated)
368
  - πŸ”„ λͺ¨λΈ μ „ν™˜ μ‹œ μžλ™ μž¬λ‘œλ”©
369
  - ⏳ CPU ν™˜κ²½μ΄λ―€λ‘œ 응닡이 λ‹€μ†Œ λŠλ¦½λ‹ˆλ‹€ (30초~1λΆ„)
370
  - πŸ’° μ‹œκ°„λ‹Ή $0.03 (μ›” μ•½ $22)
 
440
 
441
  # Dynamic footer based on hardware
442
  if ZEROGPU_AVAILABLE:
443
+ footer = f"""
444
  ---
445
  **참고사항 (ZeroGPU λͺ¨λ“œ)**:
446
+ - πŸ€– {TOTAL_MODEL_COUNT}κ°€μ§€ λͺ¨λΈ 쀑 선택 κ°€λŠ₯ (λ“œλ‘­λ‹€μš΄μ—μ„œ 선택)
447
  - ⚑ ZeroGPUλŠ” μš”μ²­ μ‹œ μžλ™μœΌλ‘œ GPUλ₯Ό ν• λ‹Ήν•©λ‹ˆλ‹€
448
  - πŸ’° PRO κ΅¬λ…μžλŠ” ν•˜λ£¨ 25λΆ„ 무료 μ‚¬μš©
449
  - πŸ”„ λͺ¨λΈ λ³€κ²½ μ‹œ λŒ€ν™” 내역이 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€
 
455
  - "ν•œκ΅­μ˜ μˆ˜λ„λŠ” μ–΄λ””μΈκ°€μš”?"
456
  """
457
  else:
458
+ footer = f"""
459
  ---
460
  **참고사항 (CPU Upgrade λͺ¨λ“œ)**:
461
+ - πŸ€– {TOTAL_MODEL_COUNT}κ°€μ§€ λͺ¨λΈ 쀑 선택 κ°€λŠ₯ (λ“œλ‘­λ‹€μš΄μ—μ„œ 선택)
462
  - πŸ”„ λͺ¨λΈ λ³€κ²½ μ‹œ λŒ€ν™” 내역이 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€
463
  - ⏳ CPU ν™˜κ²½μ΄λ―€λ‘œ 응닡이 λŠλ¦½λ‹ˆλ‹€ (30초~1λΆ„)
464
  - ⏱️ 첫 응닡은 λͺ¨λΈ λ‘œλ”© μ‹œκ°„ 포함 (~1-2λΆ„)