在 gptel 里用 DaoXE

gptel 是 Emacs 上的自由软件 LLM 客户端:任意 buffer 里对话、Markdown/Org 回复、elisp 工具。它说 OpenAI 线格式,接 DaoXE 只差一次后端注册。

更新于 2026-09-15

gptel 是 Emacs 的 LLM 客户端 —— 任意 buffer 发问、Markdown/Org 回复、客户端 elisp 工具。OpenAI 兼容面走 gptel-make-openai 注册,所以 DaoXE 就是一次配置:host、endpoint、key、加你声明的模型列表(最便宜 API 教程)。

为什么让 gptel 走 DaoXE#

  • 每个 buffer 都有 AI。补全、改写、问答直接发生在 org-mode、代码、magit 里 —— 回复落在你本来工作的地方。
  • 客户端侧工具。gptel 的 elisp 工具与 MCP 集成走 OpenAI 兼容路径发 function call —— DaoXE 上真支持工具调用的模型照常发力。
  • key 留在 Emacs 里。auth-source、环境变量或返回 key 的函数都行 —— 明文密钥不必躺进 dotfile。

在 gptel 里配置#

  1. 注册后端。 在 init.el:(gptel-make-openai "DaoXE" :host "daoxe.com" :endpoint "/v1/chat/completions" :key "sk-you…-key" :stream t :models '("YOUR_EXACT_MODEL_ID"))。
  2. :host 只填域名。 :host 只要 DNS —— daoxe.com,不带 https://、不带 /v1。协议默认 https;路径放 :endpoint。
  3. 声明模型。 :models 是手工列表 —— gptel 不会去拉 GET /v1/models。照抄精确 ID;每个模型的 media/tool 能力用 plist 声明。
  4. 选模型发送。 M-x gptel-menu → 选 DaoXE 和模型(菜单条目带后端名前缀);任意 buffer 直接发送。
elisp
;; init.el — register DaoXE as an OpenAI-compatible gptel backend
(gptel-make-openai "DaoXE"
  :host "daoxe.com"                  ; DNS only — no scheme, no path
  :endpoint "/v1/chat/completions"   ; gptel joins protocol://host + endpoint
  :key "sk-you…-key"                 ; or an authinfo entry / a key-returning fn
  :stream t                          ; streaming defaults to nil
  :models '("YOUR_EXACT_MODEL_ID"))  ; gptel does not fetch /v1/models

;; ~/.authinfo alternative:
;; machine daoxe.com login apikey password sk-you…-key

值得注意的坑

:host 规则是反的:gptel 只要 DNS —— daoxe.com,不带协议不带路径;/v1/chat/completions 放进 :endpoint(这也是它的默认值,最简配置可以省略)。流式默认关:加 :stream t,否则每次回答整块异步到达。不会拉 /models::models 就是你声明的那些 —— ID 打错第一条消息就失败;media/tool-use 等能力按模型用 plist 声明,不会自动探测。key:auth-source 用端点域名作 HOST、用户名 apikey —— machine daoxe.com login apikey password sk-…。更多客户端见客户端设置说明。

验证你拿到的是真模型#

先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:

bash
export DAOXE_API_KEY="your_api_key"

# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/models \
  -H "Authorization: Bearer ${DAOXE_API_KEY}"

先在 Emacs 之外验证端点,再在 temperature 0 下把难题与官方 API 对比:

bash
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/chat/completions \
  -H "Authorization: Bearer ${DAOXE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EXACT_MODEL_ID",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Say hello in one sentence."}]
  }'

别信我们 —— 自己验证

把 开源 benchmark 对准 DaoXE 和官方 API,在 temperature 0 下对比。再学会如何鉴别掉包,让便宜端点无法悄悄把你换成更小的模型。

常见问题#

gptel 能接 DaoXE 吗?

能 —— gptel-make-openai 配 :host daoxe.com 与 :endpoint /v1/chat/completions,DaoXE 就是一个 gptel 后端。

为什么后端 404 或连接被拒?

多半是把 https:// 或路径写进了 :host。只留 DNS,协议默认 https,路径归 :endpoint。

tools 和 reasoning 可用吗?

对真支持 function calling 的模型,gptel 走 OpenAI 兼容路径发工具;reasoning 块从 reasoning/reasoning_content 字段读取,按 gptel-include-reasoning 展示。

费用?

按模型、随账号 —— 实时定价;充值统一 1 元 = $1 额度。

试用 DaoXE —— 并亲自 benchmark 它

一个 key 调 GPT、Claude、Gemini、DeepSeek 等。用开源 benchmark 对准我们做对比 —— 别只听我们说。