Spaces:
Runtime error
Runtime error
Marcus Posey
commited on
Commit
·
9fa792a
1
Parent(s):
b162204
Fix logging
Browse files
app.py
CHANGED
@@ -31,8 +31,9 @@ model_responses = {"Model_A": "", "Model_B": "", "Model_C": ""}
|
|
31 |
|
32 |
|
33 |
class ModelManager:
|
34 |
-
def __init__(self):
|
35 |
self.book_model_assignments = {}
|
|
|
36 |
self.model_A = Client("mep296/llama-3-8b-rephrase-quality")
|
37 |
self.model_B = Client("mep296/llama-3-8b-rephrase-summarize-quality")
|
38 |
self.model_C = Client("mep296/llama-3-8b-entigraph-quality")
|
@@ -83,6 +84,9 @@ class ModelManager:
|
|
83 |
}
|
84 |
return self.book_model_assignments[book]
|
85 |
|
|
|
|
|
|
|
86 |
|
87 |
class SheetManager:
|
88 |
def __init__(self):
|
@@ -107,9 +111,10 @@ class SheetManager:
|
|
107 |
|
108 |
class ModelComparisonApp:
|
109 |
def __init__(self):
|
110 |
-
self.model_manager = ModelManager()
|
111 |
self.sheet_manager = SheetManager()
|
112 |
self.votes = []
|
|
|
113 |
self.selected_book_string = BOOK_MAPPING["Spaceman on a Spree"]
|
114 |
self.selected_category_string = ""
|
115 |
self.chat_history_A = []
|
@@ -171,12 +176,14 @@ class ModelComparisonApp:
|
|
171 |
'send': gr.Button("Send", scale=0, variant="primary", interactive=False)
|
172 |
}
|
173 |
|
174 |
-
def respond(self, message
|
175 |
if not message.strip():
|
176 |
raise gr.Error("Message cannot be empty!")
|
177 |
|
178 |
prompt = f"{self.selected_book_string} {message}"
|
179 |
-
|
|
|
|
|
180 |
responses = self.model_manager.get_all_model_responses(prompt)
|
181 |
|
182 |
chats = []
|
@@ -185,8 +192,9 @@ class ModelComparisonApp:
|
|
185 |
chat.append({"role": "user", "content": prompt})
|
186 |
chat.append({"role": "assistant", "content": response})
|
187 |
chats.append(chat)
|
188 |
-
|
189 |
-
|
|
|
190 |
|
191 |
def get_votes(self, book, category, question, rating_A, rating_B, rating_C):
|
192 |
model_mapping = self.model_manager.get_book_model_mapping(book)
|
@@ -200,12 +208,9 @@ class ModelComparisonApp:
|
|
200 |
rating_B if model_mapping["Model B"] == "rephrase_summarize" else rating_C,
|
201 |
"entigraph_rating": rating_A if model_mapping["Model A"] == "entigraph" else
|
202 |
rating_B if model_mapping["Model B"] == "entigraph" else rating_C,
|
203 |
-
"rephrase_response": model_responses["Model_A"]
|
204 |
-
|
205 |
-
"
|
206 |
-
model_responses["Model_B"] if model_mapping["Model B"] == "rephrase_summarize" else model_responses["Model_C"],
|
207 |
-
"entigraph_response": model_responses["Model_A"] if model_mapping["Model A"] == "entigraph" else
|
208 |
-
model_responses["Model_B"] if model_mapping["Model B"] == "entigraph" else model_responses["Model_C"]
|
209 |
}
|
210 |
|
211 |
self.votes.append(rating_data)
|
@@ -220,6 +225,7 @@ class ModelComparisonApp:
|
|
220 |
return gr.update(interactive=bool(model_A and model_B and model_C))
|
221 |
|
222 |
def update_selected_book(book_selection):
|
|
|
223 |
self.selected_book_string = BOOK_MAPPING.get(book_selection, "")
|
224 |
return self.selected_book_string
|
225 |
|
@@ -245,7 +251,7 @@ class ModelComparisonApp:
|
|
245 |
|
246 |
input_elements['send'].click(
|
247 |
self.respond,
|
248 |
-
inputs=[input_elements['question']]
|
249 |
outputs=list(chat_interfaces.values())
|
250 |
)
|
251 |
|
|
|
31 |
|
32 |
|
33 |
class ModelManager:
|
34 |
+
def __init__(self, books):
|
35 |
self.book_model_assignments = {}
|
36 |
+
self.assign_models_to_books(books)
|
37 |
self.model_A = Client("mep296/llama-3-8b-rephrase-quality")
|
38 |
self.model_B = Client("mep296/llama-3-8b-rephrase-summarize-quality")
|
39 |
self.model_C = Client("mep296/llama-3-8b-entigraph-quality")
|
|
|
84 |
}
|
85 |
return self.book_model_assignments[book]
|
86 |
|
87 |
+
def assign_models_to_books(self, books):
|
88 |
+
for book in books:
|
89 |
+
self.get_book_model_mapping(book)
|
90 |
|
91 |
class SheetManager:
|
92 |
def __init__(self):
|
|
|
111 |
|
112 |
class ModelComparisonApp:
|
113 |
def __init__(self):
|
114 |
+
self.model_manager = ModelManager(BOOK_MAPPING.keys())
|
115 |
self.sheet_manager = SheetManager()
|
116 |
self.votes = []
|
117 |
+
self.selected_book = "Spaceman on a Spree"
|
118 |
self.selected_book_string = BOOK_MAPPING["Spaceman on a Spree"]
|
119 |
self.selected_category_string = ""
|
120 |
self.chat_history_A = []
|
|
|
176 |
'send': gr.Button("Send", scale=0, variant="primary", interactive=False)
|
177 |
}
|
178 |
|
179 |
+
def respond(self, message):
|
180 |
if not message.strip():
|
181 |
raise gr.Error("Message cannot be empty!")
|
182 |
|
183 |
prompt = f"{self.selected_book_string} {message}"
|
184 |
+
mapping_dict = self.model_manager.book_model_assignments[self.selected_book]
|
185 |
+
model_order = ["rephrase", "rephrase_summarize", "entigraph"]
|
186 |
+
model_to_index = {model: i for i, model in enumerate(model_order)}
|
187 |
responses = self.model_manager.get_all_model_responses(prompt)
|
188 |
|
189 |
chats = []
|
|
|
192 |
chat.append({"role": "user", "content": prompt})
|
193 |
chat.append({"role": "assistant", "content": response})
|
194 |
chats.append(chat)
|
195 |
+
|
196 |
+
reordered_chats = [chats[model_to_index[mapping_dict[model]]] for model in ["Model A", "Model B", "Model C"]]
|
197 |
+
return reordered_chats
|
198 |
|
199 |
def get_votes(self, book, category, question, rating_A, rating_B, rating_C):
|
200 |
model_mapping = self.model_manager.get_book_model_mapping(book)
|
|
|
208 |
rating_B if model_mapping["Model B"] == "rephrase_summarize" else rating_C,
|
209 |
"entigraph_rating": rating_A if model_mapping["Model A"] == "entigraph" else
|
210 |
rating_B if model_mapping["Model B"] == "entigraph" else rating_C,
|
211 |
+
"rephrase_response": model_responses["Model_A"],
|
212 |
+
"rephrase_summarize_response": model_responses["Model_B"],
|
213 |
+
"entigraph_response": model_responses["Model_C"]
|
|
|
|
|
|
|
214 |
}
|
215 |
|
216 |
self.votes.append(rating_data)
|
|
|
225 |
return gr.update(interactive=bool(model_A and model_B and model_C))
|
226 |
|
227 |
def update_selected_book(book_selection):
|
228 |
+
self.selected_book = book_selection
|
229 |
self.selected_book_string = BOOK_MAPPING.get(book_selection, "")
|
230 |
return self.selected_book_string
|
231 |
|
|
|
251 |
|
252 |
input_elements['send'].click(
|
253 |
self.respond,
|
254 |
+
inputs=[input_elements['question']],
|
255 |
outputs=list(chat_interfaces.values())
|
256 |
)
|
257 |
|