1
0
Fork 0

Let the FastGPT shell use kagi-fastgpt-prompt function directly

Also remove the function kagi--call-fastgpt that was only called by
kagi--fastgpt, embed its content in kagi--fastgpt instead. This
reduces the call stack by 1 towards the Kagi API call.
This commit is contained in:
Bram Schoenmakers 2024-07-21 21:59:18 +02:00
parent 3ae19c59db
commit b2fd821a80
Signed by: bram
GPG key ID: 0CCD19DFDC63258F

18
kagi.el
View file

@ -301,14 +301,6 @@ The OBJECT will be JSON encoded and sent as HTTP POST data."
(buffer-string) (buffer-string)
(error "Call to Kagi API returned with status %s" return))))) (error "Call to Kagi API returned with status %s" return)))))
(defun kagi--call-fastgpt (prompt)
"Submit the given PROMPT to the FastGPT API.
Returns the JSON response as a string. See
https://help.kagi.com/kagi/api/fastgpt.html for the
interpretation."
(kagi--call-api (list (cons 'query prompt)) kagi-fastgpt-api-url))
(defun kagi--call-summarizer (obj) (defun kagi--call-summarizer (obj)
"Submit a request to the Summarizer API. "Submit a request to the Summarizer API.
@ -374,10 +366,10 @@ list of conses."
(defun kagi--fastgpt (prompt) (defun kagi--fastgpt (prompt)
"Submit a PROMPT to FastGPT and return a formatted response string. "Submit a PROMPT to FastGPT and return a formatted response string.
This is used by `kagi-fastgpt-shell' and `kagi-fastgpt-prompt' to This is used by `kagi-fastgpt-prompt' to obtain a result from
obtain a result from FastGPT. Use the latter function for FastGPT. Use that function instead for retrieving a result from
retrieving a result from Lisp code." Lisp code."
(let* ((response (kagi--call-fastgpt prompt)) (let* ((response (kagi--call-api (list (cons 'query prompt)) kagi-fastgpt-api-url))
(parsed-response (json-parse-string response)) (parsed-response (json-parse-string response))
(output (kagi--gethash parsed-response "data" "output")) (output (kagi--gethash parsed-response "data" "output"))
(references (kagi--gethash parsed-response "data" "references"))) (references (kagi--gethash parsed-response "data" "references")))
@ -427,7 +419,7 @@ object (created with `make-shell-maker-config')."
:execute-command :execute-command
(lambda (command _history callback error-callback) (lambda (command _history callback error-callback)
(condition-case err (condition-case err
(funcall callback (kagi--fastgpt command) nil) (funcall callback (kagi-fastgpt-prompt command) nil)
(json-parse-error (funcall error-callback (json-parse-error (funcall error-callback
(format "Could not parse the server response %s" (cdr err)))) (format "Could not parse the server response %s" (cdr err))))
(error (funcall error-callback (format "An error occurred during the request %s" (cdr err))))))) (error (funcall error-callback (format "An error occurred during the request %s" (cdr err)))))))