mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-07 21:29:13 +00:00
Only call khoj server configure API from khoj.el when config updated
Previously khoj.el was calling the server configure API even when config was same as before. This had broken the khoj search as you type experience from emacs Also show more details to user about what in khoj is being configured
This commit is contained in:
@@ -383,6 +383,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
(cond
|
(cond
|
||||||
;; If khoj backend is not configured yet
|
;; If khoj backend is not configured yet
|
||||||
((not current-config)
|
((not current-config)
|
||||||
|
(message "khoj.el: Server not configured yet.")
|
||||||
(setq config (delq (assoc 'content-type config) config))
|
(setq config (delq (assoc 'content-type config) config))
|
||||||
(add-to-list 'config
|
(add-to-list 'config
|
||||||
`(content-type . ((org . ((input-files . ,khoj-org-files)
|
`(content-type . ((org . ((input-files . ,khoj-org-files)
|
||||||
@@ -393,6 +394,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
|
|
||||||
;; Else if khoj config has no org content config
|
;; Else if khoj config has no org content config
|
||||||
((not (alist-get 'org (alist-get 'content-type config)))
|
((not (alist-get 'org (alist-get 'content-type config)))
|
||||||
|
(message "khoj.el: Org-mode content on server not configured yet.")
|
||||||
(let ((new-content-type (alist-get 'content-type config)))
|
(let ((new-content-type (alist-get 'content-type config)))
|
||||||
(setq new-content-type (delq (assoc 'org new-content-type) new-content-type))
|
(setq new-content-type (delq (assoc 'org new-content-type) new-content-type))
|
||||||
(add-to-list 'new-content-type `(org . ((input-files . ,khoj-org-files)
|
(add-to-list 'new-content-type `(org . ((input-files . ,khoj-org-files)
|
||||||
@@ -406,6 +408,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
;; Else if khoj is not configured to index specified org files
|
;; Else if khoj is not configured to index specified org files
|
||||||
((not (and (equal (alist-get 'input-files (alist-get 'org (alist-get 'content-type config))) khoj-org-files)
|
((not (and (equal (alist-get 'input-files (alist-get 'org (alist-get 'content-type config))) khoj-org-files)
|
||||||
(equal (alist-get 'input-filter (alist-get 'org (alist-get 'content-type config))) org-directory-regexes)))
|
(equal (alist-get 'input-filter (alist-get 'org (alist-get 'content-type config))) org-directory-regexes)))
|
||||||
|
(message "khoj.el: Org-mode content on server is stale.")
|
||||||
(let* ((index-directory (khoj--get-directory-from-config config '(content-type org embeddings-file)))
|
(let* ((index-directory (khoj--get-directory-from-config config '(content-type org embeddings-file)))
|
||||||
(new-content-type (alist-get 'content-type config)))
|
(new-content-type (alist-get 'content-type config)))
|
||||||
(setq new-content-type (delq (assoc 'org new-content-type) new-content-type))
|
(setq new-content-type (delq (assoc 'org new-content-type) new-content-type))
|
||||||
@@ -423,6 +426,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
(setq config (delq (assoc 'processor config) config)))
|
(setq config (delq (assoc 'processor config) config)))
|
||||||
|
|
||||||
((not current-config)
|
((not current-config)
|
||||||
|
(message "khoj.el: Chat not configured yet.")
|
||||||
(setq config (delq (assoc 'processor config) config))
|
(setq config (delq (assoc 'processor config) config))
|
||||||
(add-to-list 'config
|
(add-to-list 'config
|
||||||
`(processor . ((conversation . ((conversation-logfile . ,(format "%s/conversation.json" default-chat-dir))
|
`(processor . ((conversation . ((conversation-logfile . ,(format "%s/conversation.json" default-chat-dir))
|
||||||
@@ -430,6 +434,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
(openai-api-key . ,khoj-openai-api-key)))))))
|
(openai-api-key . ,khoj-openai-api-key)))))))
|
||||||
|
|
||||||
((not (alist-get 'conversation (alist-get 'processor config)))
|
((not (alist-get 'conversation (alist-get 'processor config)))
|
||||||
|
(message "khoj.el: Chat not configured yet.")
|
||||||
(let ((new-processor-type (alist-get 'processor config)))
|
(let ((new-processor-type (alist-get 'processor config)))
|
||||||
(setq new-processor-type (delq (assoc 'conversation new-processor-type) new-processor-type))
|
(setq new-processor-type (delq (assoc 'conversation new-processor-type) new-processor-type))
|
||||||
(add-to-list 'new-processor-type `(conversation . ((conversation-logfile . ,(format "%s/conversation.json" default-chat-dir))
|
(add-to-list 'new-processor-type `(conversation . ((conversation-logfile . ,(format "%s/conversation.json" default-chat-dir))
|
||||||
@@ -440,6 +445,7 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
|
|
||||||
;; Else if khoj is not configured with specified openai api key
|
;; Else if khoj is not configured with specified openai api key
|
||||||
((not (equal (alist-get 'openai-api-key (alist-get 'conversation (alist-get 'processor config))) khoj-openai-api-key))
|
((not (equal (alist-get 'openai-api-key (alist-get 'conversation (alist-get 'processor config))) khoj-openai-api-key))
|
||||||
|
(message "khoj.el: Chat configuration has gone stale.")
|
||||||
(let* ((chat-directory (khoj--get-directory-from-config config '(processor conversation conversation-logfile)))
|
(let* ((chat-directory (khoj--get-directory-from-config config '(processor conversation conversation-logfile)))
|
||||||
(model-name (khoj--get-directory-from-config config '(processor conversation model)))
|
(model-name (khoj--get-directory-from-config config '(processor conversation model)))
|
||||||
(new-processor-type (alist-get 'processor config)))
|
(new-processor-type (alist-get 'processor config)))
|
||||||
@@ -450,12 +456,13 @@ CONFIG is json obtained from Khoj config API."
|
|||||||
(setq config (delq (assoc 'processor config) config))
|
(setq config (delq (assoc 'processor config) config))
|
||||||
(add-to-list 'config `(processor . ,new-processor-type)))))
|
(add-to-list 'config `(processor . ,new-processor-type)))))
|
||||||
|
|
||||||
;; Update server with latest configuration
|
;; Update server with latest configuration, if required
|
||||||
(khoj--post-new-config config)
|
|
||||||
(cond ((not current-config)
|
(cond ((not current-config)
|
||||||
|
(khoj--post-new-config config)
|
||||||
(message "khoj.el: ⚙️ Generated new khoj server configuration."))
|
(message "khoj.el: ⚙️ Generated new khoj server configuration."))
|
||||||
((not (equal config current-config))
|
((not (equal config current-config))
|
||||||
(message "Khoj: ⚙️ Updated khoj server configuration")))))
|
(khoj--post-new-config config)
|
||||||
|
(message "khoj.el: ⚙️ Updated khoj server configuration.")))))
|
||||||
|
|
||||||
(defun khoj-setup (&optional interact)
|
(defun khoj-setup (&optional interact)
|
||||||
"Install, start and configure Khoj server."
|
"Install, start and configure Khoj server."
|
||||||
|
|||||||
Reference in New Issue
Block a user