File size: 9,212 Bytes
090da2d
 
 
 
 
7dfd27c
 
090da2d
93fde69
 
 
 
 
 
9b09499
 
 
 
 
090da2d
93fde69
090da2d
93fde69
 
8ba08e1
 
93fde69
 
 
 
15066dc
93fde69
64e0cf8
 
 
 
 
 
 
 
 
 
 
 
 
 
93fde69
090da2d
93fde69
15066dc
 
 
64e0cf8
 
 
 
 
15066dc
 
 
44a9311
93fde69
64e0cf8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44a9311
9b09499
44a9311
9b09499
 
 
8ba08e1
 
090da2d
44a9311
 
090da2d
44a9311
9b09499
090da2d
93fde69
9b09499
 
93fde69
 
 
 
9b09499
93fde69
 
 
 
 
9b09499
 
93fde69
64e0cf8
785f934
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
090da2d
 
 
64e0cf8
 
 
 
 
 
 
 
391439f
 
 
 
3ac4bcb
64e0cf8
 
93fde69
090da2d
9b09499
0920eea
44a9311
0920eea
 
785f934
 
 
 
 
 
 
 
0920eea
44a9311
93fde69
 
 
 
 
 
090da2d
aef10f2
64e0cf8
aef10f2
 
 
 
 
7dfd27c
 
aef10f2
 
 
 
 
 
 
 
a551b8e
7dfd27c
aef10f2
 
 
 
ea42f91
165ff49
aef10f2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
090da2d
 
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hugging Face Network by Bunka</title>

    <style>
        :root {
            --primary-color: #4a4a4a;
            --secondary-color: #6c757d;
            --background-color: #f8f9fa;
            --hover-color: #007bff;
        }
        html, body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        body {
            font-family: 'Arial', sans-serif;
            line-height: 1.6;
            color: var(--primary-color);
            background-color: var(--background-color);
            display: flex;
            flex-direction: column;
        }
        header {
            background-color: white;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            padding: 15px 0;
            text-align: center;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .logo-container {
            padding-left: 20px;
        }
        .logo {
            max-width: 100px;
            height: auto;
        }
        .title-container {
            flex-grow: 1;
            text-align: center;
        }
        h1 {
            color: var(--primary-color);
            margin: 0 0 10px 0;
            font-size: 1.8em;
        }
        .subtitle-container {
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .subtitle {
            font-size: 1em;
            color: var(--secondary-color);
            margin: 0;
        }
        .help-icon {
            margin-left: 10px;
            cursor: help;
            position: relative;
        }
        .help-icon:hover::after {
            content: attr(data-tooltip);
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            background-color: #333;
            color: white;
            padding: 10px;
            border-radius: 5px;
            width: 300px;
            z-index: 1;
            font-size: 0.9em;
            line-height: 1.4;
            text-align: left;
        }
        .graph-container {
            flex-grow: 1;
            width: 100%;
            display: flex;
        }
        iframe {
            flex-grow: 1;
            border: none;
        }
        footer {
            background-color: var(--secondary-color);
            color: white;
            text-align: center;
            padding: 10px 0;
        }
        .social-links {
            display: inline-block;
            vertical-align: middle;
        }
        .social-links a {
            opacity: 0.7;
            transition: opacity 0.3s ease;
            margin: 0 5px;
        }
        .social-links a:hover {
            opacity: 1;
        }
        .social-links img {
            width: 20px;
            height: 20px;
        }
        .pagination {
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 15px 0;
            background-color: white;
            box-shadow: 0 -2px 4px rgba(0,0,0,0.1);
        }
        .pagination button {
            background-color: transparent;
            border: none;
            color: var(--secondary-color);
            font-size: 16px;
            padding: 5px 10px;
            margin: 0 5px;
            cursor: pointer;
            transition: color 0.3s ease;
        }
        .pagination button:hover {
            color: var(--hover-color);
        }
        .pagination button.active {
            color: var(--primary-color);
            font-weight: bold;
        }
        .pagination .page-numbers {
            display: flex;
            align-items: center;
        }
        .pagination .divider {
            width: 1px;
            height: 20px;
            background-color: var(--secondary-color);
            margin: 0 10px;
        }
    </style>
</head>
<body>
    <header>
        <div class="logo-container">
            <img src="https://huggingface.co/spaces/bunkalab/README/raw/main/bunka_logo.png" alt="Bunka Logo" class="logo">
        </div>
        <div class="title-container">
            <h1 id="main-title">Open Source AI Network - Mapping the top 500 HF users</h1>
            <div class="subtitle-container">
                <p id="subtitle" class="subtitle">Two users are closer if they are followed by the same people.</p>
                <span class="help-icon" data-tooltip="• We collected and analyzed data about 895,007 models and 204,371 datasets
                  • We filtered those into 14,620 content providers
                  • 2,615 organizations (not users) were filtered, associated with 15,611 most relevant users
                  • We then used the Force Atlas and Leiden algorithm to create this network.
                  Package by github.com/medialab/ipysigma"></span>
            </div>
        </div>
    </header>
    
    <div class="graph-container">
        <iframe id="graph-frame" src="co_user.html" width="100%" height="100%" frameborder="0"></iframe>
    </div>

    <div class="pagination">
        <button id="prev">&lt;</button>
        <div class="page-numbers">
            <button id="page1" class="active">1</button>
            <div class="divider"></div>
            <button id="page2">2</button>
        </div>
        <button id="next">&gt;</button>
    </div>

    <footer>
        <div class="social-links">
            <a href="https://github.com/charlesdedampierre/BunkaTopics" target="_blank"><img src="https://qtyhiurxoicqmxzpktkd.supabase.co/storage/v1/object/sign/email-content/github-logo.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJlbWFpbC1jb250ZW50L2dpdGh1Yi1sb2dvLnBuZyIsImlhdCI6MTcyNDgzOTk3NywiZXhwIjoxNzg3OTExOTc3fQ.qPEnoJOVqTkWdquVPkMWZFYHv29q8pb5mbcVBGFZWTU&t=2024-08-28T10%3A12%3A58.108Z" alt="GitHub"></a>
            <a href="https://huggingface.co/bunkalab" target="_blank"><img src="https://qtyhiurxoicqmxzpktkd.supabase.co/storage/v1/object/sign/email-content/hugging%20face.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJlbWFpbC1jb250ZW50L2h1Z2dpbmcgZmFjZS5wbmciLCJpYXQiOjE3MjQ4Mzk4NDAsImV4cCI6MTc4NzkxMTg0MH0.6gOtEK2BXc3kSL3PIswY0LJyvp790580Jm6vxztiFhw&t=2024-08-28T10%3A10%3A40.145Z" alt="Hugging Face"></a>
            <a href="https://www.linkedin.com/company/85881815" target="_blank"><img src="https://qtyhiurxoicqmxzpktkd.supabase.co/storage/v1/object/sign/email-content/LinkedIn_logo_initials.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJlbWFpbC1jb250ZW50L0xpbmtlZEluX2xvZ29faW5pdGlhbHMucG5nIiwiaWF0IjoxNzI0ODQwMDQ1LCJleHAiOjE3ODc5MTIwNDV9.9d6MAK3x9LOmsYyB8KyGk5PPFGkPNoGjsW7wdxiZt3M&t=2024-08-28T10%3A14%3A05.996Z" alt="LinkedIn"></a>
            <a href="https://discord.gg/3YRPVqXabQ" target="_blank"><img src="https://qtyhiurxoicqmxzpktkd.supabase.co/storage/v1/object/sign/email-content/discord.png?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJlbWFpbC1jb250ZW50L2Rpc2NvcmQucG5nIiwiaWF0IjoxNzI0ODM5ODc4LCJleHAiOjE3ODc5MTE4Nzh9.w1Ggb_Nh1UnjKeVujp_7ljAW0ZSP3ETNkYJLKuBZ_Zo&t=2024-08-28T10%3A11%3A18.993Z" alt="Discord"></a>
        </div>
    </footer>

    <script>
        const graphFrame = document.getElementById('graph-frame');
        const prev = document.getElementById('prev');
        const next = document.getElementById('next');
        const page1 = document.getElementById('page1');
        const page2 = document.getElementById('page2');
        const mainTitle = document.getElementById('main-title');
        const subtitle = document.getElementById('subtitle');

        let currentPage = 1;

        function updateGraph() {
            if (currentPage === 1) {
                graphFrame.src = 'co_user.html';
                page1.classList.add('active');
                page2.classList.remove('active');
                mainTitle.textContent = 'Open Source AI Network - Mapping the top 500 HF users';
                subtitle.textContent = 'Two users are closer if they are followed by the same people.';
            } else {
                graphFrame.src = 'co_organization.html';
                page2.classList.add('active');
                page1.classList.remove('active');
                mainTitle.textContent = 'Open Source AI Network - Mapping dataset/model producing organizations';
                subtitle.textContent = 'Two organizations are closer if their members have common followers.';
            }
        }

        prev.addEventListener('click', () => {
            if (currentPage > 1) {
                currentPage--;
                updateGraph();
            }
        });

        next.addEventListener('click', () => {
            if (currentPage < 2) {
                currentPage++;
                updateGraph();
            }
        });

        page1.addEventListener('click', () => {
            currentPage = 1;
            updateGraph();
        });

        page2.addEventListener('click', () => {
            currentPage = 2;
            updateGraph();
        });
    </script>
</body>
</html>