在Emacs中运用gptel与智谱清言的奇妙体验

大家好,我在这里要分享一种在Emacs中与智谱清言互动的新方式——通过gptel包。gptel是一个 Emacs 的包,允许我们与各种语言模型进行交互,而智谱清言则是一个强大的语言模型服务。将两者结合,我们可以实现无缝的智能写作与文本生成。

以下是配置步骤:

  1. 首先,确保你已经安装了use-package,这是管理Emacs包的常用工具。

  2. 将以下配置加入你的init.el或相应的配置文件中:

    (use-package gptel
      :custom (gptel-temperature 0.1) ; 控制生成文本的随机性
      :config
      (add-hook 'gptel-post-response-functions 'gptel-end-of-response)
      (setq-default gptel-backend
                    (gptel-make-openai "ChatGLM"
                      :host "open.bigmodel.cn"
                      :endpoint "/api/paas/v4/chat/completions"
                      :models '("glm-4")
                      :stream t
                      :header '(("Authorization" .  "Bearer JWT-TOKEN")))))
    

    注意替换JWT-TOKEN为你从智谱清言获取的API Key生成的JWT。

  3. 配置完成后,你可以通过执行M-x gptel-send命令来发送当前buffer的内容给智谱清言,并接收其生成的回复。

希望我的分享能帮助你在Emacs中获得更好的语言模型体验。如果你有任何问题或建议,欢迎在Emacs-China社区交流。

—— 完结 ——

P.S. 请确保遵循智谱清言的API使用规范,合理使用服务。

3 个赞

帮我写一篇分享文章在Emacs-China发表,我要分享用gptel使用智谱清言

Emacs 配置

  (use-package gptel
    :custom (gptel-temperature 0.1)
    :config (add-hook 'gptel-post-response-functions 'gptel-end-of-response)
    (setq-default gptel-backend
                  (gptel-make-openai "ChatGLM"
                    :host "open.bigmodel.cn"
                    :endpoint "/api/paas/v4/chat/completions"
                    :models '("glm-4")
                    :stream t
                    :header '(("Authorization" .  "Bearer JWT-TOKEN")))))

参考 智谱AI开放平台 用 API Key 生成替换 JWT-TOKEN

执行 gptel-send 发送当前 buffer

国产的大模型现在和 GPT 相比质量如何?

目前感受下来只要不生成代码,可以代替很多搜索引擎的工作。今天试了下通过OpenRouter调用GPT-4的API,需要代码或正式文档的时候用GPT-4,普通问答结合GLM用。

1 个赞

貌似用不了,虽然命令行可以。帮忙看看配置?

   (gptel-make-openai "ChatGLM" 
     :host "open.bigmodel.cn"
     :endpoint "/api/paas/v4/chat/completions"
     :models '("glm-4")
     :stream t
     :header '(("Authorization" .  "Bearer My-api-key"))

配置本身没有任何问题。

不过需要注意的是 Authorization 的 Bearer 后面填的不是 API Key 而是 JWT Token。 JWT Token 可以用相应的 Python 库生成。

(setq gptel-log-level 'info)

将 gptel 的 log 打开然后看看 *gptel-log* buffer 显示的请求和响应。

另外你可以尝试:

:header '(("Authorization" . "Bearer JWT-TOKEN")) 部份替换成 :key "API-KEY"

我的体验资源包刚好今天到期测试不了。

感谢,按照官网生成了JWT token,把gptel-temperature设置成为0.1,确实可以用了。

1 个赞