mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +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
|
||||
;; If khoj backend is not configured yet
|
||||
((not current-config)
|
||||
(message "khoj.el: Server not configured yet.")
|
||||
(setq config (delq (assoc 'content-type config) config))
|
||||
(add-to-list 'config
|
||||
`(content-type . ((org . ((input-files . ,khoj-org-files)
|
||||
@@ -393,7 +394,8 @@ CONFIG is json obtained from Khoj config API."
|
||||
|
||||
;; Else if khoj config has no org content config
|
||||
((not (alist-get 'org (alist-get 'content-type config)))
|
||||
(let ((new-content-type (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)))
|
||||
(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)
|
||||
(input-filter . ,org-directory-regexes)
|
||||
@@ -406,6 +408,7 @@ CONFIG is json obtained from Khoj config API."
|
||||
;; 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)
|
||||
(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)))
|
||||
(new-content-type (alist-get 'content-type config)))
|
||||
(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)))
|
||||
|
||||
((not current-config)
|
||||
(message "khoj.el: Chat not configured yet.")
|
||||
(setq config (delq (assoc 'processor config) config))
|
||||
(add-to-list 'config
|
||||
`(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)))))))
|
||||
|
||||
((not (alist-get 'conversation (alist-get 'processor config)))
|
||||
(message "khoj.el: Chat not configured yet.")
|
||||
(let ((new-processor-type (alist-get 'processor config)))
|
||||
(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))
|
||||
@@ -440,6 +445,7 @@ CONFIG is json obtained from Khoj config API."
|
||||
|
||||
;; 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))
|
||||
(message "khoj.el: Chat configuration has gone stale.")
|
||||
(let* ((chat-directory (khoj--get-directory-from-config config '(processor conversation conversation-logfile)))
|
||||
(model-name (khoj--get-directory-from-config config '(processor conversation model)))
|
||||
(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))
|
||||
(add-to-list 'config `(processor . ,new-processor-type)))))
|
||||
|
||||
;; Update server with latest configuration
|
||||
(khoj--post-new-config config)
|
||||
(cond ((not current-config)
|
||||
;; Update server with latest configuration, if required
|
||||
(cond ((not current-config)
|
||||
(khoj--post-new-config config)
|
||||
(message "khoj.el: ⚙️ Generated new khoj server configuration."))
|
||||
((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)
|
||||
"Install, start and configure Khoj server."
|
||||
|
||||
Reference in New Issue
Block a user