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()