HelenaXH commited on
Commit
c4b4e0f
·
verified ·
1 Parent(s): 33bcb2d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -22
app.py CHANGED
@@ -2,30 +2,49 @@ import gradio as gr
2
  from openai import OpenAI
3
  import os
4
 
5
- # ========== 用户资料 & 问题设置 ==========
6
  user_profile = {
7
  "mode": None,
8
  "specific_career": None,
9
  "bg_info": None,
10
- "test_choice": None,
11
- "forward_career_choice": None
 
12
  }
13
 
 
14
  base_questions = [
15
  ("mode", "你是否有心仪的职业方向?\n- 如果有,请回复'是'(Backward模式)\n- 如果没有,请回复'否'(Forward模式)")
16
  ]
17
 
 
18
  forward_additional_questions = [
19
- ("bg_info", "提供你的具体学术背景:你的学校、年级、专业、主修课程。如果能简单介绍目前选课或实习经历就更"),
20
- ("test_choice", "我可以帮你做一个简单的职业性格测评,或玩一个小心理游戏,让你更清晰地认识自己。你想试试看吗?(请输入'是'或'否')"),
21
- ("forward_career_choice", "基于你的背景和性格,我会给出几个职大方向请在这里输入最感兴趣1~2个方向,以便深入讨论。")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  ]
23
 
 
24
  backward_additional_questions = [
25
  ("specific_career", "请具体描述你想要从事的职业方向。"),
26
  ("bg_info", "请提供你的学校、年级、专业以及已有的实习或项目经历,以便更好地帮你规划如何达成目标。")
27
  ]
28
 
 
29
  current_q_index = 0
30
  questions = base_questions[:]
31
  in_forward_flow = False
@@ -35,40 +54,56 @@ backward_index = 0
35
  forward_done = False
36
  backward_done = False
37
 
 
38
  model_default = "gpt-4o"
39
  token_default = 2000
40
  temp_default = 0.7
41
  top_p_default = 0.95
42
 
43
- # ========== Prompt 生成 ==========
44
  def generate_system_prompt():
45
  mode = user_profile["mode"]
46
  specific_career = user_profile["specific_career"]
47
  bg_info = user_profile["bg_info"]
48
- test_choice = user_profile["test_choice"]
49
- forward_career_choice = user_profile["forward_career_choice"]
 
50
 
51
  if "是" in (mode or ""):
52
  return f"""
53
- 你是一位专业的职业规划顾问,使用"Backward Design"方法帮助学生实现他们的职业目标。
54
- 学生目标职业: {specific_career}
55
- 学术背景: {bg_info}
 
56
 
57
- 请提供以下内容
58
  1. 该职业的简要分析
59
  2. 排名前列的组织或公司
60
  3. 所需技能和能力
61
- 4. 职业发展空间
 
62
 
63
- 并结合学生背景,提出:
64
- 1. 专业和课程建议
65
- 2. 关键技能学习建议
66
- 3. 资格认证与考试建议
67
- 4. 如何利用学校资源
68
- 5. 实习和项目建议
69
- 6. 简历优化建议
70
 
71
- 最后,请用Markdown格式呈现清晰职业路径:
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  """
73
  return prompt
74
 
 
2
  from openai import OpenAI
3
  import os
4
 
5
+ # ============================ 用户信息结构 ============================
6
  user_profile = {
7
  "mode": None,
8
  "specific_career": None,
9
  "bg_info": None,
10
+ "work_value": None,
11
+ "personality_summary": None,
12
+ "dream_day": None
13
  }
14
 
15
+ # ============================ 基础问题 ============================
16
  base_questions = [
17
  ("mode", "你是否有心仪的职业方向?\n- 如果有,请回复'是'(Backward模式)\n- 如果没有,请回复'否'(Forward模式)")
18
  ]
19
 
20
+ # ============================ Forward 模式问题 ============================
21
  forward_additional_questions = [
22
+ ("bg_info", """那么接下来我会需要你提供一些你的资料,并分享你的性格和喜,我会分析然后给你推荐定制的可行方向
23
+
24
+ 接下来,请首先提供你学术背景:你的学校、年级、专业,和主修课程是什么?如果能提供你的选课表或 resume 就最好啦。"""),
25
+
26
+ ("work_value", """很好!接下来我想更深入地了解你。
27
+
28
+ 你认为“工作”的意义是什么?你觉得一份理想的工作,应该带来哪些价值或满足感?
29
+
30
+ 你可以从以下几个角度思考,也可以自由表达:
31
+ - 是可以帮助他人?实现社会影响力?
32
+ - 还是可以赚大钱?获得物质回报?
33
+ - 或者是自由时间?个人成长?创意空间?
34
+ 举个例子更好哦~"""),
35
+
36
+ ("personality_summary", "你能不能用几句话总结一下你自己的性格?比如:外向、喜欢挑战、注重细节、讨厌重复..."),
37
+
38
+ ("dream_day", "你能描述一下你理想工作的一天是什么样的吗?你在哪工作?做什么?跟谁合作?忙还是闲?更自由还是更有秩序?")
39
  ]
40
 
41
+ # ============================ Backward 模式问题 ============================
42
  backward_additional_questions = [
43
  ("specific_career", "请具体描述你想要从事的职业方向。"),
44
  ("bg_info", "请提供你的学校、年级、专业以及已有的实习或项目经历,以便更好地帮你规划如何达成目标。")
45
  ]
46
 
47
+ # ============================ 状态控制变量 ============================
48
  current_q_index = 0
49
  questions = base_questions[:]
50
  in_forward_flow = False
 
54
  forward_done = False
55
  backward_done = False
56
 
57
+ # ============================ 模型设置 ============================
58
  model_default = "gpt-4o"
59
  token_default = 2000
60
  temp_default = 0.7
61
  top_p_default = 0.95
62
 
63
+ # ============================ Prompt 生成函数 ============================
64
  def generate_system_prompt():
65
  mode = user_profile["mode"]
66
  specific_career = user_profile["specific_career"]
67
  bg_info = user_profile["bg_info"]
68
+ work_value = user_profile["work_value"]
69
+ personality_summary = user_profile["personality_summary"]
70
+ dream_day = user_profile["dream_day"]
71
 
72
  if "是" in (mode or ""):
73
  return f"""
74
+ 你是一位专业的职业规划顾问,使用Backward Design方法帮助学生达成他们的职业目标。
75
+
76
+ 目标职业: {specific_career}
77
+ 背景信息: {bg_info}
78
 
79
+ 请提供:
80
  1. 该职业的简要分析
81
  2. 排名前列的组织或公司
82
  3. 所需技能和能力
83
+ 4. 职业发展路径
84
+ 5. 学术/课程建议、技能培养、资源使用、实习规划、简历优化等
85
 
86
+ 最后请用Markdown格式输职业路径图
87
+ 📍 现在 → 🎓 学习建议 → 💼 实践建议 → 📄 认证建议 → 🚀 求职建议
88
+ """
89
+ else:
90
+ return f"""
91
+ 你是一位专业的职业规划顾问,使用Forward Design方法帮助学生探索合适的职业路径。
 
92
 
93
+ 学生背景:
94
+ - 学术背景: {bg_info}
95
+ - 工作意义: {work_value}
96
+ - 性格总结: {personality_summary}
97
+ - 理想一天: {dream_day}
98
+
99
+ 请输出:
100
+ 1. 学生的优势、性格、价值观分析
101
+ 2. 推荐6个职业方向,并说明匹配理由
102
+ 3. 等学生选择后,再推荐3个具体职业,每个说明日常内容、适配性、要求、准备路径
103
+
104
+ 最后请用Markdown格式输出职业路径图:
105
+ 📍 现在 → 🎓 学习建议 → 💼 实践建议 → 📄 认证建议 → 🚀 求职建议
106
+ """
107
  """
108
  return prompt
109