diff --git a/src/interface/emacs/khoj.el b/src/interface/emacs/khoj.el index c6d80c8f..09de9294 100644 --- a/src/interface/emacs/khoj.el +++ b/src/interface/emacs/khoj.el @@ -363,10 +363,11 @@ Render results in BUFFER-NAME using QUERY, CONTENT-TYPE." ;; render json response into formatted chat messages (with-current-buffer (get-buffer buffer-name) (let ((inhibit-read-only t) + (query-time (format-time-string "%F %T")) (json-response (khoj--query-chat-api query))) (goto-char (point-max)) (insert - (khoj--render-chat-message query "you") + (khoj--render-chat-message query "you" query-time) (khoj--render-chat-response json-response))) (progn (org-mode) (visual-line-mode)) diff --git a/src/khoj/processor/conversation/utils.py b/src/khoj/processor/conversation/utils.py index 42853edf..69f47aff 100644 --- a/src/khoj/processor/conversation/utils.py +++ b/src/khoj/processor/conversation/utils.py @@ -38,20 +38,20 @@ def message_to_prompt( return f"{conversation_history}{restart_sequence} {user_message}{start_sequence}{gpt_message}" -def message_to_log(user_message, gpt_message, khoj_message_metadata={}, conversation_log=[]): +def message_to_log(user_message, gpt_message, user_message_metadata={}, khoj_message_metadata={}, conversation_log=[]): """Create json logs from messages, metadata for conversation log""" default_khoj_message_metadata = { "intent": {"type": "remember", "memory-type": "notes", "query": user_message}, "trigger-emotion": "calm", } - current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + khoj_response_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # Create json log from Human's message - human_log = {"message": user_message, "by": "you", "created": current_dt} + human_log = merge_dicts({"message": user_message, "by": "you"}, user_message_metadata) # Create json log from GPT's response khoj_log = merge_dicts(khoj_message_metadata, default_khoj_message_metadata) - khoj_log = merge_dicts({"message": gpt_message, "by": "khoj", "created": current_dt}, khoj_log) + khoj_log = merge_dicts({"message": gpt_message, "by": "khoj", "created": khoj_response_time}, khoj_log) conversation_log.extend([human_log, khoj_log]) return conversation_log diff --git a/src/khoj/routers/api.py b/src/khoj/routers/api.py index dd39f0d3..c6bb8dee 100644 --- a/src/khoj/routers/api.py +++ b/src/khoj/routers/api.py @@ -2,6 +2,7 @@ import math import yaml import logging +from datetime import datetime from typing import List, Optional, Union # External Packages @@ -192,6 +193,7 @@ def chat(q: Optional[str] = None): # Initialize Variables api_key = state.processor_config.conversation.openai_api_key model = state.processor_config.conversation.model + user_message_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # Load Conversation History chat_session = state.processor_config.conversation.chat_session @@ -225,6 +227,7 @@ def chat(q: Optional[str] = None): state.processor_config.conversation.meta_log["chat"] = message_to_log( q, gpt_response, + user_message_metadata={"created": user_message_time}, khoj_message_metadata={"context": collated_result, "intent": {"inferred-queries": inferred_queries}}, conversation_log=meta_log.get("chat", []), )