目录

在emacs中集成和使用chatgpt

1 ChatGPT介绍

ChatGPT是一种基于GPT-3.5模型的聊天机器人,它可以通过自然语言与用户进行交互,提供有趣的对话体验。本质是基于深度学习的自然语言处理模型,可以生成高质量的自然语言文本。

前些日子, OpenAI 在官网开放了 ChatGPT API, 基于"gpt-3.5 - turbo" 模型, 比之前的网页版多了一些内容准确性和逻辑性的改进. 在定价上, OpenAI 每1000 个 token 0.002 美元, 可谓十分低廉.

而在 emacs 中集成 chatgpt 的最大优势在于可以有效利用 emacs 的高拓展性实现自己的定制需求, 方便整合信息进入我们的工作流中.

经过一段时间的使用, 推荐manateelazycat 大佬开发的 mind-wave , 其一大优点在于将当前的所有对话均保存在一个buffer中, 后续可以随时继续访问这个buffer对应文件, 从而获取之前的对话内容, 同时还封装了很多便捷的指令, 非常高效.

2 ChatGPT 注册

本文的重点在于和 emacs 的配合, 因此如何注册可参考这篇文章, 这里仅做一些简单说明 https://juejin.cn/post/7199657558834692157

2.1 准备条件

  1. 能通过代理科学上网, 可以尝试诸如 naiveproxy, v2ray 和 Shadowsocks 等方法通过浏览器访问 openai 的官网.
  2. 最好有一张国外信用卡, 国内发行的 visa 或者全币种卡不行, 可以使用一些其他虚拟方案.

如果你是 linux 系统, 可以使用 proxychains 等工具在命令行启用代理, 也可以直接使用如下方法( 这里假设你的 listening 是 0.0.0.0, port 是8888 和 8889):

export socks_proxy=socks5://0.0.0.0:8888
export http_proxy=http://0.0.0.0:8889
export https_proxy=http://0.0.0.0:8889

2.2 国外手机号

注册需要一个国外手机号, 如果你已经有了, 请跳过本节.

  1. 在 sms-activate.org 网站注册一个账号并登录,默认是使用邮箱注册的。
  2. 点击网站右上角的充值按钮,进入充值页面,目前最低充值 2 美元。
  3. 回到网站首页,在左侧搜索栏直接搜索 openai 虚拟手机号注册服务,可以随便选择一个国家号码,复制手机号码去 openai 官网注册服务。

2.3 注册 openai

点击官网链接,按照提示的流程往下输入信息, 其中手机验证阶段输入前面购买的虚拟手机号用来接收验证码即可。

2.4 获取API

点击右上角View API keys—> Create new secret key,可以生成API, 后续会用于 emacs 中使用。需要注意的是,出于安全原因,这个API只展示一次,请务必在关闭对话框之前,将其复制到你其他的地方保管

3 在emacs 中集成ChatGPT

首先是一些准备工作.

  1. 安装依赖:pip3 install openai epc sexpdata six
  2. 下载 mind-wave: git clone https://github.com/manateelazycat/mind-wave.git.
  3. 将OpenAI API Key保存到 mind-wave-api-key-path 所指向的文件中, 它的默认值是 ~/.emacs.d/mind-wave/chatgpt_api_key.txt.

接着在 emacs 中对 mind-wave 进行简单配置:

(add-to-list 'load-path "/path/to/mind-wave")
(autoload #'mind-wave-chat-mode "mind-wave" nil t)

最后打开任意文件, 也可新建一个"new_chats.chat" 文件, 然后 M-x 调用 mind-wave-chat-mode 即可.

4 常见使用方法与效果展示

  1. 执行命令 mind-wave-chat-ask(按下 Ctrl + j),输入问题,等待 ChatGPT 回答
  2. 执行命令 mind-wave-chat-continue (按下 Ctrl + u), 继续回答
  3. 执行命令 mind-wave-chat-generate-title (按下 Ctrl + i), 根据内容重新生成标题
  4. 如果更换话题,则换一个文件,然后继续向 ChatGPT 提问即可.

mind-wave 还封装了诸如翻译内容, 根据视频链接动态生成视频摘要, 根据网页链接生成网页概要等功能. 这些都十分有趣, 篇幅限制不多介绍, 欢迎大家自行探索.

下面展示一个提问 “请分析和预测一下中国足球何时能出线”