Marcus Posey commited on
Commit
9fa792a
·
1 Parent(s): b162204

Fix logging

Browse files
Files changed (1) hide show
  1. app.py +19 -13
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, chat_A, chat_B, chat_C):
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
- return chats
 
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"] if model_mapping["Model A"] == "rephrase" else
204
- model_responses["Model_B"] if model_mapping["Model B"] == "rephrase" else model_responses["Model_C"],
205
- "rephrase_summarize_response": model_responses["Model_A"] if model_mapping["Model A"] == "rephrase_summarize" else
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']] + list(chat_interfaces.values()),
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