File size: 10,605 Bytes
8041d67
4f2be76
4e1c32a
cb65975
 
1c65013
 
09a7d59
1223c0d
1c65013
4e1c32a
4f2be76
d870b92
2877b2d
67c9619
 
 
 
 
7cec7f1
906c08e
7cec7f1
09a7d59
 
92f15ad
67c9619
 
8b8facf
5b51aa1
 
8b8facf
8f3e12c
5b51aa1
 
 
 
 
 
8f3e12c
d3f4fff
bbceb50
aaf56de
70c6b3e
aaf56de
 
bbceb50
4724fdb
bbceb50
2f1fe17
8f3e12c
 
 
 
871ce58
9a6c24a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
01b6321
9a6c24a
 
 
 
 
 
 
 
 
 
 
e69f255
9a6c24a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2f1fe17
9a6c24a
 
 
 
 
 
 
6c5d10a
 
 
 
 
 
 
703aa27
 
67c9619
b7f3af4
09a7d59
 
b7f3af4
09a7d59
92f15ad
1c65013
 
 
 
2c783de
67c9619
b262257
67c9619
b262257
67c9619
db7d3b2
b262257
67c9619
09a7d59
4e1c32a
67c9619
09a7d59
b262257
2877b2d
67c9619
 
 
 
 
46a61fe
09a7d59
2c783de
6f3d99c
2c783de
09a7d59
cb65975
2c783de
 
 
 
 
 
 
 
 
 
03fea9e
2c783de
09a7d59
 
2c783de
 
6705a11
d870b92
2c783de
7cec7f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
import gradio as gr
import requests
import logging
import threading
import time

from pydantic import BaseModel, ConfigDict
from typing import Any


logging.basicConfig(level=logging.INFO)

css = """
footer { visibility: hidden; }
.status-button { 
    display: inline-block;
    padding: 5px 10px;
    margin: 5px;
    border-radius: 5px;
    font-size: 12px;
    color: black; /* ๊ธ€์ž ์ƒ‰์ƒ์„ ๊ฒ€์€์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ */
}
.status-normal { background-color: #90EE90; }
.status-abnormal { background-color: #FFA07A; }
"""
# ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ๋ชฉ๋ก
TARGETS = [
    {"name": "[MON]๊ด€๋ฆฌ-HOME", "url": "https://seawolf2357-bnews1.hf.space"},  
    {"name": "[MON]๊ด€๋ฆฌ-H100 LIST", "url": "https://seawolf2357-bnews2.hf.space"},  
    {"name": "[MON]๊ด€๋ฆฌ-MONITOR Origin", "url": "https://seawolf2357-bnews3.hf.space"}, 
#    {"name": "[MON]AI Playgroud ๋ฉ”๋‰ด", "url": "https://aiqtech-ofai-stream-menu-backup.hf.space"},  
    
    {"name": "[MON]ํƒ€์ด๋จธ1-1 ", "url": "https://seawolf2357-timer.hf.space"},     
    {"name": "[MON]ํƒ€์ด๋จธ1-2 ", "url": "https://seawolf2357-timer2.hf.space"},     
    {"name": "[MON]ํƒ€์ด๋จธ1-3 ", "url": "https://seawolf2357-timer3.hf.space"},     
    {"name": "[MON]ํƒ€์ด๋จธ1-4 ", "url": "https://seawolf2357-timer4.hf.space"},     
    {"name": "[MON]ํƒ€์ด๋จธ2-1 ", "url": "https://fantaxy-timer1.hf.space"},       
    {"name": "[MON]ํƒ€์ด๋จธ2-2 ", "url": "https://fantaxy-timer2.hf.space"},      
    
    {"name": "[H100]AI ๊ฐœ์ธ๋น„์„œ JinJAVIS", "url": "http://hugpu.ai:8000"},
    {"name": "[H100]์•„๋ฐ”ํƒ€ ์ŠคํŠœ๋””์˜ค ํ”Œ๋žซํผ ", "url": "http://hugpu.ai:7899"},  
    {"name": "[H100]์ˆํผ ์ŠคํŠœ๋””์˜ค ํ”Œ๋žซ", "url": "http://211.233.58.202:7960"},    
    {"name": "[H100]ํ†ตํ•ฉ Medim ๋ธ”๋กœ๊ทธ ์‹œ์Šคํ…œ ", "url": "http://hugpu.ai:7917"},  
    {"name": "[H100]์ดˆ๊ณ ์†/ํ…์ŠคํŠธ ๋ฐ˜์˜ ๋กœ๊ณ  ์ƒ์„ฑ", "url": "http://hugpu.ai:7897"},
    {"name": "[H100]์‚ฌ์ง„+์Œ์„ฑ to ๋งํ•˜๋Š” ์˜์ƒ", "url": "http://hugpu.ai:7895"},
    {"name": "[H100]I+T2I ์บ๋ฆญํ„ฐ ํ”„๋กœํ•„", "url": "http://hugpu.ai:7889"},
    {"name": "[H100]๋ชจ์…˜ ๋”ฐ๋ผํ•˜๊ธฐ", "url": "http://hugpu.ai:7894"},  
    {"name": "[H100]์•Œ๋ฆฌ๋ฐ”๋ฐ” 'AnyText'", "url": "http://hugpu.ai:7913"},
    
    {"name": "[@ H100]๋ฉ”ํƒ€ ์Šค๋ ˆ๋“œ AUTO", "url": "http://hugpu.ai:7915"},     
    {"name": "[@ H100]ํŒจ์…˜", "url": "http://hugpu.ai:7896"},      
    {"name": "[@ H100]Image + Text to Image(IP-ADAPT)", "url": "http://hugpu.ai:7890"},
    {"name": "[@ H100]FaceFusion", "url": "http://hugpu.ai:7880"}, 

    {"name": "[OFAI]FLUX ํ™•์žฅ ์ด๋ฏธ์ง€ ์ƒ์„ฑ", "url": "https://fantaxy-ofai-flx-expl-store.hf.space"},
    {"name": "[OFAI]FLUX GIF ์ƒ์„ฑ", "url": "https://aiqtech-flxgif.hf.space"},     
    {"name": "[OFAILOGO ๋””์ž์ธ ์ƒ์„ฑ ", "url": "https://fantaxy-ofai-flx-logo.hf.space"},     
    {"name": "[OFAI]FLUX ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ ", "url": "https://ginipick-flux-prompt-generator.hf.space"},     
    {"name": "[OFAI]LoRA: ๊ธฐ๋ธ”๋ฆฌ ์Šคํƒ€์ผ ", "url": "https://aiqtech-flux-ghibli-studio-lora.hf.space"},  
    {"name": "[OFAI]LoRA: ์นดํˆฐ ์Šคํƒ€์ผ ", "url": "https://aiqtech-flxani.hf.space"},     
    {"name": "[OFAI]FLUX 8step LoRA ์ด๋ฏธ์ง€ ์ƒ์„ฑ ", "url": "https://fantos-flx8lora.hf.space"},     
    {"name": "[OFAI]FLUX ํ…์ŠคํŠธ TO ๋น„๋””์˜ค ์ƒ์„ฑ ", "url": "https://fantos-cogvidx.hf.space"},     
    {"name": "[OFAI]FLUX ํŒจ์…˜๋ชจ๋ธ ์ƒ์„ฑ ", "url": "https://fantos-flxfashmodel.hf.space"},     
    {"name": "[OFAI]FLUX Controlnet ", "url": "https://fantos-flxcontrol.hf.space"},  
    {"name": "[OFAI]FLUX NF4 ์ด๋ฏธ์ง€ ์ƒ์„ฑ ", "url": "https://ginipick-ofai-flxnf4.hf.space"},     

    {"name": "[OFAI]FLUX LoRA ์ŠคํŠœ๋””์˜ค #1๋ฒˆ ์„œ๋ฒ„ ", "url": "https://seawolf2357-flxloraexp.hf.space"},     
    {"name": "[OFAI]FLUX LoRA ์ŠคํŠœ๋””์˜ค #2๋ฒˆ ์„œ๋ฒ„ ", "url": "https://fantaxy-flxloraexp.hf.space"},     
    {"name": "[OFAI]FLUX LoRA ์ŠคํŠœ๋””์˜ค #3๋ฒˆ ์„œ๋ฒ„ ", "url": "https://fantos-flxloraexp.hf.space"},                                                   
    {"name": "[OFAI]FLUX LoRA ์ŠคํŠœ๋””์˜ค #4๋ฒˆ ์„œ๋ฒ„", "url": "https://ginipick-flxloraexp.hf.space"},  
    
    {"name": "[OFAI]์ด๋ฏธ์ง€์™€ ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋กœ ์˜์ƒ ์ƒ์„ฑ I ", "url": "https://fantaxy-ofai-it2v2.hf.space"},     
    {"name": "[OFAI]์ด๋ฏธ์ง€์™€ ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋กœ ์˜์ƒ ์ƒ์„ฑ II ", "url": "https://aiqtech-cinevid.hf.space"},     
    {"name": "[OFAI]์ด๋ฏธ์ง€์™€ ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋กœ ์ด๋ฏธ์ง€ ๋ณ€ํ˜•", "url": "https://fantos-kolcontrl.hf.space"},     
    {"name": "[OFAI]์ƒํ’ˆ ์‚ฌ์ง„ ์—…๋กœ๋“œ+ํ”„๋กฌํ”„ํŠธ๋กœ ๋ฐฐ๊ฒฝ์„ ํ•ฉ์„ฑ ", "url": "https://aiqtech-producbrmg.hf.space"},     
    {"name": "[OFAI]ํ…์ŠคํŠธ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ: Accracy ๋ชจ๋ธ ", "url": "https://ginipick-accdiffusion.hf.space"},      
    {"name": "[OFAI]ํ…์ŠคํŠธ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ: Playground ๋ชจ๋ธ ", "url": "https://fantaxy-playground25.hf.space"},     
    {"name": "[OFAI]ํ…์ŠคํŠธ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ: AuraFlow ๋ชจ๋ธ ", "url": "https://fantaxy-auroflow-v3.hf.space"},     
    {"name": "[OFAI]EveryText: ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์— ๋ฐ˜์˜ ", "url": "https://fantos-EveryText.hf.space"},     
    {"name": "[OFAI]๋‚ด ์–ผ๊ตด ์‚ฌ์ง„์œผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ I", "url": "https://aiqtech-kofaceid.hf.space"},     
    {"name": "[OFAI]๋‚ด ์–ผ๊ตด ์‚ฌ์ง„์œผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ II", "url": "https://aiqtech-sdfacid.hf.space"},     
    {"name": "[OFAI]๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ REALVISXL V5", "url": "https://seawolf2357-REALVISXL-V5.hf.space"},     
                                                                                               
    {"name": "[OFAI]ํ…์ŠคํŠธ๋กœ ๊ฐ์ฒด๋งŒ ์ž˜๋ผ๋‚ด๊ณ  ๋ฐฐ๊ฒฝ ํˆฌ๋ช…ํ™”", "url": "https://fantos-textcutobject.hf.space"},  
    {"name": "[OFAI]๋น„๋””์˜ค ์ธ์‹ QnA ์ฑ—๋ด‡ ", "url": "https://ginipick-vidiqa.hf.space"},  
    {"name": "[OFAI]์ด๋ฏธ์ง€ ์Šค์ผ€์ผ์—…(ํ™”์งˆ๊ฐœ์„ ) ", "url": "https://ginipick-finegrain-image-enhancer.hf.space"},     
    {"name": "[OFAI]์ด๋ฏธ์ง€ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ ", "url": "https://ginipick-background-removal.hf.space"},     
    {"name": "[OFAI]๋น„๋””์˜ค ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ ", "url": "https://fantaxy-remove-video-background.hf.space"},     
    {"name": "[OFAI]ํ…์ŠคํŠธ ์ž…๋ ฅ์œผ๋กœ ์Œ์•… ์ƒ์„ฑ ", "url": "https://fantaxy-stable-audio-open-zero.hf.space"},  


    {"name": "[OFAI]ํ•œ๊ตญ์–ด ์„œ์น˜-VLM", "url": "https://fantos-jinjavis.hf.space"},      
    {"name": "[OFAI]MS PHI 3.5 Vision ", "url": "https://aiqtech-phi35-vision.hf.space"},  
    {"name": "[OFAI]NSFW kAI ", "url": "https://fantaxy-ofai-kai.hf.space"},     
    {"name": "[OFAI]๋ฉ”ํƒ€ LLAMA 3.1 405B ", "url": "https://seawolf2357-ofai-405.hf.space"},     
    {"name": "[OFAI]๋ฉ”ํƒ€ LLAMA 3.1 70B ", "url": "https://fantaxy-ofai-70.hf.space"},     
    {"name": "[OFAI]๋ฉ”ํƒ€ LLAMA 3.1 8B ", "url": "https://seawolf2357-ofai-8.hf.space"},     
    {"name": "[OFAI]๋ฏธ์ŠคํŠธ๋ž„ 7B Instruct v0.3 ", "url": "https://fantaxy-ofai-mis7b.hf.space"},  
    {"name": "[OFAI]MS Phi 3 mini 4k-instruct ", "url": "https://fantaxy-ofai-phi.hf.space"},     
    {"name": "[OFAI]์ค‘๊ตญ Yi 1.5 34B ", "url": "https://fantaxy-ofai-yi.hf.space"},     
    {"name": "[OFAI]๋ฏธ์ŠคํŠธ๋ž„ Mixtral 8X7B ", "url": "https://fantaxy-ofai-8x7b.hf.space"},     
    {"name": "[OFAI]๋ฏธ์ŠคํŠธ๋ž„ Nemo Instruct 2407 ", "url": "https://seawolf2357-ofai-mistral-nemo.hf.space"},  
    
    {"name": "[OFAI]๋ธ”๋กœ๊ทธ ์ž๋™(์ปจํŽŒ/๋‹จ์ˆ˜) ์ƒ์„ฑ ", "url": "https://fantaxy-blogger-send-webhook-confirm-image.hf.space"},  
    {"name": "[OFAI]๋ธ”๋กœ๊ทธ ์ž๋™(๋ฌด์ธ/๋ณต์ˆ˜) ์ƒ์„ฑ ", "url": "https://fantaxy-blogger-send-webhook-auto-image.hf.space"},    
    
    {"name": "[OFAI]์ „๋ฌธ ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog.hf.space"},     
    {"name": "[OFAI]์˜ํ•™ ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog-medi.hf.space"},     
    {"name": "[OFAI]์•ฝ๋ฆฌํ•™ ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ ", "url": "https://seawolf2357-ofai-jinjavis-blog-pharm.hf.space"},  
    
    {"name": "[T+I2I] ๋‚ด ์–ผ๊ตด ์‚ฌ์ง„์œผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ III ", "url": "https://fantaxy-flx-pulid.hf.space"}, 
    {"name": "[T2I] FLUX GIF ์ƒ์„ฑ II ", "url": "https://fantaxy-flux-gif-animations-2.hf.space"}, 
    {"name": "FLUX ์ด๋ฏธ์ง€์ƒ์„ฑ ํƒ€์ž„๋จธ์‹  ", "url": "https://ginipick-flx-timemach.hf.space"}, 
    {"name": "FLUX ์‹ค์‹œ๊ฐ„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ", "url": "https://ginipick-Realtime-FLUX.hf.space"}, 
    {"name": "๋‚ด ์‚ฌ์ง„์œผ๋กœ ์˜ท ๊ฐˆ์•„์ž…ํžˆ๊ธฐ ", "url": "https://aiqcamp-fash2.hf.space"}, 
    {"name": "์ด๋ฏธ์ง€ ์ธ์‹์œผ๋กœ FLUX ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ ", "url": "https://aiqcamp-flxcaptin.hf.space"}, 
    {"name": "์Œ์„ฑ ๋ณต์ œํ•˜๊ณ  ํ…์ŠคํŠธ๋กœ ์Œ์„ฑ ์ƒ์„ฑ ", "url": "https://aiqcamp-kovoicclon.hf.space"}, 

    {"name": "์ด๋ฏธ์ง€ ๋งˆ์Šคํ‚น+ํ”„๋กฌํ”„ํŠธ๋กœ ์ด๋ฏธ์ง€ ๋ณ€ํ˜•", "url": "https://aiqtech-imaginpaint.hf.space"},     
]



class MyModel(BaseModel):
    request: Any

    model_config = ConfigDict(arbitrary_types_allowed=True)




def check_url_status(url):
    try:
        response = requests.get(url, timeout=5)
        if response.status_code == 200:
            logging.info(f"URL ์ ‘์† ์„ฑ๊ณต: {url}")
            return "์ •์ƒ", "normal"
        else:
            logging.error(f"URL ์ ‘์† ์˜ค๋ฅ˜: {url}, ์ƒํƒœ ์ฝ”๋“œ {response.status_code}")
            return f"๋น„์ •์ƒ (์ฝ”๋“œ: {response.status_code})", "abnormal"
    except requests.exceptions.RequestException as e:
        logging.exception(f"์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: {url}")
        return "์—ฐ๊ฒฐ ๋ถˆ๊ฐ€", "abnormal"

def update_status():
    status_html = ""
    for target in TARGETS:
        status, status_class = check_url_status(target["url"])
        status_html += f'<span class="status-button status-{status_class}">{target["name"]}: {status}</span>'
    return status_html

def periodic_update():
    while True:
        time.sleep(60)  # 60์ดˆ ๋Œ€๊ธฐ
        new_status = update_status()
        gr.update(value=new_status)

def create_dashboard():
    with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as app:
        gr.Image("banner.png", show_label=False)
        gr.Markdown("# 24์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ")
        gr.Markdown("## \n")
        
        status_html = gr.HTML()
        
        refresh_button = gr.Button("์ƒํƒœ ์ƒˆ๋กœ๊ณ ์นจ")
        refresh_button.click(fn=update_status, outputs=status_html)

        app.load(fn=update_status, outputs=status_html)
        
        threading.Thread(target=periodic_update, daemon=True).start()
    
    return app

if __name__ == "__main__":
    dashboard = create_dashboard()
    dashboard.launch()