Skip to content

Commit d8d2c5d

Browse files
committed
deepseek adjustments
1 parent a882437 commit d8d2c5d

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

org-ai-openai.el

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ messages."
155155
((string-prefix-p "o4" model) 'openai)
156156
((string-prefix-p "claude" model) 'anthropic)
157157
((string-prefix-p "gemini" model) 'google)
158+
((string-prefix-p "deepseek" model) 'deepseek)
158159
(t nil)))
159160

160161
(defcustom org-ai-service 'openai
@@ -491,24 +492,27 @@ from the OpenAI API."
491492
;; try openai, deepseek, gemini streamed
492493
(t (let ((choices (plist-get response 'choices)))
493494
(cl-loop for choice across choices
494-
append (let ((role (when-let ((role (plist-get delta 'role)))
495-
(if (and (string= "assistant" role)
496-
(plist-get delta 'reasoning_content))
497-
"assistant_reason"
498-
role)))
499-
(content (plist-get (plist-get choice 'delta) 'content))
500-
(reasoning-content (plist-get delta 'reasoning_content))
501-
(finish-reason (plist-get choice 'finish_reason))
502-
(result nil))
495+
append (let* ((delta (plist-get choice 'delta))
496+
(role (when-let ((role (plist-get delta 'role)))
497+
(if (and (string= "assistant" role)
498+
(plist-get delta 'reasoning_content))
499+
"assistant_reason"
500+
role)))
501+
(content (plist-get (plist-get choice 'delta) 'content))
502+
(reasoning-content (plist-get delta 'reasoning_content))
503+
(finish-reason (plist-get choice 'finish_reason))
504+
(result nil))
503505
(when finish-reason
504506
(push (make-org-ai--response :type 'stop :payload finish-reason) result))
505507
(when reasoning-content
506508
(setq org-ai--currently-reasoning t)
507-
(list (make-org-ai--response :type 'text :payload reasoning-content)))
508-
(when content
509-
(setq org-ai--currently-reasoning nil)
510-
(push (make-org-ai--response :type 'text :payload content) result))
511-
(when role
509+
(push (make-org-ai--response :type 'text :payload reasoning-content) result))
510+
(when (and content (> (length content) 0))
511+
(push (make-org-ai--response :type 'text :payload content) result)
512+
(when org-ai--currently-reasoning
513+
(setq org-ai--currently-reasoning nil)
514+
(push (make-org-ai--response :type 'role :payload "assistant") result)))
515+
(when role
512516
(push (make-org-ai--response :type 'role :payload role) result))
513517
result))))))))
514518

@@ -886,7 +890,8 @@ and the length in chars of the pre-change text replaced by that range."
886890
(let ((model (completing-read "Model: "
887891
(append org-ai-chat-models
888892
'("claude-3-opus-latest" "claude-3-5-sonnet-latest" "claude-3-7-sonnet-latest"
889-
"gemini-2.5-pro-preview-03-25" "gemini-2.5-flash-preview-04-17" "gemini-2.0-flash" "gemini-2.0-pro-exp"))
893+
"gemini-2.5-pro-preview-03-25" "gemini-2.5-flash-preview-04-17" "gemini-2.0-flash" "gemini-2.0-pro-exp"
894+
"deepseek-chat" "deepseek-reasoner"))
890895
nil t)))
891896
(setq org-ai-default-chat-model model)))
892897

0 commit comments

Comments
 (0)