Coursera-GPT / app.py
Xeraphinite's picture
Update app.py
335e5d5
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()