是不是跟你的主题配色冲突了。
通过 M-x customize-group go-translate-faces
查看或修改配色。
是不是跟你的主题配色冲突了。
通过 M-x customize-group go-translate-faces
查看或修改配色。
进行了一点点修改。主要:
因为,Google 对 Deep
翻译的结果没有包含音标。而对小写的 deep
翻译是有音标的。试试看。
推荐一个跟 AI 集成,从而将选中文本跟 LLM 进行交互的命令。挺实用的。
(defvar my-ai-oneshot-prompts
(list "优化、润色文本" "请认真分析代码,修复代码存在的错误,并给出建议"))
(defvar my-ai-oneshot-models
(list "deepseek-reasoner" "gpt-4o-mini" "gemini-2.5-pro"))
(defvar my-ai-oneshot-last-model nil)
(defvar my-ai-oneshot-history nil)
(defun my-ai-oneshot ()
"Use C-. C-, to switch model."
(interactive)
(require 'go-translate)
(let ((prompt nil)
(model (or my-ai-oneshot-last-model
(setq my-ai-oneshot-last-model (or (car my-ai-oneshot-models) gt-chatgpt-model)))))
(cl-flet ((get-cands ()
(cl-delete-duplicates
(append my-ai-oneshot-history my-ai-oneshot-prompts) :from-end t :test #'equal))
(change-model (&optional prev)
(let* ((pos (or (cl-position my-ai-oneshot-last-model my-ai-oneshot-models :test #'equal) -1))
(next (if prev (max 0 (1- pos)) (min (1- (length my-ai-oneshot-models)) (1+ pos)))))
(setq my-ai-oneshot-last-model (nth next my-ai-oneshot-models))
(setq model my-ai-oneshot-last-model)
(overlay-put (car (overlays-at 1)) 'after-string my-ai-oneshot-last-model))))
(setq prompt
(minibuffer-with-setup-hook
(lambda ()
(local-set-key (kbd "C-,") (lambda () (interactive) (change-model)))
(local-set-key (kbd "C-.") (lambda () (interactive) (change-model t)))
;; (local-set-key (kbd "C-c C-k") #'my-ai-oneshot-delete-current)
(overlay-put (make-overlay 1 9) 'after-string model)
(use-local-map (make-composed-keymap nil (current-local-map))))
(completing-read "Prompt (): " (get-cands) nil nil nil 'my-ai-oneshot-history)))
(gt-start (gt-translator
:taker (gt-taker
:text 'point :pick nil
:prompt (lambda (translator)
(let ((text (car (oref translator text))))
(oset translator text
(list (if (string-blank-p text)
prompt
(let ((str (if (string-blank-p prompt) text
(format "%s\n\n内容如下:\n\n%s\n" prompt text))))
(if current-prefix-arg (read-string "Ensure: " str) str))))))
(message "Processing...")))
:engines (gt-chatgpt-engine
:cache nil
:stream t
:model model
:timeout 300
:prompt #'identity)
:render (gt-buffer-render
:name (format "*ai-oneshot-%s*" model)
:mode 'markdown-mode
:init (lambda () (markdown-toggle-markup-hiding 1))
:dislike-header t
:dislike-source t
:window-config '((display-buffer-below-selected))))))))
我也遇到了这个问题。
用你的这个例子,我这边总是会提示 wrong-type-argument listp t
错误。
使用的是最新的 go-translate 和 pdd.el, 直接从 Github 安装的。
我就在你的代码里加了这几行,我只用 DeepSeek,其他2个后端都删除了。
执行M-x my-ai-oneshot-models
后,在Prompt中选择“优化、润色文本”,出现“Processing…” 后过一会就会看到错误 wrong-type-argument listp t
。
(setq gt-chatgpt-key (my-auth-secret "api.deepseek.com"))
(setq gt-chatgpt-host "https://api.deepseek.com")
(setq gt-chatgpt-model "deepseek-v3")
(defvar my-ai-oneshot-prompts
(list "优化、润色文本" "请认真分析代码,修复代码存在的错误,并给出建议"))
(defvar my-ai-oneshot-models
(list "deepseek-v3"))
我用的是第三方接口,示例中代码可以直接运行。如果使用 deepseek 官方接口,path 和模型名有些不一样,需要配置。比如:
(setq gt-chatgpt-host "https://api.deepseek.com")
(setq gt-chatgpt-path "/chat/completions")
(setq gt-chatgpt-model "deepseek-reasoner") ; or "deepseek-chat"
https://api-docs.deepseek.com/zh-cn/api/create-chat-completion
BUG,已修复。