mind-wave -- 基于ChatGPT API的Emacs AI插件

repo 在哪里找到? 试试看准备。

已经实现了流式对话, 问了问题马上就有反馈。

1 个赞

简单试用了下,感觉还行。 提了个pull request,解析从环境变量解析API KEY。 但是感觉major mode 不够powerful. 每次只能从min buffer输入,文本一多就没法看了。

回来可以搞一个从文本输入的命令。

1 个赞

你用什么卡买的Plus? 还是说你肉身在外,有境外卡?

ChatGPT Plus 全攻略

  1. 国内怎么注册ChatGPT: ChatGPT 国内注册使用攻略 - 保姆级教程 - Justin写字的地方 (主要是搞定美国代理和国外虚拟电话卡)

  2. 怎么购买 ChatGPT Plus: ChatGPT Plus | Depay 中国境内注册与购买详细流程, 跟着走一定能订阅成功 | 免费注册虚拟信用卡并使用USDT充值付款 - YouTube → OKX 数字货币 → 等一天 → 体现到 Depay USDT → 兑换 USD → 美国免税州随机地址 → ChatGPT Plus 充值)

  3. 怎么取消连续包月: ChatGPT Plus 注册全攻略 - Foresight News (虽然ChatGPT Plus每个月20刀, 但是按照第二步操作中间的各种手续费, 每个月其实需要22.23刀)

7 个赞

增加了重构模式

重构模式

  1. 光标移动到想要重构的函数(也可以选中特定的代码)
  2. 执行命令 mind-wave-refactory-code, ChatGPT 会自动分屏, 在屏幕右边打印重构的代码和重构建议

5 个赞

好东西,感谢分享! 但是我跑不起来,是什么原因呢,错误如下:

Debugger entered--Lisp error: (wrong-type-argument mind-wave-epc-manager nil)
  signal(wrong-type-argument (mind-wave-epc-manager nil))
  (or (progn (and (memq (type-of mngr) cl-struct-mind-wave-epc-manager-tags) t)) (signal 'wrong-type-argument (list 'mind-wave-epc-manager mngr)))
  (progn (or (progn (and (memq (type-of mngr) cl-struct-mind-wave-epc-manager-tags) t)) (signal 'wrong-type-argument (list 'mind-wave-epc-manager mngr))) (aref mngr 7))
  (let ((uid (mind-wave-epc-uid)) (sessions (progn (or (progn (and (memq ... cl-struct-mind-wave-epc-manager-tags) t)) (signal 'wrong-type-argument (list 'mind-wave-epc-manager mngr))) (aref mngr 7))) (d (mind-wave-deferred-new))) (setq sessions (cons (cons uid d) sessions)) (progn (or (progn (and (memq (type-of mngr) cl-struct-mind-wave-epc-manager-tags) t)) (signal 'wrong-type-argument (list 'mind-wave-epc-manager mngr))) (let* ((v mngr)) (aset v 7 sessions))) (mind-wave-epc-manager-send mngr 'call uid method-name args) d)
  mind-wave-epc-call-deferred(nil chat_ask ("/home/xuehy/test.chat" "d2hhdCBpcyBjaGF0Z3B0CgotLS0tLS0gVXNlciAtLS0tLS0Kd2..." "what is AI"))
  (setq it (mind-wave-epc-call-deferred mind-wave-epc-process (read method) args))
  (let (it) (setq it (mind-wave-epc-call-deferred mind-wave-epc-process (read method) args)) it)
  mind-wave-call-async("chat_ask" "/home/xuehy/test.chat" "d2hhdCBpcyBjaGF0Z3B0CgotLS0tLS0gVXNlciAtLS0tLS0Kd2..." "what is AI")
  (if (string-empty-p (string-trim promt)) (message "Please don't send empty question.") (save-excursion (goto-char (point-max)) (if (equal (point) (point-min)) nil (insert "\n")) (insert "------ User ------\n") (insert (format "%s\n\n" promt))) (message "Wait ChatGPT...") (mind-wave-call-async "chat_ask" (buffer-file-name) (mind-wave--encode-string (buffer-string)) promt))
  (let ((promt (read-string "Ask ChatGPT: "))) (if (string-empty-p (string-trim promt)) (message "Please don't send empty question.") (save-excursion (goto-char (point-max)) (if (equal (point) (point-min)) nil (insert "\n")) (insert "------ User ------\n") (insert (format "%s\n\n" promt))) (message "Wait ChatGPT...") (mind-wave-call-async "chat_ask" (buffer-file-name) (mind-wave--encode-string (buffer-string)) promt)))
  mind-wave-chat-ask()
  funcall-interactively(mind-wave-chat-ask)
  command-execute(mind-wave-chat-ask)

没有安装依赖, 请看README

增加了代码注释模式

注释模式

  1. 光标移动到想要添加注释的函数
  2. 执行命令 mind-wave-comment-code, ChatGPT 会自动分屏, 在屏幕右边打印带注释的代码
1 个赞

代码模式

光标移动到想要重构的函数

  1. 执行命令 mind-wave-refactory-code, ChatGPT 会自动分屏, 在屏幕右边先后重构后的代码和重构建议
  2. 执行命令 mind-wave-comment-code, ChatGPT 会自动分屏, 在屏幕右边显示带注释的代码
  3. 执行命令 mind-wave-explain-code, ChatGPT 会自动分屏, 在屏幕右边显示代码的讲解
1 个赞

增加了mind-wave-proofreading-doc 命令。

以后写英文的README, 先写一个基本的中文稿子, 用 mind-wave-proofreading-doc 帮我润色一下中文, 再用 mind-wave-translate-to-english 翻译成英文。

感觉现在不是面向代码编程, 而是面向咒语编程, 哈哈哈哈。

这个是免费的。是调用了浏览器。

2 个赞

怎么配可以参考一下吗?我设置了 url-proxy-services 不起作用

试试从终端启动,终端配好proxy。我就是只能终端启动emacs上,点icon不行,但是点icon,eww可以开外网。

python 进程不知道是不是子进程

thanks

开个虚拟信用卡付费就好了,比如 depay

1 个赞
 (require 'socks)   
 (setq socks-noproxy '("localhost"))
 (setq url-gateway-method 'socks)
 (setq socks-server '("Default server" "127.0.0.1" 1080 5))

试试这样。

1 个赞

网页版的 ChatGPT 中,用不同的对话 (Chat)来管理与之交互 (conversation),即每个 Chat 中的问题可以围绕同一主题不断深入。如果我们使用 API, 这种调用,如何归并于同一 Chat 中?形式上可以每个文件保存一个主题。

网页上,可能这是一个错觉,重启上次对话,能够继续交互。