CGF-School_Kit / content.py
rahul-appu's picture
Update content.py
c9d5ef6 verified
import requests
import gradio as gr
from helper import generate_access_token
def generate_content(grade, subject, topics, learning_outcomes, notes, stories, activities, group_dicussion, extras):
data = {
"institution_id": "inst789",
"teacher_id": "teacher456",
"grade": grade,
"subject": subject,
"topics": topics.split(", "),
"learning_outcomes": learning_outcomes.split(", "),
"content_type": {
"notes": notes,
"stories": stories,
"activities": activities,
"group_dicussion": group_dicussion
},
"extras": extras.split(", ")
}
access_token = generate_access_token()
if access_token is None:
return {"Error": "Failed to generate access token"}
response = requests.post("http://20.193.151.200:8080/v1/k12/generate/content",
headers={
"accept": "application/json",
"content-type": "application/json",
"Authorization": f"{access_token}"},
json=data)
if(str(response.status_code)[0] != '2'):
return {"Error": f"{response.status_code}"}
return response.json()
def get_content_generation(request_id):
access_token = generate_access_token()
if access_token is None:
return {"Error": "Failed to generate access token"}
url = f"http://20.193.151.200:8080/v1/k12/generate/content/{request_id}"
headers = {"accept": "application/json",
"Authorization": access_token}
response = requests.get(url, headers=headers)
if str(response.status_code)[0] == "2":
return response.json()
else:
return {"Error" : f"{response.status_code}"}
def post_interface():
with gr.Blocks() as post_page:
grade = gr.Textbox(label="Grade", value="8")
subject = gr.Textbox(label="Subject", value="Science")
topics = gr.Textbox(label="Topics (comma-separated)", value="Plant and Animal Cells, Reproduction in Humans and Animals")
learning_outcomes = gr.Textbox(label="Learning Outcomes (comma-separated)")
notes = gr.Radio(label="Notes", choices=["Yes", "No"], value="No")
stories = gr.Radio(label="Stories", choices=["Yes", "No"], value="No")
activities = gr.Radio(label="Activities", choices=["Yes", "No"], value="No")
group_dicussion = gr.Radio(label="Group Discussion", choices=["Yes", "No"], value="No")
extras = gr.Textbox(label="Extras (comma-separated)")
submit_button = gr.Button("Invoke Request")
output = gr.JSON(label="Content Generation ID")
submit_button.click(
fn=generate_content,
inputs=[grade, subject, topics, learning_outcomes, notes, stories, activities, group_dicussion, extras],
outputs=output,
)
return post_page
def get_interface():
with gr.Blocks() as get_page:
interface = gr.Interface(
fn=get_content_generation,
inputs=gr.Textbox(label="Enter Request ID"),
outputs="json",
)
return get_page
def content_generation():
gr.Markdown("# Content Generation")
with gr.Blocks() as content_generation:
with gr.Tabs():
with gr.TabItem("POST"):
post_interface()
with gr.TabItem("GET"):
get_interface()
return content_generation