浏览代码

Compatible with the situation where there is no user information. (#1792)

Co-authored-by: jyong <jyong@dify.ai>
Jyong 1 年之前
父节点
当前提交
185c2f86cd
共有 2 个文件被更改,包括 13 次插入3 次删除
  1. 3 2
      api/fields/conversation_fields.py
  2. 10 1
      api/models/model.py

+ 3 - 2
api/fields/conversation_fields.py

@@ -31,8 +31,9 @@ annotation_fields = {
 }
 
 annotation_hit_history_fields = {
-    'annotation_id': fields.String,
-    'annotation_create_account': fields.Nested(account_fields, allow_null=True)
+    'annotation_id': fields.String(attribute='id'),
+    'annotation_create_account': fields.Nested(account_fields, allow_null=True),
+    'created_at': TimestampField
 }
 
 message_file_fields = {

+ 10 - 1
api/models/model.py

@@ -531,7 +531,11 @@ class Message(db.Model):
     def annotation_hit_history(self):
         annotation_history = (db.session.query(AppAnnotationHitHistory)
                               .filter(AppAnnotationHitHistory.message_id == self.id).first())
-        return annotation_history
+        if annotation_history:
+            annotation = (db.session.query(MessageAnnotation).
+                          filter(MessageAnnotation.id == annotation_history.annotation_id).first())
+            return annotation
+        return None
 
     @property
     def app_model_config(self):
@@ -659,6 +663,11 @@ class MessageAnnotation(db.Model):
         account = db.session.query(Account).filter(Account.id == self.account_id).first()
         return account
 
+    @property
+    def annotation_create_account(self):
+        account = db.session.query(Account).filter(Account.id == self.account_id).first()
+        return account
+
 
 class AppAnnotationHitHistory(db.Model):
     __tablename__ = 'app_annotation_hit_histories'