Add order parameter to MessageHistoryComponent and MonitorService
This commit is contained in:
parent
f7342b5be6
commit
a53c812716
4 changed files with 15 additions and 2 deletions
|
|
@ -26,6 +26,12 @@ class MessageHistoryComponent(CustomComponent):
|
||||||
"info": "Session ID of the chat history.",
|
"info": "Session ID of the chat history.",
|
||||||
"input_types": ["Text"],
|
"input_types": ["Text"],
|
||||||
},
|
},
|
||||||
|
"order": {
|
||||||
|
"options": ["Ascending", "Descending"],
|
||||||
|
"display_name": "Order",
|
||||||
|
"info": "Order of the messages.",
|
||||||
|
"advanced": True,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def build(
|
def build(
|
||||||
|
|
@ -34,7 +40,9 @@ class MessageHistoryComponent(CustomComponent):
|
||||||
sender_name: Optional[str] = None,
|
sender_name: Optional[str] = None,
|
||||||
session_id: Optional[str] = None,
|
session_id: Optional[str] = None,
|
||||||
n_messages: int = 5,
|
n_messages: int = 5,
|
||||||
|
order: Optional[str] = "Descending",
|
||||||
) -> List[Record]:
|
) -> List[Record]:
|
||||||
|
order = "DESC" if order == "Descending" else "ASC"
|
||||||
if sender == "Machine and User":
|
if sender == "Machine and User":
|
||||||
sender = None
|
sender = None
|
||||||
messages = get_messages(
|
messages = get_messages(
|
||||||
|
|
@ -42,6 +50,7 @@ class MessageHistoryComponent(CustomComponent):
|
||||||
sender_name=sender_name,
|
sender_name=sender_name,
|
||||||
session_id=session_id,
|
session_id=session_id,
|
||||||
limit=n_messages,
|
limit=n_messages,
|
||||||
|
order=order,
|
||||||
)
|
)
|
||||||
self.status = messages
|
self.status = messages
|
||||||
return messages
|
return messages
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ def get_messages(
|
||||||
sender_name: Optional[str] = None,
|
sender_name: Optional[str] = None,
|
||||||
session_id: Optional[str] = None,
|
session_id: Optional[str] = None,
|
||||||
order_by: Optional[str] = "timestamp",
|
order_by: Optional[str] = "timestamp",
|
||||||
|
order: Optional[str] = "DESC",
|
||||||
limit: Optional[int] = None,
|
limit: Optional[int] = None,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
|
|
@ -34,6 +35,7 @@ def get_messages(
|
||||||
session_id=session_id,
|
session_id=session_id,
|
||||||
order_by=order_by,
|
order_by=order_by,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
|
order=order,
|
||||||
)
|
)
|
||||||
|
|
||||||
records: list[Record] = []
|
records: list[Record] = []
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ class MonitorService(Service):
|
||||||
sender_name: Optional[str] = None,
|
sender_name: Optional[str] = None,
|
||||||
session_id: Optional[str] = None,
|
session_id: Optional[str] = None,
|
||||||
order_by: Optional[str] = "timestamp",
|
order_by: Optional[str] = "timestamp",
|
||||||
|
order: Optional[str] = "DESC",
|
||||||
limit: Optional[int] = None,
|
limit: Optional[int] = None,
|
||||||
):
|
):
|
||||||
query = "SELECT sender_name, sender, session_id, message, artifacts, timestamp FROM messages"
|
query = "SELECT sender_name, sender, session_id, message, artifacts, timestamp FROM messages"
|
||||||
|
|
@ -128,7 +129,8 @@ class MonitorService(Service):
|
||||||
query += " WHERE " + " AND ".join(conditions)
|
query += " WHERE " + " AND ".join(conditions)
|
||||||
|
|
||||||
if order_by:
|
if order_by:
|
||||||
query += f" ORDER BY {order_by}"
|
# Make sure the order is from newest to oldest
|
||||||
|
query += f" ORDER BY {order_by} {order.upper()}"
|
||||||
|
|
||||||
if limit is not None:
|
if limit is not None:
|
||||||
query += f" LIMIT {limit}"
|
query += f" LIMIT {limit}"
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ def add_row_to_table(
|
||||||
validated_data = model(**monitor_data)
|
validated_data = model(**monitor_data)
|
||||||
|
|
||||||
# Extract data for the insert statement
|
# Extract data for the insert statement
|
||||||
validated_dict = validated_data.model_dump(exclude_unset=True)
|
validated_dict = validated_data.model_dump()
|
||||||
keys = [key for key in validated_dict.keys() if key != INDEX_KEY]
|
keys = [key for key in validated_dict.keys() if key != INDEX_KEY]
|
||||||
columns = ", ".join(keys)
|
columns = ", ".join(keys)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue