Spaces:
Sleeping
Sleeping
import json | |
import time | |
import os | |
from datetime import datetime | |
import gradio as gr | |
import requests | |
url = os.environ.get('URL') | |
def process_and_render(prompt, name, type, gender, nationality, min_age, max_age, major, interest): | |
payload = { | |
"prompt": prompt, | |
"name": name, | |
"type": type, | |
"gender": gender, | |
"nationality": nationality, | |
"min_age": min_age, | |
"max_age": max_age, | |
"major": major, | |
"interest": interest | |
} | |
response = requests.post(url, json=payload) | |
if response.status_code == 200: | |
print("Success!") | |
# print(response.json()) | |
return response.json()['data'] | |
else: | |
print(f"Failed with status code: {response.status_code}") | |
print(response.text) | |
return response.text | |
with gr.Blocks() as demo: | |
gr.Markdown("# SNU Buddy Spring 2024 Search Engine") | |
prompt = gr.Textbox(label="Enter your prompt", placeholder="Who is the most out going?") | |
with gr.Row(): | |
name = gr.Textbox(label="Name") | |
type = gr.CheckboxGroup(label="Student Type", choices=["SNU", "Exchange"]) | |
gender = gr.CheckboxGroup(label="Gender", choices=["Male", "Female"]) | |
with gr.Row(): | |
min_age = gr.Number(label="Minimum Age", value=0) | |
max_age = gr.Number(label="Maximum Age", value=100) | |
with gr.Row(): | |
nationality = gr.CheckboxGroup(label="Nationality", choices=["South Korea", "United States of America", "Australia", "Canada", "China", "France", "Germany", "Ireland", "Japan", "New Zealand", "Norway", "Singapore", "Sweden", "Switzerland", "United Kingdom"]) | |
major = gr.CheckboxGroup(label="Major", choices=["Asia", "Art", "Business", "Bio", "Computer Science", "Economics", "Engineering", "Film", "History", "International", "Korea", "Law", "Linguistics", "Math", "Media", "Medicine", "Philosophy", "Politic"]) | |
interest = gr.Textbox(label="Interests & Hobbies (Separate each keyword with a comma)", placeholder="sports, music, movie") | |
submit = gr.Button("Search") | |
html_output = gr.HTML() # Output as HTML | |
submit.click(process_and_render, inputs=[prompt, name, type, gender, nationality, min_age, max_age, major, interest], outputs=[html_output]) | |
# This line is key for generating a public URL | |
demo.launch() | |