Spaces:
Running
Running
import streamlit as st | |
from PIL import Image | |
import os | |
# セッションステートの初期化 | |
if 'initialized' not in st.session_state: | |
st.session_state.initialized = True | |
# カスタムCSSの適用 | |
st.markdown(""" | |
<style> | |
/* Google Fontsのインポート */ | |
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); | |
/* 全体のフォント設定 */ | |
html, body, [class*="css"] { | |
font-family: 'Open Sans', sans-serif; | |
} | |
/* 背景のグラデーション設定 */ | |
.stApp { | |
background: linear-gradient(135deg, #1ABC9C 0%, #16A085 100%); | |
} | |
/* メインコンテンツのスタイル */ | |
.main { | |
background: rgba(0, 0, 0, 0.6); | |
padding: 20px; | |
border-radius: 10px; | |
} | |
/* ヘッダーのスタイル */ | |
h1, h2, h3, h4, h5, h6 { | |
color: #FFFFFF !important; | |
font-family: 'Open Sans', sans-serif; | |
font-weight: 700; | |
} | |
/* テキストの色設定 */ | |
p, li { | |
color: #FFFFFF; | |
} | |
/* リンクの色設定とホバーエフェクト */ | |
a { | |
color: #1ABC9C !important; | |
text-decoration: none; | |
transition: color 0.3s ease; | |
} | |
a:hover { | |
color: #16A085 !important; | |
text-decoration: underline; | |
} | |
/* リストのスタイル */ | |
ul { | |
list-style-type: none; | |
padding-left: 20px; | |
} | |
ul li::before { | |
content: '▹'; | |
color: #1ABC9C; | |
margin-right: 8px; | |
} | |
/* カードスタイル */ | |
.card { | |
background: rgba(255, 255, 255, 0.1); | |
padding: 20px; | |
border-radius: 10px; | |
margin-bottom: 20px; | |
} | |
/* プロフィール画像のスタイル */ | |
.profile-pic img { | |
border-radius: 50%; | |
border: 2px solid #1ABC9C; | |
} | |
/* フッターの非表示 */ | |
footer { | |
visibility: hidden; | |
} | |
/* レスポンシブ対応 */ | |
@media (max-width: 768px) { | |
.main { | |
padding: 10px; | |
} | |
.profile-pic img { | |
width: 150px !important; | |
} | |
} | |
</style> | |
""", unsafe_allow_html=True) | |
# 画像の存在確認関数 | |
def image_exists(path): | |
return os.path.isfile(path) | |
# メイン関数 | |
def main(): | |
# タイトルとロゴの表示 | |
col1, col2 = st.columns([1, 8]) | |
with col1: | |
if image_exists('my_logo.jpg'): | |
st.image('my_logo.jpg', width=70) | |
else: | |
st.warning("Logo image not found") | |
with col2: | |
st.markdown("<h1 style='padding-top: 20px;'>Taisei Ozaki Profile Page</h1>", unsafe_allow_html=True) | |
# プロフィール概要 | |
st.markdown("<div class='main'>", unsafe_allow_html=True) | |
st.header("📝 プロフィール概要") | |
col1, col2 = st.columns([1, 2]) | |
with col1: | |
if image_exists('profile_pic.jpg'): | |
st.markdown("<div class='profile-pic'>", unsafe_allow_html=True) | |
st.image('profile_pic.jpg', width=200) | |
st.markdown("</div>", unsafe_allow_html=True) | |
else: | |
st.warning("Profile picture not found") | |
with col2: | |
st.write(""" | |
**尾﨑 大晟** :大阪公立大学の修士課程(M2)の学生で、機械工学と自然言語処理(NLP)を専門としています。 | |
私の研究は大規模言語モデル(LLM)とLLMの暗黙知やAIエージェント,LLM as a Control,自動運転に焦点を当てています。 | |
大学では自然言語処理をテーマに、大規模言語モデルを議論的対話の観点から定量評価する研究を行っており、特にAIとその教育的価値に興味があります。 | |
高校卒業後、個人事業主として投資・投機ビジネスを経験した後、学問や研究の深さに惹かれ大学進学を決意しました。 | |
課外活動では、eスポーツチームの運営、Jリーグクラブでの副音声実況活動、東京大学松尾研究室との関わり、国立情報学研究所のLLM-jpプロジェクトへの参加など、多岐にわたる活動を行っています。 | |
""") | |
st.markdown("</div>", unsafe_allow_html=True) | |
# 学歴セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🎓 学歴</h2> | |
<ul> | |
<li><strong>2023年4月 - 現在:</strong> 大阪公立大学大学院 工学研究科 機械系専攻 修士課程</li> | |
<li><strong>2019年4月 - 2023年3月:</strong> 大阪府立大学 工学域 機械系学類 学士課程</li> | |
<li><strong>2017年3月:</strong> 愛媛県立宇和島東高校 卒業</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 職務経験セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>💼 職務経験</h2> | |
<ul> | |
<li><strong>2023年7月 - 現在:</strong> 株式会社松尾研究所/Matsuo Institute AIエンジニア</li> | |
<li><strong>2024年1月 - 2024年2月:</strong> 日本電信電話株式会社 長期研究インターン</li> | |
<li><strong>2023年10月 - 2023年12月:</strong> 株式会社PKSHA Technology アルゴリズムエンジニア インターン</li> | |
<li><strong>2023年7月 - 2023年9月:</strong> 日本電気株式会社(NEC) 長期有償型研究インターン</li> | |
<li><strong>2018年9月 - 2022年12月:</strong> 個人事業主(為替取引業などに従事)</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 受賞歴セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🏆 受賞歴</h2> | |
<ul> | |
<li><strong>2024年6月:</strong> 人工知能学会 全国大会 口頭発表部門 優秀賞 | |
<ul> | |
<li>「LLM による前提生成ステップを用いた反論の攻撃力向上手法」</li> | |
</ul> | |
</li> | |
<li><strong>2024年6月:</strong> GENIAC 松尾研 LLM開発プロジェクト コンペティション第3位 | |
<ul> | |
<li>LLM開発コンペティションで3位入賞</li> | |
</ul> | |
</li> | |
<li><strong>2024年3月:</strong> 大阪公立大学大学院 工学研究科 学生顕彰 | |
<ul> | |
<li>学術研究で優れた成果を挙げた学生に贈られる賞</li> | |
</ul> | |
</li> | |
<li><strong>2023年9月:</strong> 東京大学グローバル消費インテリジェンス寄付講座 優秀賞 | |
<ul> | |
<li>講座の優秀修了</li> | |
</ul> | |
</li> | |
<li><strong>2023年6月:</strong> 人工知能学会 全国大会 ポスター発表部門優秀賞 | |
<ul> | |
<li>「大規模言語モデルが生成した反論文の評価」</li> | |
</ul> | |
</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 論文セクション(リンク付き) | |
st.markdown(""" | |
<div class='section card'> | |
<h2>📚 論文</h2> | |
<ul> | |
<li><strong>2024年5月29日:</strong> 「異常検知モデルを用いた電動キックボード乗車時のドライバの障害物への気付きの推定」 日本機械学会 ロボティクス・メカトロニクス部門</li> | |
<li><strong>2024年5月28日:</strong> <a href='https://www.jstage.jst.go.jp/article/pjsai/JSAI2024/0/JSAI2024_3F1GS1004/_article/-char/ja' target='_blank'>「LLMを用いた反論文の攻撃力向上手法の提案」</a> 人工知能学会全国大会</li> | |
<li><strong>2024年5月28日:</strong> <a href='https://www.jstage.jst.go.jp/article/pjsai/JSAI2024/0/JSAI2024_4Xin292/_article/-char/ja' target='_blank'>「大規模言語モデルの生成反論文のテンプレート追従性」</a> 人工知能学会全国大会</li> | |
<li><strong>2024年3月15日:</strong> <a href='https://www.anlp.jp/proceedings/annual_meeting/2024/pdf_dir/P9-27.pdf' target='_blank'>「大規模言語モデルを用いた有効反論箇所としての前提生成」</a> 言語処理学会年次大会</li> | |
<li><strong>2023年5月28日:</strong> <a href='https://www.jstage.jst.go.jp/article/pjsai/JSAI2023/0/JSAI2023_4Xin111/_article/-char/ja/' target='_blank'>「大規模言語モデルが生成した反論文の品質評価」</a> 人工知能学会全国大会</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# プロジェクトセクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🚀 プロジェクト</h2> | |
<ul> | |
<li><strong>2024年9月 - 2025年1月:</strong> 経済産業省 NEDO採択 東京大学松尾研究所 大規模言語モデル開発プロジェクト「Geniac」 チームOzakiリーダー | |
<ul> | |
<li>国内の生成AI開発力強化を目的としたプロジェクト</li> | |
</ul> | |
</li> | |
<li><strong>2024年3月 - 2024年8月:</strong> 経済産業省 AKATSUKIプロジェクト採択 関西テッククリエイターチャレンジ | |
<ul> | |
<li>革新的なアイデアを持つ若手テック人材を応援するプログラム</li> | |
</ul> | |
</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 資格・講座セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🎖 資格・講座</h2> | |
<ul> | |
<li><strong>2023年10月:</strong> 東京大学 世界モデル Deep Learning応用講座 2024</li> | |
<li><strong>2023年9月:</strong> 東京大学 大規模言語モデル Deep Learning応用講座 2024</li> | |
<li><strong>2024年7月:</strong> 東京大学 サマースクール2024 深層生成モデル</li> | |
<li><strong>2024年4月:</strong> 東京大学 深層学習 / Deep Learning基礎講座</li> | |
<li><strong>2023年9月:</strong> 東京大学 サマースクール2023 大規模言語モデル</li> | |
<li><strong>2023年8月:</strong> 東京大学 グローバル消費インテリジェンス寄付講座</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# スキルセクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🛠 スキル</h2> | |
<ul> | |
<li><strong>プログラミング言語:</strong> Python、C++</li> | |
<li><strong>専門分野:</strong> 自然言語処理、大規模言語モデル(LLM)、機械学習、データ分析</li> | |
<li><strong>その他:</strong> 研究プロジェクトのリード、eスポーツチームの運営、プロサッカーリーグ実況解説</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 研究関心分野セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>🔬 研究関心</h2> | |
<ul> | |
<li>自然言語処理</li> | |
<li>AIと教育</li> | |
<li>eスポーツとAIの統合</li> | |
</ul> | |
</div> | |
""", unsafe_allow_html=True) | |
# 連絡先情報セクション | |
st.markdown(""" | |
<div class='section card'> | |
<h2>📍 連絡先</h2> | |
<p>所在地:大阪府 堺市,中区学園町 1-1 大阪公立大学 B4棟 E234室 </p> | |
<a href='https://www.omu.ac.jp/eng/dyna/' target='_blank'>「機械力学研究グループ」</a> | |
<p>Mail: [email protected] (個人)</p> | |
<p>Mail: [email protected] (大学)</p> | |
<p>Mail: [email protected] (松尾研究所)</p> | |
</div> | |
""", unsafe_allow_html=True) | |
# ソーシャルリンク | |
st.markdown(""" | |
<div style='text-align: center; margin-top: 50px;'> | |
<a href='https://www.linkedin.com/in/taisei-ozaki-del/' target='_blank'> | |
<img src='https://cdn-icons-png.flaticon.com/512/174/174857.png' width='40'> | |
</a> | |
</div> | |
""", unsafe_allow_html=True) | |
# フッターの非表示 | |
st.markdown(""" | |
<style> | |
footer {visibility: hidden;} | |
</style> | |
""", unsafe_allow_html=True) | |
st.markdown("</div>", unsafe_allow_html=True) | |
if __name__ == "__main__": | |
try: | |
main() | |
except Exception as e: | |
st.error(f"An error occurred: {str(e)}") |