anhkhoiphan commited on
Commit
5de8b59
·
1 Parent(s): 2ac6bb5

Thêm hàm format_created_at

Browse files
Files changed (2) hide show
  1. tools/memory.py +6 -9
  2. tools/utils.py +14 -3
tools/memory.py CHANGED
@@ -9,16 +9,9 @@ from typing import Optional
9
  from pydantic import BaseModel, Field
10
 
11
  from .base import register_tool
 
12
  from ..redis_client import redis_client
13
 
14
-
15
- def _format_memory_timestamp(ts) -> str:
16
- try:
17
- dt = datetime.fromtimestamp(int(ts) / 1000, tz=timezone.utc)
18
- return dt.strftime("%B %d, %Y, %H:%M:%S UTC")
19
- except (ValueError, TypeError):
20
- return str(ts)
21
-
22
  logger = logging.getLogger(__name__)
23
 
24
  @register_tool(
@@ -71,7 +64,11 @@ def tool_get_memories(query: str = None, limit: int = 100) -> dict:
71
  memories = redis_client.list_memories(query=query, limit=limit)
72
  for mem in memories:
73
  if "timestamp" in mem:
74
- mem["timestamp"] = _format_memory_timestamp(mem["timestamp"])
 
 
 
 
75
  return {
76
  "status": "success",
77
  "count": len(memories),
 
9
  from pydantic import BaseModel, Field
10
 
11
  from .base import register_tool
12
+ from .utils import format_created_at
13
  from ..redis_client import redis_client
14
 
 
 
 
 
 
 
 
 
15
  logger = logging.getLogger(__name__)
16
 
17
  @register_tool(
 
64
  memories = redis_client.list_memories(query=query, limit=limit)
65
  for mem in memories:
66
  if "timestamp" in mem:
67
+ try:
68
+ iso = datetime.fromtimestamp(int(mem["timestamp"]) / 1000, tz=timezone.utc).isoformat()
69
+ except (ValueError, TypeError):
70
+ iso = str(mem["timestamp"])
71
+ mem["timestamp"] = format_created_at(iso)
72
  return {
73
  "status": "success",
74
  "count": len(memories),
tools/utils.py CHANGED
@@ -1,6 +1,17 @@
1
  import re
2
  import json
3
  from collections import defaultdict
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  def extract_metadata_from_messages(messages: list[dict]) -> dict:
6
  """
@@ -67,9 +78,9 @@ def format_thread_for_prompt(room_id: str, messages: list[dict]) -> str:
67
  """
68
  lines = []
69
  for msg in messages:
70
- # Use senderName as defined in docs/redis-data-structure.md
71
- timestamp = msg.get("timestamp", "??:??")
72
- user = msg.get("senderName", "Unknown")
73
  content = msg.get("content", "")
74
  lines.append(f"[{timestamp}] {user}: {content}")
75
 
 
1
  import re
2
  import json
3
  from collections import defaultdict
4
+ from datetime import datetime, timezone
5
+
6
+
7
+ def format_created_at(raw: str) -> str:
8
+ if not raw:
9
+ return "Unknown time"
10
+ try:
11
+ dt = datetime.fromisoformat(raw).astimezone(timezone.utc)
12
+ return dt.strftime("%B %d, %Y, %H:%M:%S UTC")
13
+ except (ValueError, TypeError):
14
+ return raw
15
 
16
  def extract_metadata_from_messages(messages: list[dict]) -> dict:
17
  """
 
78
  """
79
  lines = []
80
  for msg in messages:
81
+ raw_ts = msg.get("created_at") or msg.get("timestamp", "")
82
+ timestamp = format_created_at(raw_ts) if raw_ts else "Unknown time"
83
+ user = msg.get("name") or msg.get("senderName") or msg.get("sender_id", "Unknown")
84
  content = msg.get("content", "")
85
  lines.append(f"[{timestamp}] {user}: {content}")
86