Spaces:
Runtime error
Runtime error
File size: 2,951 Bytes
05140a3 7eaefa4 5f079a9 7eaefa4 65cc865 7eaefa4 cf17b13 7eaefa4 cf17b13 c31c636 7eaefa4 c31c636 7eaefa4 c31c636 7eaefa4 c31c636 7eaefa4 cf17b13 7eaefa4 cf17b13 7eaefa4 8f687fb 7eaefa4 c31c636 7eaefa4 7b9061c 24cc048 ee7bc16 41d1888 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import gradio as gr
import json
from transformers import pipeline
# Load the pipeline
tourModel = pipeline(model="manhan/GPT-Tour")
def getTour(income,size,years,sex,edu,wrk):
# person = a dict with person-level and hh-level attributes:
person = {}
hh_income = int(income)
if hh_income<25000: # $25,000
person['hh_inc'] = 'poor'
elif hh_income<50000: # $50,000
person['hh_inc'] = 'low'
elif hh_income<75000: # $75,000
person['hh_inc'] = 'medium'
elif hh_income<125000: # $125,000
person['hh_inc'] = 'high'
else: # over
person['hh_inc'] = 'affluent'
hh_size = int(size)
if hh_size == 1:
person['hh_size'] = 'single'
elif hh_size == 2:
person['hh_size'] = 'couple'
elif hh_size <= 4:
person['hh_size'] = 'small'
else: # more than four people
person['hh_size'] = 'large'
age = int(years)
if age < 18:
person['age_grp'] = 'child'
elif age < 45:
person['age_grp'] = 'younger'
elif age < 65:
person['age_grp'] = 'older'
else:
person['age_grp'] = 'senior'
person['sex'] = sex
person['edu'] = edu
person['wrk'] = wrk
activity_list = []
prompt = json.dumps(person)[:-1] + ", pattern: "
print(person)
while not activity_list:
generated = tourModel(prompt, return_full_text=False, max_length=250, temperature=0.9)[0]['generated_text']
#print(f"{generated}")
start_pos = generated.find('[')
end_pos = generated.find(']')+1
activity_list_str = generated[start_pos:end_pos]
print(f"Extracted: '{activity_list_str}'")
#if person['wrk']=='yes' and activity_list_str.find('Work')==-1:
# continue # try again
#if person['wrk']=='no' and activity_list_str.find('Work')>0:
# continue # try again
if activity_list_str:
try:
activity_list = json.loads(activity_list_str)
if activity_list[-1]!='Home':
activity_list=[]
continue
break
except Exception as e:
print("Error parsing activity list")
print(e)
else:
print("Nothing extracted!")
return activity_list
with gr.Interface(fn=getTour, inputs=[
gr.Textbox(label="Annual Household Income (in dollars)"),
gr.Textbox(label="Household Size (number of people)"),
gr.Textbox(label="Traveler Age (years)"),
gr.Dropdown(["unknown", "male", "female"], label="Gender/sex"),
gr.Dropdown(["unknown", "grade school","highschool", "associates", "bachelors", "graduate"], label="Educational attainment level"),
gr.Dropdown(["unknown", "yes","no"], label="Worker status")],
outputs=["json"], title="GPT-Travel", description="Author: Colby Brown, Manhan (colby@manhangroup.com)", allow_flagging='never') as iface:
iface.launch() |