Refactor out common parts from text and URL summary requests
This commit is contained in:
parent
727c18488b
commit
b6b1164b26
1 changed files with 23 additions and 12 deletions
35
kagi.el
35
kagi.el
|
@ -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))
|
||||||
|
|
Loading…
Reference in a new issue