Spaces:
Runtime error
Runtime error
import openai | |
import os | |
import gradio as gr | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
class Conversation: | |
def __init__(self, prompt): | |
self.prompt = prompt | |
self.messages = [] | |
self.messages.append({"role": "system", "content": self.prompt}) | |
def ask(self, question): | |
try: | |
self.messages.append({"role": "user", "content": question}) | |
response = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", | |
messages=self.messages, | |
temperature=0.5, | |
max_tokens=2048, | |
top_p=1, | |
) | |
except Exception as e: | |
print(e) | |
return e | |
message = response["choices"][0]["message"]["content"] | |
self.messages.append({"role": "assistant", "content": message}) | |
return message | |
prompt = """你是一个英语老师,请批改英语作文。用中文回答,回答限制在100个字以内,你的回答按照以下格式: | |
1. 文章主要内容: | |
2. 语法错误: | |
3. 拼写错误: | |
4. 百分制评分: | |
5. 给出评语: | |
如果输入不是英文作文,则提醒输入英文作文""" | |
conv = Conversation(prompt) | |
def moderation(text): | |
response = openai.Moderation.create( | |
input=text | |
) | |
output = response["results"][0]['flagged'] | |
return output | |
def answer(question): | |
#调用moderation函数,对输入的作文进行审核,如果有不良内容,返回提示信息 | |
moderation_flag = moderation(question) | |
if moderation_flag == True: | |
response = "输入文字有不良用语,请重新输入" | |
else: | |
response = conv.ask(question) | |
return response | |
# 使用gradio画出修改英语作文的界面,左边是输入框和提交按钮,右边是输出评语框,并调用gpt进行作文修改 | |
with gr.Interface( | |
answer, | |
gr.inputs.Textbox(lines=5,placeholder="输入英语作文",label="作文"), | |
gr.outputs.Textbox(label="评语"), | |
title="批改英语作文", | |
allow_flagging='never' | |
) as demo: | |
demo.launch() | |