1
0
Fork 0

Refactor out common parts from text and URL summary requests

This commit is contained in:
Bram Schoenmakers 2023-12-25 11:10:57 +01:00
parent 727c18488b
commit b6b1164b26
Signed by: bram
GPG key ID: 0CCD19DFDC63258F

35
kagi.el
View file

@ -207,21 +207,32 @@ https://kagi.com/settings?p=api"
(buffer-string) (buffer-string)
(error "Call to Summarizer API returned with status %s" return))))) (error "Call to Summarizer API returned with status %s" return)))))
(defun kagi--build-summarizer-request-object (items)
"Build a request object for a summary.
Common request elements are returned based on the package's
configuration. The given ITEMS are appended to it, which is a
list of conses."
(append items
`(("engine" . ,kagi-api-summarizer-engine)
("summary_type" . "summary"))
;; prevent a nil in the result list, causing (json-encode)
;; to generate a wrong request object.
(when kagi-api-summarize-default-language
`(("target_language" . kagi-api-summarize-default-language)))))
(defun kagi--call-text-summarizer (text) (defun kagi--call-text-summarizer (text)
(kagi--call-summarizer (append "Return a response object from the Summarizer with the TEXT summary."
`(("text" . ,text) (let ((request-obj (kagi--build-summarizer-request-object
("engine" . ,kagi-api-summarizer-engine) `(("text" . ,text)))))
("summary_type" . "summary")) ;; TODO parameter (kagi--call-summarizer request-obj )))
(when kagi-api-summarize-default-language
`(("target_language" . kagi-api-summarize-default-language))))))
(defun kagi--call-url-summarizer (url) (defun kagi--call-url-summarizer (url)
(kagi--call-summarizer (append "Return a response object from the Summarizer with the URL summary."
`(("url" . ,url) (let ((request-obj (kagi--build-summarizer-request-object
("engine" . ,kagi-api-summarizer-engine) `(("url" . ,url)))))
("summary_type" . "summary")) ;; TODO parameter (kagi--call-summarizer request-obj)))
(when kagi-api-summarize-default-language
`(("target_language" . kagi-api-summarize-default-language))))))
(defun kagi--get-summary (f) (defun kagi--get-summary (f)
(let* ((response (funcall f)) (let* ((response (funcall f))