Spaces:
Running
Running
import gradio as gr | |
import openai | |
import os | |
def predict(education_level, annual_income, employment_status, course_name, openai_api_key): | |
# 0. preparation | |
os.environ['OPENAI_API_KEY'] = openai_api_key | |
openai.api_key = openai_api_key | |
overall_prompt = '''你将作为一名专业的申请人助手,在世界上最大的 MOOC 平台 Coursera 上完成一份 Financial Aid 相关的任务,之后将会给你相关的课程信息,任务如下:''' | |
role = f'''个人信息: a {education_level} with {annual_income} annual income and {employment_status}.''' | |
# 1. Reasons for aid | |
task = '请你完成一份 Financial Aid 申请表,字数在 150-300 words 之间,内容需要包括,请注意,输出仅仅包括 Reasons for Financial Aid ' \ | |
'Application 的内容即可,前后均不需要添加任何东西(包括 "Reasons for Financial Aid Application:"),也不需要输出任何解释性语句.' | |
response = openai.ChatCompletion.create( | |
model='gpt-3.5-turbo', | |
temperature=0.0, | |
messages=[ | |
{'role': 'system', 'name': 'overall_prompt', 'content': overall_prompt}, | |
{'role': 'user', 'name': 'task', 'content': task}, | |
{'role': 'user', 'name': 'role', 'content': role}, | |
{'role': 'user', 'name': 'course_name', 'content': f'Course name: {course_name}'}, | |
{'role': 'system', 'name': 'overall_prompt', 'content': overall_prompt}, | |
{'role': 'user', 'name': 'task', 'content': task}, | |
] | |
) | |
reasons_for_aid = response.choices[0].message.content | |
reasons_for_aid = reasons_for_aid.replace('Reasons for Financial Aid Application:\n', '') | |
while reasons_for_aid.startswith('\n'): | |
reasons_for_aid = reasons_for_aid[1:] | |
# 2. How will your selected course help with your goals? | |
task = '请你根据给出的信息回答:How will your selected course help with your goals? 答案字数在 150-300 words ' \ | |
'之间,请注意,输出仅仅包括问题的答案即可,前后均不需要添加任何东西,也不需要输出任何解释性语句.' | |
response = openai.ChatCompletion.create( | |
model='gpt-3.5-turbo', | |
temperature=0.0, | |
messages=[ | |
{'role': 'system', 'name': 'overall_prompt', 'content': overall_prompt}, | |
{'role': 'user', 'name': 'task', 'content': task}, | |
{'role': 'user', 'name': 'role', 'content': role}, | |
{'role': 'user', 'name': 'course_name', 'content': f'Course name: {course_name}'}, | |
{'role': 'system', 'name': 'overall_prompt', 'content': overall_prompt}, | |
{'role': 'user', 'name': 'task', 'content': task}, | |
] | |
) | |
how_will_course_help = response.choices[0].message.content | |
return reasons_for_aid, how_will_course_help | |
params = { | |
'education_level': 'College Degree', | |
'annual_income': 0, | |
'employment_status': 'Student', | |
} | |
if __name__ == '__main__': | |
gr.Interface( | |
fn=predict, | |
inputs=[ | |
gr.components.Dropdown(['High School', 'Some College', 'College Degree', 'Master’s/Advanced degree', 'Other'], value=params['education_level'], label='Education'), | |
gr.components.Slider(0, 100, params['annual_income'], label='Annual Income($ USD)'), | |
gr.components.Dropdown(['Full-time', 'Part-time', 'Unemployed', 'Student', 'Other'], value=params['employment_status'], label='Employment Status'), | |
gr.Textbox(label="Course Name"), | |
gr.Textbox(label="OpenAI API Key") | |
], | |
outputs=[ | |
gr.Textbox(label="Reason you applied for aid", show_copy_button=True), | |
gr.Textbox(label="How will your selected course help with your goals?", show_copy_button=True) | |
], | |
).launch() | |