GradioDemoApp / app.py
eito2002
rename to app.py
fa6bc03
import gradio as gr
def resume_builder(
roles,
experiences,
skills,
other_skills,
years,
location,
education,
language_level,
desired_salary,
employment_type,
achievements,
):
template = f"""【職務経歴書】
【基本情報】
職種: {", ".join(roles)}
経験年数: {years}
希望勤務地: {location}
最終学歴: {education}
希望年収: {desired_salary}
希望雇用形態: {", ".join(employment_type)}
語学レベル: {language_level}
【職務経歴】
経験業務: {", ".join(experiences)}
【スキル】
技術スキル: {", ".join(skills)}
その他スキル: {other_skills}
【主な成果】
{achievements}
"""
return template
demo = gr.Interface(
fn=resume_builder,
inputs=[
gr.CheckboxGroup(
[
"フロントエンドエンジニア",
"バックエンドエンジニア",
"インフラエンジニア",
],
label="職種",
info="経験職種を選択して下さい",
),
gr.CheckboxGroup(
["Web開発", "AIプロダクト", "モバイルアプリ開発"],
label="経験業務",
info="経験業務を選択して下さい",
),
gr.CheckboxGroup(
["Python", "JavaScript", "SQL"],
label="スキル",
info="使えるスキルを選択して下さい",
),
gr.Textbox(
lines=2, label="その他スキル", info="その他のスキルを入力して下さい"
),
gr.Slider(2, 20, value=4, label="経験年数", info="経験年数を入力して下さい"),
gr.Radio(
["東京", "大阪", "名古屋", "リモート"],
label="希望勤務地",
info="希望する勤務地を選択してください",
),
gr.Dropdown(
["大学院卒", "大学卒", "高専卒", "専門学校卒", "その他"],
label="最終学歴",
info="最終学歴を選択してください",
),
gr.Dropdown(
["ネイティブ", "ビジネスレベル", "日常会話レベル", "読み書きレベル"],
label="英語レベル",
info="英語レベルを選択してください",
),
gr.Dropdown(
[
"400万円以下",
"400-500万円",
"500-600万円",
"600-700万円",
"700-800万円",
"800万円以上",
],
label="希望年収",
info="希望する年収範囲を選択してください",
),
gr.Dropdown(
["正社員", "契約社員", "フリーランス", "パートタイム"],
label="希望雇用形態",
multiselect=True,
info="希望する雇用形態を選択してください",
),
gr.Textbox(lines=4, label="主な成果", info="過去の主な成果を入力して下さい"),
],
outputs=gr.Textbox(
lines=20,
label="職務経歴書",
info="テンプレートを自由に編集できます",
interactive=True,
),
examples=[
[
["フロントエンドエンジニア"],
["Web開発"],
["JavaScript"],
"React, Vue.js",
5,
"東京",
"大学卒",
"ビジネスレベル",
"500-600万円",
["正社員"],
"Webアプリケーションの開発リード経験あり",
],
[
["バックエンドエンジニア"],
["AIプロダクト"],
["Python", "SQL"],
"Django, Flask",
3,
"リモート",
"大学院卒",
"日常会話レベル",
"600-700万円",
["フリーランス"],
"機械学習モデルの実装と運用",
],
],
)
if __name__ == "__main__":
demo.launch(share=True)