branch: externals/llm commit 99814b533d8ecaf46cf86ce96880f154069e8753 Author: Andrew Hyatt <ahy...@gmail.com> Commit: Andrew Hyatt <ahy...@gmail.com>
Changes to get at least some of Gemini / Vertex working There remain issues with parsing elements of the JSON array. This is in the context of https://github.com/ahyatt/llm/pull/29 --- llm-gemini.el | 4 ++-- llm-request-plz.el | 12 ++++-------- llm-vertex.el | 4 ++-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/llm-gemini.el b/llm-gemini.el index d3690468aa..6e713e00fd 100644 --- a/llm-gemini.el +++ b/llm-gemini.el @@ -130,12 +130,12 @@ If STREAMING-P is non-nil, use the streaming endpoint." (when-let ((response (llm-vertex--get-chat-response element))) (when (> (length response) 0) (setq streamed-text (concat streamed-text response)) - (llm-request-callback-in-buffer buf partial-callback response)))) + (llm-request-callback-in-buffer buf partial-callback streamed-text)))) :on-success (lambda (data) (llm-request-callback-in-buffer buf response-callback (llm-vertex--process-and-return - provider prompt (if (> (length streamed-text) 0) streamed-text data)))) + provider prompt streamed-text))) :on-error (lambda (_ data) (llm-request-callback-in-buffer buf error-callback 'error (llm-vertex--error-message data)))))) diff --git a/llm-request-plz.el b/llm-request-plz.el index 3f80e9538a..0287aceaea 100644 --- a/llm-request-plz.el +++ b/llm-request-plz.el @@ -184,14 +184,12 @@ This is required. :on-error on-error ;; Have to use :on-success-raw because :on-success will try to ;; convert to JSON, and this already should be JSON. - :on-success-raw (lambda (resp) - (funcall on-success (plz-response-body resp))) + :on-success-raw on-success :timeout timeout :media-type - (cons 'application/json-array + (cons 'application/json (plz-media-type:application/json-array - :handler (lambda (resp) - (funcall on-element (plz-response-body resp))))))) + :handler on-element)))) (cl-defun llm-request-plz-ndjson (url &key headers data on-error on-success on-object timeout) @@ -224,9 +222,7 @@ This is required. :media-type (cons 'application/x-ndjson (plz-media-type:application/x-ndjson - :handler (lambda (resp) - ;; I'd expect RESP to a plz response object - (funcall on-object resp)))))) + :handler on-object)))) (cl-defun llm-request-plz-event-stream (url &key headers data on-error on-success event-stream-handlers timeout) diff --git a/llm-vertex.el b/llm-vertex.el index 14fa218535..24e56ee358 100644 --- a/llm-vertex.el +++ b/llm-vertex.el @@ -321,12 +321,12 @@ If STREAMING is non-nil, use the URL for the streaming API." (when-let ((response (llm-vertex--get-chat-response element))) (when (> (length response) 0) (setq streamed-text (concat streamed-text response)) - (llm-request-callback-in-buffer buf partial-callback response)))) + (llm-request-callback-in-buffer buf partial-callback streamed-text)))) :on-success (lambda (data) (llm-request-callback-in-buffer buf response-callback (llm-vertex--process-and-return - provider prompt (if (> (length streamed-text) 0) streamed-text data)))) + provider prompt streamed-text))) :on-error (lambda (_ data) (llm-request-callback-in-buffer buf error-callback 'error (llm-vertex--error-message data))))))