File size: 11,913 Bytes
0069bec
f6eabe2
 
10eced6
 
 
 
 
 
f6eabe2
 
 
 
 
 
 
 
 
70b286a
f6eabe2
 
e5ca09b
 
 
 
70b286a
 
e5ca09b
 
 
70b286a
 
e5ca09b
 
 
 
70b286a
 
e5ca09b
 
 
70b286a
 
e5ca09b
 
 
f6eabe2
3daa070
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f6eabe2
 
 
10eced6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f6eabe2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9fa60ba
 
f3e8c35
f6eabe2
 
 
 
 
 
 
 
 
f3e8c35
 
f6eabe2
 
 
f3e8c35
 
 
f6eabe2
 
 
 
 
 
 
 
 
97d11c4
4ab7ef9
 
 
 
 
f6eabe2
 
 
 
 
 
 
 
 
 
97d11c4
f6eabe2
 
 
 
 
 
 
97d11c4
f6eabe2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0069bec
f6eabe2
0069bec
f6eabe2
 
 
 
 
0069bec
f6eabe2
0069bec
f6eabe2
 
0069bec
f6eabe2
0069bec
f6eabe2
 
 
 
 
0069bec
f6eabe2
 
 
 
 
0069bec
f6eabe2
 
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
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
import streamlit as st
from datetime import datetime


# Disable automatic reruns for smoother scrolling
if 'initialized' not in st.session_state:
    st.session_state.initialized = True


# Page config
st.set_page_config(
    page_title="Suchith Natraj Javali - AI Portfolio",
    page_icon="πŸ€–",
    layout="wide",
    initial_sidebar_state="expanded"
)

# Custom CSS
# Custom CSS (replace your existing st.markdown CSS section)
st.markdown("""
    <style>
    /* Force full height - no internal scroll */
    section.main > div:has(~ footer ) {
        overflow: visible !important;
        max-height: none !important;
    }
    
    .main .block-container {
        overflow: visible !important;
        max-height: none !important;
    }
    
    /* Hide Streamlit's scrollbar completely */
    ::-webkit-scrollbar {
        width: 0px;
        background: transparent;
    }
    
    /* Let only browser scrollbar show */
    iframe body {
        overflow: auto !important;
    }
    
    /* Smooth browser scrolling */
    html {
        scroll-behavior: smooth;
    }
    h1 {color: #FF9D00;}
    
    .highlight-box {
        padding: 2rem;
        background: linear-gradient(135deg, #FF9D00 0%, #FFD21E 100%);
        color: #1F1F1F;
        border-radius: 10px;
        margin: 1rem 0;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }
    
    .metric-card {
        background: #f0f2f6;
        padding: 1.5rem;
        border-radius: 10px;
        text-align: center;
        transition: transform 0.2s ease;
    }
    
    .metric-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }
    </style>
""", unsafe_allow_html=True)

def smooth_scroll():
    st.markdown("""
        <script>
        window.addEventListener('load', function() {
            document.querySelectorAll('details').forEach(function(detail) {
                detail.addEventListener('toggle', function() {
                    if (this.open) {
                        setTimeout(function() {
                            detail.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
                        }, 100);
                    }
                });
            });
        });
        </script>
    """, unsafe_allow_html=True)

smooth_scroll()

col1, col2 = st.columns([3, 1])
with col1:
    st.title("Suchith Natraj Javali - AI Portfolio")
    st.markdown("### Production-Ready AI/ML Services")
with col2:
    st.markdown("[![HuggingFace](https://img.shields.io/badge/πŸ€—-HuggingFace-FFD21E?style=for-the-badge)](https://huggingface.co/suchithnj12)")
    st.markdown("[![GitHub](https://img.shields.io/badge/GitHub-Profile-181717?style=for-the-badge&logo=github)](https://github.com/Suchith-nj)")

# Hero section
st.markdown("""
    <div class="highlight-box">
        <h2 style="color: #1F1F1F; margin: 0;">Welcome to My AI Portfolio</h2>
        <p style="color: #1F1F1F; opacity: 0.9; margin-top: 0.5rem; font-size: 1.1rem;">
            Explore my collection of <strong>production-ready AI/ML services</strong> built with 
            PyTorch, HuggingFace Transformers, LangChain, and modern frameworks. 
            Each service demonstrates end-to-end ML engineering capabilities.
        </p>
        <p style="color: #1F1F1F; opacity: 0.8; margin-top: 0.5rem;">
            πŸ’‘ <strong>16GB RAM</strong> | 2 vCPU | Hosted on HuggingFace Spaces
        </p>
    </div>
""", unsafe_allow_html=True)

st.write("")

# Metrics row
col1, col2, col3, col4 = st.columns(4)

with col1:
    st.markdown('<div class="metric-card">', unsafe_allow_html=True)
    st.metric(label="Total Services", value="10+", delta="Growing")
    st.markdown('</div>', unsafe_allow_html=True)

with col2:
    st.markdown('<div class="metric-card">', unsafe_allow_html=True)
    st.metric(label="Primary Stack", value="Python", delta="PyTorch & LangChain")
    st.markdown('</div>', unsafe_allow_html=True)

with col3:
    st.markdown('<div class="metric-card">', unsafe_allow_html=True)
    st.metric(label="Platform", value="HuggingFace", delta="16GB RAM")
    st.markdown('</div>', unsafe_allow_html=True)

with col4:
    st.markdown('<div class="metric-card">', unsafe_allow_html=True)
    st.metric(label="Status", value="Active", delta="Week 0")
    st.markdown('</div>', unsafe_allow_html=True)

st.write("")

# About section
# st.header("πŸ‘¨β€πŸ’» About This Portfolio")

# col1, col2 = st.columns([2, 1])

# with col1:
#     st.markdown("""
#     I'm an **AI Engineer** specializing in building production-ready ML services. 
#     This portfolio showcases my ability to:
    
#     - **Train & Fine-tune Models**: Deep learning with PyTorch, transfer learning
#     - **Deploy to Production**: FastAPI, Docker, AWS, scalable architectures
#     - **Full-Stack AI Apps**: End-to-end applications with modern frameworks
#     - **MLOps Practices**: Experiment tracking, monitoring, CI/CD pipelines
#     - **Multi-Agent Systems**: Coordinated AI agents with LangChain & AutoGen
#     - **LLM Applications**: RAG pipelines, prompt engineering, agent frameworks
#     """)

# with col2:
#     st.info("**Navigate Services**\n\nUse the sidebar to explore each AI service")
#     st.success("**✨ New Service Every Week**\n\nThis portfolio grows weekly as I build new services")

# st.write("")

# Services Grid
st.header("πŸ› οΈ Available AI Services")
st.markdown("Select any service from the sidebar to explore β†’")

# Service cards in expandable sections
col1, col2 = st.columns(2)

services_left = [
    {
        "icon": "πŸ’¬",
        "name": "Food Classifier",
        "status": "βœ… Active",
        "desc": "ResNet-50 trained on Food-101 (101 food categories, 41% accuracy)",
        "tech": "PyTorch β€’ ResNet-50 β€’ HuggingFace",
        "features": ["101 food categories", "Real-time inference", "Top-5 predictions"]
    },
    {
        "icon": "πŸ’¬",
        "name": "Sentiment Analysis",
        "status": "Week 2",
        "desc": "BERT-based sentiment detection for text analysis",
        "tech": "HuggingFace Transformers β€’ BERT β€’ FastAPI",
        "features": ["Multi-language support", "Batch processing", "Fine-tuned on domain data"]
    },
    {
        "icon": "πŸ’¬",
        "name": "AI Chatbot",
        "status": "Week 3",
        "desc": "Conversational AI with memory and context awareness",
        "tech": "LangChain β€’ OpenAI β€’ PostgreSQL β€’ Memory",
        "features": ["Context retention", "Conversation history", "Multi-turn dialogue"]
    },
    {
        "icon": "πŸ’¬",
        "name": "Document Q&A (RAG)",
        "status": "Week 4",
        "desc": "Retrieval-Augmented Generation for document understanding",
        "tech": "LangChain β€’ Pinecone β€’ Vector Search β€’ RAG",
        "features": ["PDF/DOCX upload", "Semantic search", "Source citations"]
    },
]

services_right = [
    {
        "icon": "πŸ“š",
        "name": "Multi-Doc RAG",
        "status": "Week 5",
        "desc": "Advanced RAG system handling multiple documents",
        "tech": "ChromaDB β€’ Hybrid Search β€’ Re-ranking",
        "features": ["Multiple file upload", "Cross-document queries", "Advanced retrieval"]
    },
    {
        "icon": "πŸ”§",
        "name": "AI Agent with Tools",
        "status": "Week 6",
        "desc": "Autonomous agent that can use external tools",
        "tech": "LangChain Agents β€’ ReAct β€’ Function Calling",
        "features": ["Web search", "Calculator", "API integration"]
    },
    {
        "icon": "πŸ‘₯",
        "name": "Multi-Agent System",
        "status": "Week 7",
        "desc": "Coordinated AI agents for complex research tasks",
        "tech": "AutoGen β€’ LangGraph β€’ Multi-Agent",
        "features": ["Agent coordination", "Task delegation", "Parallel execution"]
    },
    {
        "icon": "🎨",
        "name": "Image Analysis (Multi-Modal)",
        "status": "Week 9",
        "desc": "Vision-language understanding with CLIP/BLIP",
        "tech": "CLIP β€’ BLIP β€’ Multi-Modal",
        "features": ["Image captioning", "Visual Q&A", "Object detection"]
    },
]

with col1:
    for service in services_left:
        with st.expander(f"{service['icon']} {service['name']}", expanded=False):
            st.markdown(f"**Status**: {service['status']}")
            st.write(service['desc'])
            st.code(service['tech'], language=None)
            st.markdown("**Key Features:**")
            for feature in service['features']:
                st.markdown(f"β€’ {feature}")

with col2:
    for service in services_right:
        with st.expander(f"{service['icon']} {service['name']}", expanded=False):
            st.markdown(f"**Status**: {service['status']}")
            st.write(service['desc'])
            st.code(service['tech'], language=None)
            st.markdown("**Key Features:**")
            for feature in service['features']:
                st.markdown(f"β€’ {feature}")

st.write("")
st.header("⚑ Tech Stack & Tools")

tech_col1, tech_col2, tech_col3, tech_col4 = st.columns(4)

with tech_col1:
    st.markdown("**Deep Learning**")
    st.markdown("""
    β€’ PyTorch
    β€’ TensorFlow
    β€’ Scikit-learn
    β€’ OpenCV
    """)

with tech_col2:
    st.markdown("**NLP & LLMs**")
    st.markdown("""
    β€’ HuggingFace Transformers
    β€’ LangChain
    β€’ OpenAI API
    β€’ Anthropic Claude
    """)

with tech_col3:
    st.markdown("**Backend & APIs**")
    st.markdown("""
    β€’ FastAPI
    β€’ Streamlit
    β€’ PostgreSQL
    β€’ Redis
    """)

with tech_col4:
    st.markdown("**DevOps & Deploy**")
    st.markdown("""
    β€’ AWS (EC2, S3, ECS)
    β€’ Docker
    β€’ GitHub Actions
    β€’ HuggingFace Spaces
    """)

st.write("")

# GitHub & Contact
st.header("Connect With Me")

contact_col1, contact_col2, contact_col3, contact_col4 = st.columns(4)

with contact_col1:
    st.markdown("** GitHub**")
    st.markdown("[View All Projects](https://github.com/Suchith-nj)")

with contact_col2:
    st.markdown("** LinkedIn**")
    st.markdown("[Connect](https://linkedin.com/in/suchith-nj)")

with contact_col3:
    st.markdown("** Email**")
    st.markdown("[Contact Me](mailto:suchithnj12@gmail.com)")


# Footer
st.write("")
st.write("")
st.markdown("---")
st.markdown(f"""
    <div style="text-align: center; opacity: 0.7; padding: 1rem;">
        <p>Built using <strong>Streamlit</strong> | Hosted on <strong>πŸ€— HuggingFace Spaces</strong></p>
        <p>Last Updated: {datetime.now().strftime('%B %Y')} | Week 0 Foundation Complete</p>
        <p><a href="https://github.com/Suchith-nj/ai-portfolio" target="_blank">View Source Code on GitHub</a></p>
    </div>
""", unsafe_allow_html=True)

# Sidebar
with st.sidebar:
    st.markdown("## AI Services Portfolio")
    st.markdown("**Suchith Natraj Javali**")
    st.markdown("AI Engineer")
    
    st.markdown("---")
    
    st.markdown("### Build Progress")
    progress = 5  # Update each week
    st.progress(progress / 100)
    st.caption(f"{progress}% Complete..")
    st.caption("Foundation deployed")
    
    st.markdown("---")
    
    st.markdown("### Navigation")
    st.info("Select a service from the **Pages** menu above to explore different AI capabilities")
    
    st.markdown("---")
    
    st.markdown("### πŸ”— Quick Links")
    st.markdown("β€’ [HuggingFace Profile](https://huggingface.co/suchithnj12)")
    st.markdown("β€’ [GitHub](https://github.com/Suchith-nj)")
    st.markdown("β€’ [LinkedIn](https://linkedin.com/in/suchith-nj)")    
    st.markdown("---")
    
    st.markdown("### πŸ’‘ About")
    st.caption("""
    This portfolio showcases production-ready AI/ML services built with modern frameworks. 
    Each service is a complete, deployable application demonstrating end-to-end ML engineering skills.
    """)
    
    st.markdown("---")
    st.caption("Β© 2024 Suchith Natraj Javali | All Rights Reserved")