diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index 356e20d60..fa9cb52a7 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -495,10 +495,16 @@ def select_datasource(self): _engine_type = self.chat_question.engine _chat.engine_type = _ds.type_name # save chat - self.session.add(_chat) - self.session.flush() - self.session.refresh(_chat) - self.session.commit() + with self.session.begin_nested(): + # 为了能继续记日志,先单独处理下事务 + try: + self.session.add(_chat) + self.session.flush() + self.session.refresh(_chat) + self.session.commit() + except Exception as e: + self.session.rollback() + raise e elif data['fail']: raise SingleMessageError(data['fail'])