Spaces:
Runtime error
Runtime error
import requests | |
import gradio as gr | |
from helper import generate_access_token | |
def generate_lesson_plan(board, grade, subject, topics, duration, learning_outcomes, curriculum_framework): | |
data = { | |
"board": board, | |
"curriculum_framework": curriculum_framework, | |
"duration": duration, | |
"grade": grade, | |
"institution_id": "inst789", | |
"learning_outcomes": learning_outcomes.split(", "), | |
"subject": subject, | |
"teacher_id": "teacher456", | |
"topics": topics.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/lesson-plan", | |
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_lesson_plan(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/lesson-plan/{request_id}" | |
headers = {"accept": "application/json", | |
"Authorization": access_token} | |
response = requests.get(url, headers=headers) | |
if response.status_code == 200: | |
return response.json() | |
else: | |
return {"Error" : f"{response.status_code}"} | |
def post_interface(): | |
with gr.Blocks() as post_page: | |
board = gr.Textbox(label="Board", value="NCERT") | |
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") | |
duration = gr.Number(label="Duration (minutes)", value=45) | |
learning_outcomes = gr.Textbox(label="Learning Outcomes (comma-separated)") | |
curriculum_framework = gr.Textbox(label="Curriculum Framework", value="ncf2023") | |
output = gr.JSON(label="Lesson Plan ID") | |
submit_button = gr.Button("Invoke Request") | |
submit_button.click( | |
generate_lesson_plan, | |
inputs=[board, grade, subject, topics, duration, learning_outcomes, curriculum_framework], | |
outputs=output | |
) | |
def get_interface(): | |
with gr.Blocks() as get_page: | |
interface = gr.Interface( | |
fn=get_lesson_plan, | |
inputs=gr.Textbox(label="Enter Request ID"), | |
outputs="json", | |
) | |
return get_page | |
def lesson_plan(): | |
gr.Markdown("# Lesson Plan Generation") | |
with gr.Blocks() as lesson_plan: | |
with gr.Tabs(): | |
with gr.TabItem("POST"): | |
post_interface() | |
with gr.TabItem("GET"): | |
get_interface() | |
return lesson_plan |