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 里配置#
- 注册后端。 在
init.el:(gptel-make-openai "DaoXE" :host "daoxe.com" :endpoint "/v1/chat/completions" :key "sk-you…-key" :stream t :models '("YOUR_EXACT_MODEL_ID"))。 - :host 只填域名。
:host只要 DNS ——daoxe.com,不带https://、不带/v1。协议默认 https;路径放:endpoint。 - 声明模型。
:models是手工列表 —— gptel 不会去拉GET /v1/models。照抄精确 ID;每个模型的 media/tool 能力用 plist 声明。 - 选模型发送。
M-x gptel-menu→ 选 DaoXE 和模型(菜单条目带后端名前缀);任意 buffer 直接发送。
;; 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-…。更多客户端见客户端设置说明。
验证你拿到的是真模型#
先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:
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 对比:
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 对准我们做对比 —— 别只听我们说。