english_essays / app.py
andytl's picture
Update app.py
fa38503
raw
history blame contribute delete
No virus
2.08 kB
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()