branch: externals/ellama
commit 23b41b12234f2ce2e79ebf259dbe5a99af6dc9f8
Merge: b996115b90 c221cc9779
Author: Sergey Kostyaev <[email protected]>
Commit: GitHub <[email protected]>
Merge pull request #284 from s-kostyaev/fix-completion-issues
Add completion provider customization
---
NEWS.org | 4 ++++
ellama.el | 18 ++++++++++++++----
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/NEWS.org b/NEWS.org
index 31ee226871..4793d6d541 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,7 @@
+* Version 1.5.3
+- Added ~ellama-completion-provider~ custom variable to specify the LLM
provider
+ for completions. Updated ~ellama-stream~ call in ~ellama-complete~ to use
this new
+ provider and modified the filter function to handle prefix trimming
correctly.
* Version 1.5.2
- Fixed a bug in session delete or kill that deletes or kills the current file
or buffer when no session is selected.
diff --git a/ellama.el b/ellama.el
index e3c9a47606..13990695e3 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
;; URL: http://github.com/s-kostyaev/ellama
;; Keywords: help local tools
;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (plz "0.8") (transient
"0.7") (compat "29.1"))
-;; Version: 1.5.2
+;; Version: 1.5.3
;; SPDX-License-Identifier: GPL-3.0-or-later
;; Created: 8th Oct 2023
@@ -107,6 +107,11 @@ Make reasoning models more useful for many cases."
:group 'ellama
:type '(sexp :validate llm-standard-provider-p))
+(defcustom ellama-completion-provider nil
+ "LLM provider for completions."
+ :group 'ellama
+ :type '(sexp :validate llm-standard-provider-p))
+
(defcustom ellama-providers nil
"LLM provider list for fast switching."
:group 'ellama
@@ -1714,9 +1719,14 @@ the full response text when the request completes (with
BUFFER current)."
(word (car (reverse (string-split line " ")))))
(ellama-stream text
:system ellama-complete-prompt-template
- :filter (lambda (s) (string-trim-left s (rx (or (literal
text)
- (literal
line)
- (literal
word)))))
+ :provider ellama-completion-provider
+ :filter (lambda (s)
+ (let ((noprefix (string-trim-left s (rx (or
(literal text)
+
(literal line)
+
(literal word))))))
+ (if (string= s noprefix)
+ (concat " " s)
+ noprefix)))
:on-done #'ellama-fix-parens)))
(defvar vc-git-diff-switches)