Spaces:
Runtime error
Runtime error
Update chatbot.py
Browse files- chatbot.py +74 -30
chatbot.py
CHANGED
|
@@ -138,10 +138,18 @@ Let's start by exploring your innovative idea! What's the name of your idea, or
|
|
| 138 |
setattr(self.idea_form, stage["field"], form_data[stage["field"]])
|
| 139 |
|
| 140 |
# Save to database
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
|
| 146 |
return form_data
|
| 147 |
|
|
@@ -157,15 +165,60 @@ Let's start by exploring your innovative idea! What's the name of your idea, or
|
|
| 157 |
self.idea_id = None
|
| 158 |
self.current_stage = None
|
| 159 |
self.add_system_message(self.get_initial_greeting())
|
| 160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
return self.chat_history, self.idea_form.dict()
|
| 162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
def update_idea_form(self, stage_name: str, form_data: str):
|
| 164 |
setattr(self.idea_form, stage_name.lower().replace(" ", "_"), form_data)
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
|
| 170 |
def generate_form_data(self, stage: str, model: str, thinking_budget: int) -> str:
|
| 171 |
# Prepare the conversation history for the LLM
|
|
@@ -204,23 +257,6 @@ Let's start by exploring your innovative idea! What's the name of your idea, or
|
|
| 204 |
|
| 205 |
return form_data.get(stage, "")
|
| 206 |
|
| 207 |
-
def start_over(self):
|
| 208 |
-
self.reset()
|
| 209 |
-
clear_database(self.db)
|
| 210 |
-
self.idea_id = None
|
| 211 |
-
|
| 212 |
-
# Reinitialize with a new empty idea
|
| 213 |
-
new_idea = InnovativeIdea()
|
| 214 |
-
self.db.add(new_idea)
|
| 215 |
-
self.db.commit()
|
| 216 |
-
self.idea_id = new_idea.id
|
| 217 |
-
|
| 218 |
-
self.idea_form = IdeaForm()
|
| 219 |
-
self.chat_history = []
|
| 220 |
-
self.add_system_message(self.get_initial_greeting())
|
| 221 |
-
|
| 222 |
-
return self.chat_history, self.idea_form.dict()
|
| 223 |
-
|
| 224 |
def process_stage_input_stream(self, stage_name: str, message: str, model: str, system_prompt: str, thinking_budget: int):
|
| 225 |
if self.current_stage != stage_name:
|
| 226 |
activation_message = self.activate_stage(stage_name)
|
|
@@ -281,10 +317,18 @@ Let's start by exploring your innovative idea! What's the name of your idea, or
|
|
| 281 |
setattr(self.idea_form, stage.field, form_data[stage.name])
|
| 282 |
|
| 283 |
# Save to database
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 288 |
|
| 289 |
def generate_form_data_stream(self, stage: str, model: str, thinking_budget: int):
|
| 290 |
conversation = "\n".join([f"{role}: {message}" for role, message in self.chat_history])
|
|
|
|
| 138 |
setattr(self.idea_form, stage["field"], form_data[stage["field"]])
|
| 139 |
|
| 140 |
# Save to database
|
| 141 |
+
try:
|
| 142 |
+
new_session = SessionLocal()
|
| 143 |
+
if self.idea_id:
|
| 144 |
+
update_idea_in_database(self.idea_id, self.idea_form, new_session)
|
| 145 |
+
else:
|
| 146 |
+
self.idea_id = save_idea_to_database(self.idea_form, new_session)
|
| 147 |
+
new_session.commit()
|
| 148 |
+
except Exception as e:
|
| 149 |
+
logging.error(f"Error saving idea to database: {str(e)}")
|
| 150 |
+
new_session.rollback()
|
| 151 |
+
finally:
|
| 152 |
+
new_session.close()
|
| 153 |
|
| 154 |
return form_data
|
| 155 |
|
|
|
|
| 165 |
self.idea_id = None
|
| 166 |
self.current_stage = None
|
| 167 |
self.add_system_message(self.get_initial_greeting())
|
| 168 |
+
try:
|
| 169 |
+
new_session = SessionLocal()
|
| 170 |
+
clear_database(new_session)
|
| 171 |
+
new_session.commit()
|
| 172 |
+
except Exception as e:
|
| 173 |
+
logging.error(f"Error clearing database: {str(e)}")
|
| 174 |
+
new_session.rollback()
|
| 175 |
+
finally:
|
| 176 |
+
new_session.close()
|
| 177 |
return self.chat_history, self.idea_form.dict()
|
| 178 |
|
| 179 |
+
def start_over(self):
|
| 180 |
+
self.chat_history = []
|
| 181 |
+
self.idea_form = IdeaForm()
|
| 182 |
+
self.current_stage = None
|
| 183 |
+
self.add_system_message(self.get_initial_greeting())
|
| 184 |
+
|
| 185 |
+
try:
|
| 186 |
+
new_session = SessionLocal()
|
| 187 |
+
# Clear the existing database
|
| 188 |
+
clear_database(new_session)
|
| 189 |
+
|
| 190 |
+
# Create a new empty idea
|
| 191 |
+
new_idea = InnovativeIdea()
|
| 192 |
+
new_session.add(new_idea)
|
| 193 |
+
new_session.commit()
|
| 194 |
+
new_session.refresh(new_idea)
|
| 195 |
+
|
| 196 |
+
# Update the idea_id
|
| 197 |
+
self.idea_id = new_idea.id
|
| 198 |
+
|
| 199 |
+
new_session.close()
|
| 200 |
+
except Exception as e:
|
| 201 |
+
logging.error(f"Error in start_over: {str(e)}")
|
| 202 |
+
if 'new_session' in locals():
|
| 203 |
+
new_session.rollback()
|
| 204 |
+
new_session.close()
|
| 205 |
+
|
| 206 |
+
return self.chat_history, self.idea_form.dict(), STAGES[0]["name"]
|
| 207 |
+
|
| 208 |
def update_idea_form(self, stage_name: str, form_data: str):
|
| 209 |
setattr(self.idea_form, stage_name.lower().replace(" ", "_"), form_data)
|
| 210 |
+
try:
|
| 211 |
+
new_session = SessionLocal()
|
| 212 |
+
if self.idea_id:
|
| 213 |
+
update_idea_in_database(self.idea_id, self.idea_form, new_session)
|
| 214 |
+
else:
|
| 215 |
+
self.idea_id = save_idea_to_database(self.idea_form, new_session)
|
| 216 |
+
new_session.commit()
|
| 217 |
+
except Exception as e:
|
| 218 |
+
logging.error(f"Error updating idea form: {str(e)}")
|
| 219 |
+
new_session.rollback()
|
| 220 |
+
finally:
|
| 221 |
+
new_session.close()
|
| 222 |
|
| 223 |
def generate_form_data(self, stage: str, model: str, thinking_budget: int) -> str:
|
| 224 |
# Prepare the conversation history for the LLM
|
|
|
|
| 257 |
|
| 258 |
return form_data.get(stage, "")
|
| 259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 260 |
def process_stage_input_stream(self, stage_name: str, message: str, model: str, system_prompt: str, thinking_budget: int):
|
| 261 |
if self.current_stage != stage_name:
|
| 262 |
activation_message = self.activate_stage(stage_name)
|
|
|
|
| 317 |
setattr(self.idea_form, stage.field, form_data[stage.name])
|
| 318 |
|
| 319 |
# Save to database
|
| 320 |
+
try:
|
| 321 |
+
new_session = SessionLocal()
|
| 322 |
+
if self.idea_id:
|
| 323 |
+
update_idea_in_database(self.idea_id, self.idea_form, new_session)
|
| 324 |
+
else:
|
| 325 |
+
self.idea_id = save_idea_to_database(self.idea_form, new_session)
|
| 326 |
+
new_session.commit()
|
| 327 |
+
except Exception as e:
|
| 328 |
+
logging.error(f"Error saving idea to database: {str(e)}")
|
| 329 |
+
new_session.rollback()
|
| 330 |
+
finally:
|
| 331 |
+
new_session.close()
|
| 332 |
|
| 333 |
def generate_form_data_stream(self, stage: str, model: str, thinking_budget: int):
|
| 334 |
conversation = "\n".join([f"{role}: {message}" for role, message in self.chat_history])
|