Kevin Hu commited on
Commit
85d3c0e
·
1 Parent(s): 0bb19dd

Add timestamp to messages (#4624)

Browse files

### What problem does this PR solve?


### Type of change

- [x] New Feature (non-breaking change which adds functionality)

api/db/services/canvas_service.py CHANGED
@@ -14,6 +14,7 @@
14
  # limitations under the License.
15
  #
16
  import json
 
17
  import traceback
18
  from uuid import uuid4
19
  from agent.canvas import Canvas
@@ -80,7 +81,7 @@ def completion(tenant_id, agent_id, question, session_id=None, stream=True, **kw
80
  "id": session_id,
81
  "dialog_id": cvs.id,
82
  "user_id": kwargs.get("user_id", "") if isinstance(kwargs, dict) else "",
83
- "message": [{"role": "assistant", "content": canvas.get_prologue()}],
84
  "source": "agent",
85
  "dsl": cvs.dsl
86
  }
@@ -134,7 +135,7 @@ def completion(tenant_id, agent_id, question, session_id=None, stream=True, **kw
134
  yield "data:" + json.dumps({"code": 0, "message": "", "data": ans},
135
  ensure_ascii=False) + "\n\n"
136
 
137
- canvas.messages.append({"role": "assistant", "content": final_ans["content"], "id": message_id})
138
  canvas.history.append(("assistant", final_ans["content"]))
139
  if final_ans.get("reference"):
140
  canvas.reference.append(final_ans["reference"])
 
14
  # limitations under the License.
15
  #
16
  import json
17
+ import time
18
  import traceback
19
  from uuid import uuid4
20
  from agent.canvas import Canvas
 
81
  "id": session_id,
82
  "dialog_id": cvs.id,
83
  "user_id": kwargs.get("user_id", "") if isinstance(kwargs, dict) else "",
84
+ "message": [{"role": "assistant", "content": canvas.get_prologue(), "created_at": time.time()}],
85
  "source": "agent",
86
  "dsl": cvs.dsl
87
  }
 
135
  yield "data:" + json.dumps({"code": 0, "message": "", "data": ans},
136
  ensure_ascii=False) + "\n\n"
137
 
138
+ canvas.messages.append({"role": "assistant", "content": final_ans["content"], "created_at": time.time(), "id": message_id})
139
  canvas.history.append(("assistant", final_ans["content"]))
140
  if final_ans.get("reference"):
141
  canvas.reference.append(final_ans["reference"])
api/db/services/conversation_service.py CHANGED
@@ -13,6 +13,7 @@
13
  # See the License for the specific language governing permissions and
14
  # limitations under the License.
15
  #
 
16
  from uuid import uuid4
17
  from api.db import StatusEnum
18
  from api.db.db_models import Conversation, DB
@@ -75,9 +76,9 @@ def structure_answer(conv, ans, message_id, session_id):
75
  if not conv.message:
76
  conv.message = []
77
  if not conv.message or conv.message[-1].get("role", "") != "assistant":
78
- conv.message.append({"role": "assistant", "content": ans["answer"], "id": message_id})
79
  else:
80
- conv.message[-1] = {"role": "assistant", "content": ans["answer"], "id": message_id}
81
  if conv.reference:
82
  conv.reference[-1] = reference
83
  return ans
@@ -94,7 +95,7 @@ def completion(tenant_id, chat_id, question, name="New session", session_id=None
94
  "id": session_id,
95
  "dialog_id": chat_id,
96
  "name": name,
97
- "message": [{"role": "assistant", "content": dia[0].prompt_config.get("prologue")}],
98
  "user_id": kwargs.get("user_id", "")
99
  }
100
  ConversationService.save(**conv)
@@ -166,7 +167,7 @@ def iframe_completion(dialog_id, question, session_id=None, stream=True, **kwarg
166
  "id": session_id,
167
  "dialog_id": dialog_id,
168
  "user_id": kwargs.get("user_id", ""),
169
- "message": [{"role": "assistant", "content": dia.prompt_config["prologue"]}]
170
  }
171
  API4ConversationService.save(**conv)
172
  yield "data:" + json.dumps({"code": 0, "message": "",
 
13
  # See the License for the specific language governing permissions and
14
  # limitations under the License.
15
  #
16
+ import time
17
  from uuid import uuid4
18
  from api.db import StatusEnum
19
  from api.db.db_models import Conversation, DB
 
76
  if not conv.message:
77
  conv.message = []
78
  if not conv.message or conv.message[-1].get("role", "") != "assistant":
79
+ conv.message.append({"role": "assistant", "content": ans["answer"], "created_at": time.time(), "id": message_id})
80
  else:
81
+ conv.message[-1] = {"role": "assistant", "content": ans["answer"], "created_at": time.time(), "id": message_id}
82
  if conv.reference:
83
  conv.reference[-1] = reference
84
  return ans
 
95
  "id": session_id,
96
  "dialog_id": chat_id,
97
  "name": name,
98
+ "message": [{"role": "assistant", "content": dia[0].prompt_config.get("prologue"), "created_at": time.time()}],
99
  "user_id": kwargs.get("user_id", "")
100
  }
101
  ConversationService.save(**conv)
 
167
  "id": session_id,
168
  "dialog_id": dialog_id,
169
  "user_id": kwargs.get("user_id", ""),
170
+ "message": [{"role": "assistant", "content": dia.prompt_config["prologue"], "created_at": time.time()}]
171
  }
172
  API4ConversationService.save(**conv)
173
  yield "data:" + json.dumps({"code": 0, "message": "",