Browse Source

fix: not annotation error in log (#686)

takatost 1 year ago
parent
commit
396197e881
2 changed files with 11 additions and 6 deletions
  1. 1 3
      api/controllers/console/app/conversation.py
  2. 10 3
      api/models/model.py

+ 1 - 3
api/controllers/console/app/conversation.py

@@ -249,7 +249,7 @@ class ChatConversationApi(Resource):
         'status': fields.String,
         'from_source': fields.String,
         'from_end_user_id': fields.String,
-        'from_end_user_session_id': fields.String(attribute='end_user.session_id'),
+        'from_end_user_session_id': fields.String,
         'from_account_id': fields.String,
         'summary': fields.String(attribute='summary_or_query'),
         'read_at': TimestampField,
@@ -292,8 +292,6 @@ class ChatConversationApi(Resource):
 
         query = db.select(Conversation).where(Conversation.app_id == app.id, Conversation.mode == 'chat')
 
-        query = query.options(joinedload(Conversation.end_user))
-
         if args['keyword']:
             query = query.join(
                 Message, Message.conversation_id == Conversation.id

+ 10 - 3
api/models/model.py

@@ -226,7 +226,7 @@ class Conversation(db.Model):
     system_instruction_tokens = db.Column(db.Integer, nullable=False, server_default=db.text('0'))
     status = db.Column(db.String(255), nullable=False)
     from_source = db.Column(db.String(255), nullable=False)
-    from_end_user_id = db.Column(UUID, db.ForeignKey('end_users.id'))
+    from_end_user_id = db.Column(UUID)
     from_account_id = db.Column(UUID)
     read_at = db.Column(db.DateTime)
     read_account_id = db.Column(UUID)
@@ -236,8 +236,6 @@ class Conversation(db.Model):
     messages = db.relationship("Message", backref="conversation", lazy='select', passive_deletes="all")
     message_annotations = db.relationship("MessageAnnotation", backref="conversation", lazy='select', passive_deletes="all")
 
-    end_user = db.relationship("EndUser", backref="conversations")
-
     is_deleted = db.Column(db.Boolean, nullable=False, server_default=db.text('false'))
 
     @property
@@ -346,6 +344,15 @@ class Conversation(db.Model):
     def app(self):
         return db.session.query(App).filter(App.id == self.app_id).first()
 
+    @property
+    def from_end_user_session_id(self):
+        if self.from_end_user_id:
+            end_user = db.session.query(EndUser).filter(EndUser.id == self.from_end_user_id).first()
+            if end_user:
+                return end_user.session_id
+
+        return None
+
     @property
     def in_debug_mode(self):
         return self.override_model_configs is not None