Spaces:
Sleeping
Sleeping
File size: 7,211 Bytes
20fd7c0 |
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 |
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
import uvicorn
import os
app = FastAPI()
# Mount static files
app.mount("/static", StaticFiles(directory="static"), name="static")
# Templates
templates = Jinja2Templates(directory="templates")
# Portfolio Data
portfolio_data = {
"name": "Tran Bao Ngoc",
"tagline": "Passionate about AI, Machine Learning, and Building Scalable Solutions",
"location": "Hanoi, Vietnam",
"email": "trbaongoc17@gmail.com",
"github": "https://github.com/TrBn17",
"huggingface": "https://huggingface.co/NGOC1712",
"about": (
"I have almost 2 years of learning, research, and development in the AI industry. "
"I've joined many AI projects across different domains: Healthcare, Banking, Technical Operations. "
"I'm looking for an environment where I can grow my technical and soft skills, "
"while committing long-term and contributing to the company in this AI era."
),
"tech_stack": {
"ai_engines": [
{"name": "TensorFlow", "level": 85, "icon": "devicon-tensorflow-original colored"},
{"name": "PyTorch", "level": 90, "icon": "devicon-pytorch-original colored"},
{"name": "Hugging Face", "level": 75, "icon": "custom-icon", "icon_src": "/static/icons/huggingface.png"},
{"name": "OpenAI", "level": 80, "icon": "custom-icon", "icon_src": "/static/icons/openai.png"},
{"name": "Langchain", "level": 85, "icon": "custom-icon", "icon_src": "/static/icons/langchain.png"}
],
"programming_languages": [
{ "name": "Python", "level": 95, "icon": "devicon-python-plain colored" },
{"name": "JavaScript", "level": 65, "icon": "devicon-javascript-plain colored"},
{"name": "HTML/CSS", "level": 70, "icon": "devicon-html5-plain colored"}
],
"databases": [
{"name": "PostgreSQL", "level": 95, "icon": "devicon-postgresql-plain colored"},
{"name": "Redis", "level": 60, "icon": "devicon-redis-plain colored"},
{"name": "SQL", "level": 75, "icon": "devicon-sqldeveloper-plain colored"},
{"name": "MinIO", "level": 85, "icon": "custom-icon", "icon_src": "/static/icons/minio.png"},
{"name": "MongoDB", "level": 50, "icon": "devicon-mongodb-plain colored"}
],
"devops_tools": [
{"name": "Docker", "level": 95, "icon": "devicon-docker-plain colored"},
{"name": "Grafana", "level": 65, "icon": "devicon-grafana-plain colored"},
{"name": "Prometheus", "level": 55, "icon": "fas fa-fire"},
{"name": "Loki", "level": 50, "icon": "custom-icon", "icon_src": "/static/icons/Loki.png"},
{"name": "Kubernetes", "level": 45, "icon": "devicon-kubernetes-plain colored"}
],
"frameworks": [
{"name": "FastAPI", "level": 90, "icon": "devicon-fastapi-plain colored"},
{"name": "Flask", "level": 70, "icon": "devicon-flask-original colored"},
{"name": "Django", "level": 60, "icon": "devicon-django-plain colored"}
]
},
"experience": [
{
"title": "AI Engineer",
"company": "FOXAi Joint Stock Company",
"period": "May 2024 - Present",
"description": [
"Developed scalable backend services using Python, FastAPI",
"Collaborated with business analysts and product managers",
"Built demo services with Hugging Face for clients/internal showcases",
"Created technical documentation and system architecture diagrams",
"Worked on low-resource languages (e.g., Lao) with limited training data"
]
},
{
"title": "AI Intern",
"company": "Wisdom Brain",
"period": "Sep 2023 - Feb 2024",
"description": [
"Researched layered architectures in reinforcement learning",
"Gained hands-on experience with deep learning models"
]
}
],
"projects": [
{
"name": "AI-Powered Chatbot System",
"description": "Developed chatbot integrating OpenAI, Deepseek, Gemini APIs",
"languages": ["Python"],
"technologies": ["FastAPI", "OpenAI API", "Deepseek", "Gemini", "Langchain", "PostgreSQL", "Redis", "Docker", "MinIO"],
"role": "Core Developer",
"highlights": [
"Multi-model integration",
"Scalable architecture",
"Real-time responses",
"Streaming support"
]
},
{
"name": "eKYC Identity Verification",
"description": "Built eKYC system for ID/passport verification",
"languages": ["Python", "JavaScript", "HTML", "CSS"],
"technologies": ["Computer Vision", "OCR", "Deep Learning", "FastAPI", "Docker", "PostgreSQL", "Redis", "MinIO", "Gemini API"],
"role": "Core Developer",
"highlights": [
"High accuracy OCR",
"Real-time processing",
"Security compliance"
]
},
{
"name": "Document Processing System",
"description": "Developed RAG system for various document types",
"languages": ["Python"],
"technologies": ["Qdrant", "Docling", "FastAPI", "Docker", "PostgreSQL", "Pymupdf", "Langchain", "OpenAI", "Hugging Face"],
"role": "Core Developer",
"highlights": [
"Multi-language support",
"High accuracy",
"Fast processing"
]
},
{
"name": "Banking ML Solution",
"description": "Applied ML algorithms to banking challenges",
"languages": ["Python"],
"technologies": ["Scikit-learn", "Pandas", "NumPy", "Docker"],
"role": "Technical Support",
"highlights": [
"Risk assessment",
"Fraud detection",
"Customer segmentation"
]
}
],
"education": {
"degree": "Bachelor of Business Data Analytics",
"school": "International School - VNU",
"coursework": ["Business Analysis", "Data Analysis", "Machine Learning", "Deep Learning"]
},
"certifications": [
"AI Ethics Certificate",
"Google Data Analytics Professional Certificate",
"B2 VSTEP Certificate"
]
}
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request, "data": portfolio_data})
@app.get("/api/data")
async def get_data():
return portfolio_data
if __name__ == "__main__":
uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)
|