@@ -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