Spaces:
Sleeping
Sleeping
Commit
·
e7445ae
1
Parent(s):
e9b6107
updates to the csv and the rules for generating incorrect answers
Browse files- app.py +2 -2
- outputs/professor_guide.csv +10 -0
- uw_programmatic/config.yaml +2 -0
- uw_programmatic/uw_machine.py +29 -12
app.py
CHANGED
@@ -66,7 +66,7 @@ def generate_questions(
|
|
66 |
visible=True, value=f"{Path.cwd().joinpath('outputs/professor_guide.csv')}"
|
67 |
),
|
68 |
gr.update(
|
69 |
-
|
70 |
)
|
71 |
)
|
72 |
|
@@ -81,7 +81,7 @@ def create_statemachine() -> None:
|
|
81 |
raise gr.Error(str(e)) from e
|
82 |
|
83 |
def questions_downloaded() -> dict[str,Any]:
|
84 |
-
return gr.update(interactive=True)
|
85 |
|
86 |
|
87 |
with gr.Blocks() as demo:
|
|
|
66 |
visible=True, value=f"{Path.cwd().joinpath('outputs/professor_guide.csv')}"
|
67 |
),
|
68 |
gr.update(
|
69 |
+
visible=False
|
70 |
)
|
71 |
)
|
72 |
|
|
|
81 |
raise gr.Error(str(e)) from e
|
82 |
|
83 |
def questions_downloaded() -> dict[str,Any]:
|
84 |
+
return gr.update(interactive=True, visible=True)
|
85 |
|
86 |
|
87 |
with gr.Blocks() as demo:
|
outputs/professor_guide.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MC,,1,Identify the strategy B2C services companies use to refine their offerings before scaling.,1,B2C services companies deliver the value manually after conducting presales to refine their offerings before scaling.,"B2C services companies scale first, then conduct presales for feedback. ","B2C services companies refine offerings through automated systems, not presales. ","B2C services companies deliver value digitally, avoiding manual processes. ","B2C services companies start with a global launch, skipping presales. ",98-99, Knowledge
|
2 |
+
MC,,1,Identify the profession of Herbie Hancock mentioned in the textbook.,1,"Herbie Hancock is a jazz musician, composer, and actor.","Herbie Hancock is a blues musician, poet, and photographer.","Herbie Hancock is a pop musician, sculptor, and producer. ","Herbie Hancock is a classical musician, writer, and director. ","Herbie Hancock is a rock musician, painter, and dancer. ",88-90, Knowledge
|
3 |
+
MC,,1,Explain the purpose of using a Split Test in evaluating customer behavior.,3,"A Split Test compares two versions, Control C and Variant B, to determine which performs better in improving customer behavior. ","A Split Test compares two versions, Control A and Variant D, to determine which performs better in improving customer behavior. ","A Split Test compares two versions, Control A and Variant B, to determine which performs better in improving customer behavior.","A Split Test compares two versions, Control B and Variant B, to determine which performs better in improving customer behavior. ","A Split Test compares two versions, Control A and Variant C, to determine which performs better in improving customer behavior. ",270-273, Comprehension
|
4 |
+
MC,,1,Identify the key steps involved in preparing a simple landing page for a presale according to the textbook.,3,"Create a simple landing page, insert price options, show a pop-up on click, and implement email marketing. ","Create a simple landing page, insert price options, show a pop-up on click, and add customer testimonials. ","Create a simple landing page, insert price options, show a pop-up on price option click, and integrate web analytics.","Create a simple landing page, insert price options, show a pop-up on click, and enable social media sharing. ","Create a simple landing page, insert price options, show a pop-up on click, and verify payment processing. ",274-277, Knowledge
|
5 |
+
MC,,1,Identify the purpose of conducting partner and supplier interviews before building a solution.,2,Analyze their potential before implementing the solution independently.,To better understand their capabilities before building it yourself.,Evaluate their resources before constructing the solution yourself. ,Assess their strengths before developing the solution on your own. ,Understand their limitations before creating a solution independently. ,306-309, Knowledge
|
6 |
+
MC,,1,Identify the main advantage of using clickable prototypes over paper prototypes in product design.,4,Clickable prototypes yield fewer insights into customer interactions than paper prototypes. ,Clickable prototypes give minimal insights into customer interactions compared to paper prototypes. ,Clickable prototypes offer less evidence of customer interactions than paper prototypes. ,Clickable prototypes provide stronger evidence and insights into customer interactions than paper prototypes.,Clickable prototypes provide weaker insights into customer interactions than paper prototypes. ,236-239, Knowledge
|
7 |
+
MC,,1,Summarize the key requirements for creating an effective data sheet.,1,"A data sheet requires specifications, a value proposition, and consideration of technical performance and benefits for target customers or partners.","A data sheet demands evidence strength, basic web software, and feasibility testing.","A data sheet involves run time, qualitative insights, and marketing strategies. ","A data sheet needs setup time, partner feedback, and technical insights. ","A data sheet requires cost analysis, customer feedback, and design skills. ",190-193, Comprehension
|
8 |
+
MC,,1,Identify the ideal run time for a Feature Stub experiment to avoid customer frustration.,5,15–20 days,11–14 days ,7–10 days ,4–6 days ,1–3 days,156-159, Knowledge
|
9 |
+
MC,,1,How could social media campaigns be used to increase brand loyalty and drive sales?,4,Social media campaigns can frustrate customers with irrelevant content and interactions. ,Social media campaigns can alienate customers by ignoring their feedback consistently. ,Social media campaigns can confuse customers with inconsistent messages over time. ,Social media campaigns can increase brand loyalty and drive sales by engaging customers through targeted messages and interactions over time.,Social media campaigns can decrease brand loyalty by overwhelming customers. ,168-171, Application
|
10 |
+
MC,,1,Explain how customer support analysis helps businesses with existing customers.,3,Expert stakeholder interviews guide organizations to uncover product deficiencies.,Validation surveys assist firms in discovering customer desires via web traffic. ,"Customer support analysis helps businesses uncover unmet jobs, pains, and gains by analyzing existing customer data.",Sales force feedback aids companies in identifying customer behavior patterns. ,Customer interviews help businesses find unmet needs through stakeholder insights. ,142-145, Comprehension
|
uw_programmatic/config.yaml
CHANGED
@@ -37,6 +37,7 @@ rulesets:
|
|
37 |
- '"Return ONLY a list of 4 incorrect answers. No markdown, no commentary, no
|
38 |
backticks.'
|
39 |
- '"All incorrect answers should be different, but plausible answers to the question.'
|
|
|
40 |
- '"Incorrect answers may reference material from the knowledge base, but must
|
41 |
not be correct answers to the question'
|
42 |
- '"Length of incorrect answers should be 10 words max, 5 words minimum'
|
@@ -49,6 +50,7 @@ rulesets:
|
|
49 |
- '''"do not change anything else in the list.'''
|
50 |
- '''"output only the edited list.'''
|
51 |
- '''Return ONLY a json'''
|
|
|
52 |
- '''No markdown, no commentary, no code, no backticks.'''
|
53 |
- '"Use \" for quotes within the JSON'
|
54 |
specific_question_creator:
|
|
|
37 |
- '"Return ONLY a list of 4 incorrect answers. No markdown, no commentary, no
|
38 |
backticks.'
|
39 |
- '"All incorrect answers should be different, but plausible answers to the question.'
|
40 |
+
- 'If the question references a subject, the incorrect answer should be related to the subject.'
|
41 |
- '"Incorrect answers may reference material from the knowledge base, but must
|
42 |
not be correct answers to the question'
|
43 |
- '"Length of incorrect answers should be 10 words max, 5 words minimum'
|
|
|
50 |
- '''"do not change anything else in the list.'''
|
51 |
- '''"output only the edited list.'''
|
52 |
- '''Return ONLY a json'''
|
53 |
+
- '''Always return a list '''
|
54 |
- '''No markdown, no commentary, no code, no backticks.'''
|
55 |
- '"Use \" for quotes within the JSON'
|
56 |
specific_question_creator:
|
uw_programmatic/uw_machine.py
CHANGED
@@ -115,18 +115,35 @@ class UWMachine(UWBaseMachine):
|
|
115 |
writer = csv.writer(file)
|
116 |
for question in range(len(self.question_list)):
|
117 |
new_row = ["MC", "", 1]
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
self.send("next_state")
|
131 |
|
132 |
def on_event_output_q(self, event_: dict) -> None:
|
|
|
115 |
writer = csv.writer(file)
|
116 |
for question in range(len(self.question_list)):
|
117 |
new_row = ["MC", "", 1]
|
118 |
+
try:
|
119 |
+
new_row.append(self.question_list[question]["Question"])
|
120 |
+
wrong_answers = list(self.question_list[question]["Wrong Answers"])
|
121 |
+
column = random.randint(1, len(wrong_answers) + 1)
|
122 |
+
new_row.append(column)
|
123 |
+
for i in range(1, len(wrong_answers) + 2):
|
124 |
+
if i == column:
|
125 |
+
new_row.append(self.question_list[question]["Answer"])
|
126 |
+
else:
|
127 |
+
wrong_answer = wrong_answers.pop()
|
128 |
+
if not wrong_answer:
|
129 |
+
wrong_answer = ""
|
130 |
+
new_row.append(wrong_answer)
|
131 |
+
new_row.append(self.question_list[question]["Page"])
|
132 |
+
new_row.append(self.question_list[question]["Taxonomy"])
|
133 |
+
writer.writerow(new_row)
|
134 |
+
except KeyError:
|
135 |
+
new_row.append(self.question_list["Question"])
|
136 |
+
wrong_answers = list(self.question_list["Wrong Answers"])
|
137 |
+
column = random.randint(1, len(wrong_answers) + 1)
|
138 |
+
new_row.append(column)
|
139 |
+
for i in range(1, len(wrong_answers) + 2):
|
140 |
+
if i == column:
|
141 |
+
new_row.append(self.question_list["Answer"])
|
142 |
+
else:
|
143 |
+
new_row.append(wrong_answers.pop())
|
144 |
+
new_row.append(self.question_list["Page"])
|
145 |
+
new_row.append(self.question_list["Taxonomy"])
|
146 |
+
writer.writerow(new_row)
|
147 |
self.send("next_state")
|
148 |
|
149 |
def on_event_output_q(self, event_: dict) -> None:
|