File size: 8,863 Bytes
84c79bf
734b127
 
075a2b3
734b127
 
 
 
 
84c79bf
0cb962d
84c79bf
0cb962d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84c79bf
 
075a2b3
84c79bf
0cb962d
 
075a2b3
0cb962d
84c79bf
075a2b3
 
0cb962d
 
 
 
 
 
 
 
 
84c79bf
 
 
0cb962d
84c79bf
0cb962d
 
 
 
 
 
 
84c79bf
 
 
075a2b3
84c79bf
 
075a2b3
 
84c79bf
 
 
 
075a2b3
 
 
 
84c79bf
 
 
 
 
075a2b3
 
 
 
84c79bf
 
075a2b3
 
 
84c79bf
 
0cb962d
 
 
 
 
 
84c79bf
 
 
075a2b3
 
84c79bf
 
 
 
0cb962d
 
 
84c79bf
 
 
 
 
0cb962d
 
84c79bf
 
 
075a2b3
 
84c79bf
 
075a2b3
 
 
0cb962d
 
075a2b3
 
 
84c79bf
 
0cb962d
 
 
84c79bf
 
 
075a2b3
84c79bf
 
075a2b3
 
 
0cb962d
84c79bf
 
 
 
075a2b3
84c79bf
 
2f50db4
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
import gradio as gr
import spaces

# Initialisation du conteneur ZeroGPU
@spaces.GPU
def init_gpu():
    return True

init_gpu()

# Style CSS personnalisé (Glassmorphism ultra-lisible et responsive)
custom_css = """
.hero-card {
    background: linear-gradient(135deg, #1e293b, #0f172a) !important;
    border: 1px solid #334155 !important;
    border-radius: 16px !important;
    padding: 24px !important;
    color: #f8fafc !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3) !important;
    margin-bottom: 20px !important;
}
.hero-title {
    font-size: 2.2rem;
    font-weight: 800;
    background: linear-gradient(90deg, #38bdf8, #818cf8);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 6px;
}
.hero-sub {
    font-size: 1.1rem;
    font-weight: 600;
    color: #cbd5e1;
    margin-bottom: 14px;
}
.badge-container {
    margin-bottom: 12px;
}
.badge {
    display: inline-block;
    background: rgba(56, 189, 248, 0.15);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.4);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    margin-right: 6px;
    margin-bottom: 6px;
}
.contact-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 16px;
    color: #e2e8f0;
}
.contact-card h3 {
    margin-top: 0;
    color: #38bdf8;
}
.contact-card p {
    margin: 8px 0;
    font-size: 14px;
}
.contact-card a {
    color: #38bdf8;
    text-decoration: underline;
}
.quote-box {
    border-left: 4px solid #38bdf8;
    background: rgba(15, 23, 42, 0.6);
    padding: 12px 16px;
    border-radius: 0 8px 8px 0;
    color: #94a3b8;
    font-style: italic;
    margin-top: 10px;
}
"""

with gr.Blocks(title="Portfolio & Carte de Visite - Hoby Tahiry") as demo:
    
    # En-tête / Carte de Visite (Glassmorphism Sombre Ultra-Lisible)
    with gr.Row(elem_classes=["hero-card"]):
        with gr.Column(scale=2):
            gr.HTML(
                """
                <div class="hero-title">RANDRIANARISOA Hoby Tahiry</div>
                <div class="hero-sub">Développeur d'Applications | Spécialiste Fine-Tuning IA & Workflows n8n</div>
                <div class="badge-container">
                    <span class="badge">🎓 42 Antananarivo</span>
                    <span class="badge">📐 Mathématiques Fondamentales</span>
                    <span class="badge">🧠 Fine-Tuning IA</span>
                    <span class="badge">⚡ Expert n8n</span>
                </div>
                <div class="quote-box">
                    "Formé aux exigences de l'École 42 et fort d'un parcours en mathématiques fondamentales, je me spécialise dans l'adaptation et le réglage fin (fine-tuning) de modèles d'IA, le développement logiciel robuste C/C++ / Python, et l'architecture d'automatisations complexes via n8n."
                </div>
                """
            )
        with gr.Column(scale=1):
            gr.HTML(
                """
                <div class="contact-card">
                    <h3>📬 Contacts & Réseaux</h3>
                    <p>📍 <b>Localisation :</b> Manjakaray, Antananarivo 101</p>
                    <p>📧 <b>Email :</b> <a href="mailto:randrianarisoa.hoby.pro@gmail.com">randrianarisoa.hoby.pro@gmail.com</a></p>
                    <p>📞 <b>Téléphone :</b> 034 74 373 11 / 033 74 373 11</p>
                    <p>🐙 <b>GitHub :</b> <a href="https://github.com/Orhtrhto" target="_blank">github.com/Orhtrhto</a></p>
                </div>
                """
            )

    # Contenu Onglets
    with gr.Tabs():
        
        # Onglet 1: Spécialités IA & Automatisations
        with gr.TabItem("🤖 IA & Automatisations (n8n)"):
            with gr.Row():
                with gr.Column():
                    gr.Markdown(
                        """
                        ### 🎯 Adaptation & Fine-Tuning de Modèles IA
                        * **Fine-Tuning & Quantization :** Entraînement spécialisé et optimisation de modèles de langage (LLM), Speech-to-Text et Vision.
                        * **Traitement & Saisie de Données :** Création de jeux de données ciblés, pipelines d'évaluation et alignement de modèles.
                        * **Intégration d'IA Applicative :** Déploiement et intégration d'API d'inférence avancées au cœur de systèmes existants.
                        """
                    )
                with gr.Column():
                    gr.Markdown(
                        """
                        ### ⚡ Expertise Automatisation n8n
                        * **Workflows Complexes :** Conception de scénarios d'automatisation multi-services, gestion d'erreurs et webhooks.
                        * **Traitement de Documents :** Extraction, transformation et routage de données automatisés via IA + n8n.
                        * **Intégration API :** Interconnexion fluide entre bases de données, backends et services tiers.
                        """
                    )

        # Onglet 2: Distinctions & Hackathons
        with gr.TabItem("🏆 Hackathons & Distinctions"):
            gr.Markdown(
                """
                * ❤️ **Coup de cœur du jury** – Stupid Hackathon 2025 (Code Talent)
                  * *Projet web éco-humoristique distingué pour sa créativité, son design et son expérience utilisateur.*
                * 🥉 **3ᵉ place – Hackathon AgreTech FIA** (Projet VOLEO)
                  * *Plateforme AgTech d'analyse intelligente du sol et du climat par IA, avec recommandation de cultures.*
                * 🏅 **Finaliste à CCI Ivato** – Hackathon Agretec Ministère de l'Agriculture (Projet VOLEO)
                * 🥈 **2ᵉ place nationale interuniversitaire** – Orange Digital Center Codingame Madagascar 2025
                """
            )

        # Onglet 3: Projets 42 & Logiciels
        with gr.TabItem("🚀 Projets Système & Web"):
            with gr.Row():
                with gr.Column():
                    gr.Markdown(
                        """
                        ### 🎓 Projets École 42 Antananarivo
                        * **ft_transcendence** *(Python/Django)* : Jeu 2D multijoueur temps réel (bots IA, collisions, WebSockets).
                        * **ft_irc** *(C++)* : Serveur de chat réseau conforme au protocole IRC (sockets, communication concurrente).
                        """
                    )
                with gr.Column():
                    gr.Markdown(
                        """
                        * **Inception** *(Docker)* : Infrastructure microservices conteneurisée et déployée sous Docker.
                        * **Minishell** *(C)* : Interpréteur de commandes UNIX (gestion des processus, parsing, mémoire).
                        """
                    )

        # Onglet 4: Parcours & Compétences
        with gr.TabItem("💼 Parcours & Compétences"):
            with gr.Row():
                with gr.Column():
                    gr.Markdown("### 💼 Expériences Professionnelles")
                    gr.Markdown(
                        """
                        * **2026 :** Stage - Développeur IA chez *CONNECTEO*
                        * **2022 - 2024 :** Professeur particulier (Mathématiques & Physique)
                        """
                    )
                    gr.Markdown("### 🎓 Formations & Diplômes")
                    gr.Markdown(
                        """
                        * **42 Antananarivo :** Cursus Développement (Tronc commun & Pro Piscine AI/ML)
                        * **Université d'Antananarivo / Fianarantsoa :** Licence 3 en Mathématiques Fondamentales
                        * **Certifications :** Automatisation n8n (KODATA), Library Pandas, Odoo, Flutter (ODC), Éducation financière (Axian University)
                        """
                    )
                with gr.Column():
                    gr.Markdown("### 🛠 Stack Technique")
                    gr.Markdown(
                        """
                        * **IA & Data :** Fine-tuning LLM/IA, Python, Pandas, PyTorch / Hugging Face.
                        * **Langages Système & Backend :** C, C++, Python (FastAPI/Django).
                        * **Automation & DevOps :** n8n, Docker, Git/GitHub, Linux.
                        * **Soft Skills :** Rigueur analytique, leadership, adaptabilité, résolution de problèmes complexes.
                        """
                    )

    gr.Markdown("---")
    gr.Markdown("<center><i>Carte de Visite & Portfolio hébergés sur Hugging Face Spaces</i></center>")

if __name__ == "__main__":
    demo.launch(theme=gr.themes.Soft(), css=custom_css)