s-kostyaev / ellama

Ellama is a tool for interacting with large language models from Emacs.
GNU General Public License v3.0
359 stars 25 forks source link

Session management #49

Closed s-kostyaev closed 5 months ago

s-kostyaev commented 5 months ago

I would like to implement session management. In every session user can talk to one llm provider with chat history. User can switch between sessions and save/load it to files.

s-kostyaev commented 5 months ago

@ahyatt need your advice. What am I doing wrong here? On second chat request on this branch i have an error:

Debugger entered--Lisp error: (wrong-type-argument llm-chat-prompt ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")))
  llm-ollama--chat-request(#s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")))
  #f(compiled-function (provider prompt partial-callback response-callback error-callback) #<bytecode -0x60356b8a321db>)(#s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) (closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt (point))) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ((functionp ellama-fill-paragraphs) (let nil ...)) ((booleanp ellama-fill-paragraphs) (let nil ellama-fill-paragraphs)) ((listp ellama-fill-paragraphs) (let nil ...))) (progn (fill-region start (point)))) (goto-char pt)) (let* ((s (and t ellama-auto-scroll)) (window (and s (get-buffer-window buffer)))) (if window (let ((save-selected-window--state ...)) (save-current-buffer (unwind-protect ... ...))) nil)))) (closure ((insert-text closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt ...)) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ... ... ...) (progn ...)) (goto-char pt)) (let* ((s ...) (window ...)) (if window (let ... ...) nil)))) (donecb . ellama-chat-done) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) (closure ((errcb closure (t) (msg) (error "Error calling the LLM: %s" msg)) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil))))
  apply(#f(compiled-function (provider prompt partial-callback response-callback error-callback) #<bytecode -0x60356b8a321db>) (#s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) (closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt (point))) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond (... ...) (... ...) (... ...)) (progn (fill-region start ...))) (goto-char pt)) (let* ((s (and t ellama-auto-scroll)) (window (and s ...))) (if window (let (...) (save-current-buffer ...)) nil)))) (closure ((insert-text closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let (...) (goto-char start) (delete-region start end) (insert ...) (if ... ...) (goto-char pt)) (let* (... ...) (if window ... nil)))) (donecb . ellama-chat-done) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) (closure ((errcb closure (t) (msg) (error "Error calling the LLM: %s" msg)) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil)))))
  #f(compiled-function (&rest args) #<bytecode 0x1c672afc97bb4713>)(#s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) (closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt (point))) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ((functionp ellama-fill-paragraphs) (let nil ...)) ((booleanp ellama-fill-paragraphs) (let nil ellama-fill-paragraphs)) ((listp ellama-fill-paragraphs) (let nil ...))) (progn (fill-region start (point)))) (goto-char pt)) (let* ((s (and t ellama-auto-scroll)) (window (and s (get-buffer-window buffer)))) (if window (let ((save-selected-window--state ...)) (save-current-buffer (unwind-protect ... ...))) nil)))) (closure ((insert-text closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt ...)) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ... ... ...) (progn ...)) (goto-char pt)) (let* ((s ...) (window ...)) (if window (let ... ...) nil)))) (donecb . ellama-chat-done) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) (closure ((errcb closure (t) (msg) (error "Error calling the LLM: %s" msg)) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil))))
  apply(#f(compiled-function (&rest args) #<bytecode 0x1c672afc97bb4713>) #s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") (([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) (closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt (point))) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond (... ...) (... ...) (... ...)) (progn (fill-region start ...))) (goto-char pt)) (let* ((s (and t ellama-auto-scroll)) (window (and s ...))) (if window (let (...) (save-current-buffer ...)) nil)))) (closure ((insert-text closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let (...) (goto-char start) (delete-region start end) (insert ...) (if ... ...) (goto-char pt)) (let* (... ...) (if window ... nil)))) (donecb . ellama-chat-done) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) (closure ((errcb closure (t) (msg) (error "Error calling the LLM: %s" msg)) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil)))))
  llm-chat-streaming(#s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) (closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt (point))) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ((functionp ellama-fill-paragraphs) (let nil ...)) ((booleanp ellama-fill-paragraphs) (let nil ellama-fill-paragraphs)) ((listp ellama-fill-paragraphs) (let nil ...))) (progn (fill-region start (point)))) (goto-char pt)) (let* ((s (and t ellama-auto-scroll)) (window (and s (get-buffer-window buffer)))) (if window (let ((save-selected-window--state ...)) (save-current-buffer (unwind-protect ... ...))) nil)))) (closure ((insert-text closure ((end . #<marker (moves after insertion) at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (start . #<marker at 1608 in ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>) (filter . identity) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (save-current-buffer (set-buffer buffer) (let ((pt ...)) (goto-char start) (delete-region start end) (insert (funcall filter text)) (if (cond ... ... ...) (progn ...)) (goto-char pt)) (let* ((s ...) (window ...)) (if window (let ... ...) nil)))) (donecb . ellama-chat-done) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) (closure ((errcb closure (t) (msg) (error "Error calling the LLM: %s" msg)) (buffer . #<buffer ellama Explain me Sieve of Eratosthenes (mistral:7b-instruct-v0.2-q6_K) 2.md>)) (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil))))
  (setq ellama--current-request (llm-chat-streaming provider llm-prompt insert-text #'(lambda (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) #'(lambda (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil)))))
  (let* ((start (make-marker)) (end (make-marker)) (insert-text #'(lambda (text) (save-current-buffer (set-buffer buffer) (let (...) (goto-char start) (delete-region start end) (insert ...) (if ... ...) (goto-char pt)) (let* (... ...) (if window ... nil)))))) (setq ellama--change-group (prepare-change-group)) (activate-change-group ellama--change-group) (set-marker start point) (set-marker end point) (set-marker-insertion-type start nil) (set-marker-insertion-type end t) (spinner-start ellama-spinner-type) (setq ellama--current-request (llm-chat-streaming provider llm-prompt insert-text #'(lambda (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) #'(lambda (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil))))))
  (save-current-buffer (set-buffer buffer) (let* ((start (make-marker)) (end (make-marker)) (insert-text #'(lambda (text) (save-current-buffer (set-buffer buffer) (let ... ... ... ... ... ...) (let* ... ...))))) (setq ellama--change-group (prepare-change-group)) (activate-change-group ellama--change-group) (set-marker start point) (set-marker end point) (set-marker-insertion-type start nil) (set-marker-insertion-type end t) (spinner-start ellama-spinner-type) (setq ellama--current-request (llm-chat-streaming provider llm-prompt insert-text #'(lambda (text) (funcall insert-text text) (save-current-buffer (set-buffer buffer) (undo-amalgamate-change-group ellama--change-group) (accept-change-group ellama--change-group) (spinner-stop) (funcall donecb text) (setq ellama--current-request nil))) #'(lambda (_ msg) (save-current-buffer (set-buffer buffer) (cancel-change-group ellama--change-group) (spinner-stop) (funcall errcb msg) (setq ellama--current-request nil)))))))
  (let* ((provider (or (plist-get args :provider) ellama-provider)) (session (plist-get args :session)) (buffer (or (plist-get args :buffer) (if (progn (and (memq ... cl-struct-ellama-session-tags) t)) (progn (ellama-get-session-buffer (progn ... ...)))) (current-buffer))) (point (or (plist-get args :point) (save-current-buffer (set-buffer buffer) (point)))) (filter (or (plist-get args :filter) #'identity)) (errcb (or (plist-get args :on-error) #'(lambda (msg) (error "Error calling the LLM: %s" msg)))) (donecb (or (plist-get args :on-done) #'ignore)) (llm-prompt (if session (if (progn (or (progn ...) (signal ... ...)) (aref session 4)) (llm-chat-prompt-append-response (progn (or ... ...) (aref session 4)) prompt) (progn (or (progn ...) (signal ... ...)) (let* (...) (aset v 4 ...)))) (llm-make-simple-chat-prompt prompt)))) (save-current-buffer (set-buffer buffer) (let* ((start (make-marker)) (end (make-marker)) (insert-text #'(lambda (text) (save-current-buffer ... ... ...)))) (setq ellama--change-group (prepare-change-group)) (activate-change-group ellama--change-group) (set-marker start point) (set-marker end point) (set-marker-insertion-type start nil) (set-marker-insertion-type end t) (spinner-start ellama-spinner-type) (setq ellama--current-request (llm-chat-streaming provider llm-prompt insert-text #'(lambda (text) (funcall insert-text text) (save-current-buffer ... ... ... ... ... ...)) #'(lambda (_ msg) (save-current-buffer ... ... ... ... ...)))))))
  ellama-stream("implement it in go" :session #s(ellama-session :id "ellama Explain me Sieve of Eratosthenes (mistral:7..." :provider #s(llm-ollama :scheme "http" :host "localhost" :port 11434 :chat-model "mistral:7b-instruct-v0.2-q6_K" :embedding-model "mistral:7b-instruct-v0.2-q6_K") :file "/Users/sergeykostyaev/.emacs.d/ellama-sessions/ell..." :prompt #s(llm-chat-prompt :context nil :examples nil :interactions ([733 16289 28793 28705 13702 426 528 7075 333 302 2852 270 504 540 274 733 28748 16289 28793 415 7075 333 302 2852 270 504 540 274 349 396 9467 9464 1307 298 1300 544 8139 5551 582 298 264 2078 3607 28723 661 403 8324 486 272 9467 ...] #s(llm-chat-prompt-interaction :role user :content "implement it in go")) :temperature nil :max-tokens nil)) :on-done ellama-chat-done)
  (save-excursion (goto-char (point-max)) (insert ellama-nick-prefix " " ellama-user-nick ":\n" prompt "\n\n" ellama-nick-prefix " " ellama-assistant-nick ":\n") (ellama-stream prompt :session session :on-done #'ellama-chat-done))
  (save-current-buffer (set-buffer buffer) (save-excursion (goto-char (point-max)) (insert ellama-nick-prefix " " ellama-user-nick ":\n" prompt "\n\n" ellama-nick-prefix " " ellama-assistant-nick ":\n") (ellama-stream prompt :session session :on-done #'ellama-chat-done)))
  (let* ((session (if (or create-session current-prefix-arg (and (not ellama--current-session) (not ellama--current-session-id))) (ellama-new-session ellama-provider prompt) (or ellama--current-session (save-current-buffer (set-buffer (ellama-get-session-buffer ellama--current-session-id)) ellama--current-session)))) (buffer (ellama-get-session-buffer (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... session))) (aref session 1))))) (display-buffer buffer) (save-current-buffer (set-buffer buffer) (save-excursion (goto-char (point-max)) (insert ellama-nick-prefix " " ellama-user-nick ":\n" prompt "\n\n" ellama-nick-prefix " " ellama-assistant-nick ":\n") (ellama-stream prompt :session session :on-done #'ellama-chat-done))))
  ellama-chat("implement it in go")
  funcall-interactively(ellama-chat "implement it in go")
  command-execute(ellama-chat record)
  execute-extended-command(nil "ellama-chat" nil)
  funcall-interactively(execute-extended-command nil "ellama-chat" nil)
  command-execute(execute-extended-command)

For me looks like I'm missing something or I can store prompt (for session history) in plain local variable, but not in cl-struct field.

s-kostyaev commented 5 months ago

Will check it tomorrow with fresh mind, maybe it's bug in my code here. But if you can help it would be great.

ahyatt commented 5 months ago

I think what might be going on is that your prompt the llm-chat-prompt-interaction value of the prompt, and not the llm-chat-prompt itself.

s-kostyaev commented 5 months ago

I will see, thank you

s-kostyaev commented 5 months ago

@ahyatt your advice helps, thank you. Issue fixed.

s-kostyaev commented 5 months ago

TODO: