Load Khoj Chat buffer before asking for query to provide context

This commit is contained in:
Debanjum Singh Solanky
2023-03-24 13:43:46 +07:00
parent 4070d13a96
commit d78454d4ad

View File

@@ -335,9 +335,12 @@ Render results in BUFFER-NAME using QUERY, CONTENT-TYPE."
(defun khoj--chat () (defun khoj--chat ()
"Chat with Khoj." "Chat with Khoj."
(when (not (get-buffer khoj--chat-buffer-name))
(khoj--load-chat-history khoj--chat-buffer-name))
(switch-to-buffer khoj--chat-buffer-name)
(let ((query (read-string "Query: "))) (let ((query (read-string "Query: ")))
(khoj--query-chat-api-and-render-messages query khoj--chat-buffer-name) (when (not (string-empty-p query))
(switch-to-buffer khoj--chat-buffer-name))) (khoj--query-chat-api-and-render-messages query khoj--chat-buffer-name))))
(defun khoj--load-chat-history (buffer-name) (defun khoj--load-chat-history (buffer-name)
(let ((json-response (cdr (assoc 'response (khoj--query-chat-api ""))))) (let ((json-response (cdr (assoc 'response (khoj--query-chat-api "")))))
@@ -357,18 +360,16 @@ Render results in BUFFER-NAME using QUERY, CONTENT-TYPE."
(defun khoj--query-chat-api-and-render-messages (query buffer-name) (defun khoj--query-chat-api-and-render-messages (query buffer-name)
"Send QUERY to Khoj Chat. Render the chat messages from exchange in BUFFER-NAME." "Send QUERY to Khoj Chat. Render the chat messages from exchange in BUFFER-NAME."
;; render json response into formatted chat messages ;; render json response into formatted chat messages
(if (not (get-buffer buffer-name)) (with-current-buffer (get-buffer buffer-name)
(khoj--load-chat-history buffer-name) (let ((inhibit-read-only t)
(with-current-buffer (get-buffer buffer-name) (json-response (khoj--query-chat-api query)))
(let ((inhibit-read-only t) (goto-char (point-max))
(json-response (khoj--query-chat-api query))) (insert
(goto-char (point-max)) (khoj--render-chat-message query "you")
(insert (khoj--render-chat-response json-response)))
(khoj--render-chat-message query "you") (progn (org-mode)
(khoj--render-chat-response json-response))) (visual-line-mode))
(progn (org-mode) (read-only-mode t)))
(visual-line-mode))
(read-only-mode t))))
(defun khoj--query-chat-api (query) (defun khoj--query-chat-api (query)
"Send QUERY to Khoj Chat API." "Send QUERY to Khoj Chat API."