Cookbook

2026-10-14

概览

Cookbook 只回答一个问题:怎么把 Praxis 接进你手上的东西。概念与架构在开发者文档,端点与参数在 API,这里只放可复制的接入步骤。

按工具选择接入方式

绝大多数工具只需要三件事:Base URL、API Key、模型 ID。

你在用什么推荐入口协议
Claude Code、Codex、Gemini CLI 等编程 Agent客户端与 Coding AgentAnthropic / OpenAI / Google
Cursor、Windsurf、Trae 等 IDEIDE 接入OpenAI 兼容
Cherry Studio、Open WebUI、Chatbox 等聊天客户端聊天客户端OpenAI 兼容
Dify、Coze、FastGPT、n8n 等应用平台框架与应用OpenAI 兼容
自己写的服务端代码模型任务任意协议
Cloudflare Workers、Next.js 等运行时部署与运行时服务端代理

按任务找食谱

食谱解决什么
客户端与 Coding Agent把 Praxis 接进已经在用的工具
框架与应用SDK、低代码平台与自己的应用
模型任务第一个请求、流式、结构化输出、多模态
智能体与沙箱Managed Agent、沙箱执行、浏览器与 RAG
部署与运行时Cloudflare Workers、Next.js、服务端代理
生产化Key 安全、重试降级、成本与观测

从兼容协议迁移

运行示例前的准备

  1. API Key:在 Console 创建,请求头为 Authorization: Bearer <key>,详见鉴权与 Key。
  2. Base URL:生产环境是 https://api.deepraxis.ai。
  3. 模型 ID:从模型目录选择,例如 deepseek-v4-flash。
curl https://api.deepraxis.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"你好"}]}'

遇到 401 / 404 / 模型不存在?先看限流与错误。

编程 Agent

Claude Code

把 Praxis 接入 Claude Code,在终端里用你的 Key 驱动编程智能体——改代码、跑命令、答问题。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、配置与验证。

你将完成

  • 在终端用 claude 命令调用 Praxis 的模型
  • 完成标志:claude -p "…" 收到模型回复
  • 预计耗时:3 分钟(不含 Node.js 安装)
  • 支持协议:Anthropic 兼容(Claude Code 原生协议)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,弹窗中名称必填,有效期默认 90 天(可改永久),点创建后立即复制保存;之后也随时可在 Key 列表行点「复制」重新获取完整 Key。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高。终端运行 node --version 检查;没有就到 nodejs.org 装 LTS 版。

  • 安装 Claude Code:

    npm install -g @anthropic-ai/claude-code

    期望:claude --version 输出版本号(本页以 2.1.211 为准)。

配置

第 1 步:写入配置文件

创建 ~/.claude/settings.json(Windows 原生版为 %USERPROFILE%\.claude\settings.json),填入:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepraxis.ai/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-praxis-你的Key"
  },
  "model": "deepseek-flash"
}

两处说明:

  • model 必须指定。Claude Code 默认请求的模型不在 Praxis 目录里,不指定会在首次对话时报「Model does not exist」。deepseek-flash 是平台示例模型——便宜、快、中英文都好;目录里的其他模型同样可填。
  • 密钥写在 ANTHROPIC_AUTH_TOKEN,不是 ANTHROPIC_API_KEY——后者是官方直连时用的,配网关时无效。

期望:文件保存即生效,无需重启任何服务。

终端里查看 ~/.claude/settings.json 的实际内容

第 2 步(可选):临时会话不落盘

不想把 Key 写进文件时,可以用一次性环境变量:

ANTHROPIC_BASE_URL=https://api.deepraxis.ai/anthropic \
ANTHROPIC_AUTH_TOKEN=sk-praxis-你的Key \
claude --model deepseek-flash -p "你好"

期望:收到中文回复。Windows PowerShell 用户不必用此方式,直接按第 1 步写入配置文件即可。在代码项目目录里运行时,回复可能带上该项目 AGENTS.md / CLAUDE.md 的上下文口吻,属正常。

验证

claude -p "用中文回复四个字:连接成功"

期望:终端直接输出 连接成功——收到回复即接入成功。

终端运行 claude -p 的真实输出

去掉 -p 进入交互模式,就是完整的编程智能体工作台。首次启动会先让你选界面主题,选完即进入主界面:

claude 交互模式欢迎屏

也可以在命令行完成等价验证。先设置变量(不然照抄 curl 会得到 401):

export PRAXIS_API_KEY=sk-praxis-你的Key

以下命令为 macOS / Linux / WSL(bash)写法。Windows PowerShell 用户:上面 claude -p 已收到回复即接入成功,可跳过;如需命令行验证,先执行 $env:PRAXIS_API_KEY="你的Key",再把 curl 写成一行(去掉每行末尾的 \)。

curl https://api.deepraxis.ai/anthropic/v1/messages \
  -H "x-api-key: $PRAXIS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-flash", "max_tokens": 256, "messages": [{"role": "user", "content": "你好"}]}'

期望:HTTP 200 即接入成功。content 中 type 为 text 的块是回复文本——deepseek-flash 是推理模型,前面可能先带一段 thinking 块,属正常。

最后看一眼 控制台 → 用量与费用:刚才的调用已经记在账上——每一次调用都有账、可追溯。

控制台用量与费用页:deepseek-flash 的调用已逐笔记账

常见问题

症状原因解法
首次对话报「issue with the selected model … may not exist」或 Model … does not exist没有指定 model,Claude Code 用了它的默认模型,而它不在 Praxis 目录里在 settings.json 加 "model",或命令加 --model,填目录内的模型(如 deepseek-flash)
提示无效令牌 / 401Key 复制不完整或已吊销;或把 Key 写进了 ANTHROPIC_API_KEY重新完整复制(注意 sk-praxis- 前缀);确认写在 ANTHROPIC_AUTH_TOKEN;仍失败到控制台重建一个
Connection closed mid-response网络瞬断直接重试一次即可
npm install -g 报权限错误系统 npm 全局目录不可写设用户级前缀重装,或改用官方脚本安装(命令见下);两法细节见 npm 官方指南

官方安装脚本:

curl -fsSL https://claude.ai/install.sh | bash

进阶

  • 查这段对话花了多少钱:控制台 → 用量与费用,按次计费、无闲置费
  • 换模型:改 settings.json 的 model(或临时用 --model)。要 Claude 系旗舰就填 claude-opus-5;要固定版本快照用 deepseek-v4-flash,deepseek-flash 则始终指向最新一代 Flash
  • 在项目里用:进入代码目录直接运行 claude,它能读文件、改代码、执行命令——每一项动作都会先征求你的确认

相关食谱

Codex

把 Praxis 接入 Codex,在终端里用你的 Key 驱动 OpenAI 的编程智能体——改代码、跑命令、答问题。密钥只存环境变量,不落配置文件。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、配置与验证。

你将完成

  • 在终端用 codex 命令调用 Praxis 的模型
  • 完成标志:codex exec "…" 收到模型回复
  • 预计耗时:3–5 分钟(不含 Node.js 安装)
  • 支持协议:OpenAI Responses(Codex 原生协议)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,弹窗中名称必填,有效期默认 90 天(可改永久),点创建后弹窗会展示完整 Key 一次——立即复制保存;之后也随时可在 Key 列表行点复制图标(悬停行时出现)重新获取完整 Key。若弹窗长时间停在「创建中…」,刷新列表确认 Key 已生成即可,行内复制同样能拿到完整 Key。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高。终端运行 node --version 检查;没有就到 nodejs.org 装 LTS 版。

  • 安装 Codex CLI:

    npm install -g @openai/codex

    期望:codex --version 输出 codex-cli <版本号>(本页以 0.162.1 为准)。

配置

第 1 步:写配置文件

创建 ~/.codex/config.toml(Windows 为 %USERPROFILE%\.codex\config.toml):

model = "deepseek-flash"
model_provider = "praxis"

[model_providers.praxis]
name = "Praxis"
base_url = "https://api.deepraxis.ai/openai/v1"
env_key = "PRAXIS_API_KEY"
wire_api = "responses"

三处说明:

  • 密钥不写进这个文件——env_key 声明从环境变量 PRAXIS_API_KEY 读取,下一步设置。
  • wire_api 必须是 responses:Codex 走的是 OpenAI Responses 协议,不是传统 chat completions。
  • model 填目录内的模型 ID;deepseek-flash 是平台示例模型——便宜、快、中英文都好。

期望:文件保存后,下一次启动的 codex 命令即使用新配置(已开着的会话需退出重进)。

终端里查看 ~/.codex/config.toml 的实际内容

第 2 步:设置密钥环境变量

macOS / Linux(WSL 同):

export PRAXIS_API_KEY=sk-praxis-你的Key

想持久化就把这行加进 ~/.bashrc 或 ~/.zshrc。Windows PowerShell:$env:PRAXIS_API_KEY="你的Key"(或设置系统级环境变量后重开终端)。

期望:echo $PRAXIS_API_KEY 输出你的 Key(PowerShell 用 echo $env:PRAXIS_API_KEY)。

验证

进入一个代码项目目录(git 仓库),运行:

codex exec "用中文回复四个字:连接成功"

期望:回复正文包含 连接成功,末尾附 tokens used 统计——收到回复即接入成功。首次运行可能提示「Model metadata for deepseek-flash not found … Defaulting to fallback metadata」,这是自定义模型的正常回退提示,不影响使用。

终端运行 codex exec 的真实输出

去掉 exec 直接运行 codex,进入交互式工作台(出现版本横幅与输入框即进入;本页不验证此项)。

也可以在命令行完成等价验证。先设置变量(不然照抄 curl 会得到 401):

export PRAXIS_API_KEY=sk-praxis-你的Key
curl https://api.deepraxis.ai/openai/v1/responses \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-flash", "input": "你好", "max_output_tokens": 256}'

期望:HTTP 200 即接入成功。output 里 type 为 text 的块是回复文本——deepseek-flash 是推理模型,前面可能先带 reasoning 块,属正常。

上述命令为 macOS / Linux / WSL(bash)写法。Windows PowerShell 用户:上面的 codex exec 已成功即接入完成,可跳过;如需命令行验证,先 $env:PRAXIS_API_KEY="你的Key",用 curl.exe(PowerShell 的 curl 是别名,语法不同),并把命令并成一行(去掉行尾 \)。

最后看一眼 控制台 → 用量与费用:刚才的调用已经记在账上——每一次调用都有账、可追溯。

常见问题

症状原因解法
提示 Model metadata … not found自定义模型不在 Codex 内置元数据表里正常回退提示,直接用;不影响对话与工具调用
提示无效令牌 / 401PRAXIS_API_KEY 未导出、复制不完整,或改完 shellrc 没重开终端echo $PRAXIS_API_KEY 检查;重新完整复制;重开终端让配置生效
报 Not inside a trusted directory …不在 git 仓库目录里运行进项目目录运行;或临时加 --skip-git-repo-check
报 unknown configuration fieldCodex 版本较旧,不认识新配置键npm install -g @openai/codex 升级后重试
报模型不存在模型 ID 与目录不一致到控制台 → 模型复制确切 ID

进阶

  • 查这段对话花了多少钱:控制台 → 用量与费用,按次计费、无闲置费
  • 换模型:改 config.toml 的 model,或运行 codex -m <模型ID>。可选 deepseek-flash、deepseek-v4-flash。Codex 只能使用声明了 Responses 协议的模型;在模型目录打开模型详情,确认支持协议包含 Responses 后再选择。
  • 在项目里用:codex 交互模式能读文件、改代码、执行命令,敏感动作会先征求你的确认

相关食谱

Cline

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Cline 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

OpenCode

把 Praxis 接入 OpenCode——开源终端编程智能体。项目里放一个 opencode.json 声明 provider,密钥走环境变量,opencode run 即通。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、配置与验证。

你将完成

  • 在终端用 opencode run 调 Praxis 的模型
  • 完成标志:opencode run "…" 收到模型回复
  • 预计耗时:3–5 分钟(不含 Node.js 安装)
  • 支持协议:OpenAI 兼容(/openai/v1)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期可选 30/60/90 天或永久、默认 90 天;创建成功弹窗会展示完整 Key 并带「复制 Key」,关闭后列表只显示掩码,随时可点行内复制图标重新获取完整 Key。期望:弹出「创建 API Key」对话框,提交后弹窗展示完整 Key 与「复制 Key」按钮。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查)。

  • 安装 OpenCode:

    npm install -g opencode-ai

    期望:opencode --version 输出版本号(本页以 1.19.0 为准)。若 npm 提示平台包问题,按提示补装对应平台包(Linux x64 为 npm install -g opencode-linux-x64)。

配置

第 1 步:设置密钥环境变量

export PRAXIS_API_KEY=sk-praxis-你的Key

想持久化就把这行加进 ~/.bashrc 或 ~/.zshrc。Windows PowerShell:$env:PRAXIS_API_KEY="你的Key"。

期望:echo $PRAXIS_API_KEY 输出你的 Key(PowerShell 用 echo $env:PRAXIS_API_KEY)。

第 2 步:在项目里声明 provider

进入你的代码项目目录,创建 opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "praxis": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Praxis",
      "options": {
        "baseURL": "https://api.deepraxis.ai/openai/v1",
        "apiKey": "{env:PRAXIS_API_KEY}"
      },
      "models": {
        "deepseek-flash": {}
      }
    }
  },
  "model": "praxis/deepseek-flash"
}

三处说明:

  • npm 指定 OpenCode 用 @ai-sdk/openai-compatible 驱动对话——OpenCode 的 provider 体系建立在 AI SDK 之上,首次运行会自动装驱动。
  • apiKey 用 {env:PRAXIS_API_KEY} 引用环境变量——密钥不落文件。
  • 模型以 provider/模型ID 的命名空间引用;deepseek-flash 是平台示例模型。

期望:文件保存即生效。

终端里查看 opencode.json 的实际内容

验证

在项目目录里运行:

opencode run "用中文回复四个字:连接成功"

期望:末行为模型回复 连接成功(其前有一行会话标题,如 > build · deepseek-flash)——收到回复即接入成功。去掉 run 直接运行 opencode,进入交互式终端界面。

终端运行 opencode run 的真实输出

也可以在命令行完成等价验证。以下命令为 macOS / Linux / WSL(bash)写法;Windows PowerShell 用户:上面的 opencode run 已成功即可跳过;如需命令行验证,先执行 $env:PRAXIS_API_KEY="你的Key",用 curl.exe(PowerShell 的 curl 是别名,语法不同),并把命令并成一行(去掉行尾 \)。

export PRAXIS_API_KEY=sk-praxis-你的Key
curl https://api.deepraxis.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-flash", "messages": [{"role": "user", "content": "你好"}]}' \
  -w '\nHTTP %{http_code}\n'

期望:HTTP 200 即接入成功,choices[0].message.content 是回复文本(响应出现 reasoning / reasoning_details 字段也正常——推理模型的思维链)。

最后看一眼 控制台 → 用量与费用:刚才的调用已经记在账上——每一次调用都有账、可追溯。用量页默认按资源聚合展示,点「查看用量明细」或某资源行可逐笔核对。

常见问题

症状原因解法
401 / Missing authentication密钥未导出,或 apiKey 没用 {env:…} 引用先 echo $PRAXIS_API_KEY 检查;确认 apiKey 写的是 {env:PRAXIS_API_KEY}
报 EACCES(mkdir ~/.local/share 或 ~/.config 等)OpenCode 需要可写的用户数据目录,当前环境不可写把 XDG_DATA_HOME/XDG_CONFIG_HOME/XDG_STATE_HOME/XDG_CACHE_HOME 指向可写目录后重试
报平台包安装失败npm 没装对平台的二进制包按报错提示补装(Linux x64 为 opencode-linux-x64)
404 / 路径不存在baseURL 写错必须是 https://api.deepraxis.ai/openai/v1(以 /openai/v1 结尾)
模型不存在模型 ID 与目录不一致到控制台 → 模型 → 模型目录复制确切 ID

进阶

  • 查这次对话花了多少钱:控制台 → 用量与费用,按次计费、无闲置费
  • 换模型:在 models 里加目录中的其他 ID(如 claude-opus-5),并把 model 改成 praxis/<新ID>
  • 在项目里用:交互模式能读文件、改代码、执行命令,敏感动作会先征求你的确认

相关食谱

Kilo Code

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注自动从 /openai/v1/models 拉取模型列表

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Kilo Code 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Roo Code

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Roo Code 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Gemini CLI

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议Google (generateContent)
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Gemini CLI 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Kimi Code

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Kimi Code 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Qwen Code

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注Gemini CLI 分支,走 OPENAI_BASE_URL

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Qwen Code 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

AI IDE

Trae

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容(国内版待核实)
备注字节;自定义模型入口待核实

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Trae 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

WorkBuddy / CodeBuddy

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议待核实
备注腾讯;自定义模型入口待核实

前提

一个 API Key(见快速开始)。

配置

(待补充:在 WorkBuddy / CodeBuddy 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Cursor

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注Override OpenAI Base URL

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Cursor 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Windsurf

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Windsurf 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

通义灵码

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议待核实
备注阿里

前提

一个 API Key(见快速开始)。

配置

(待补充:在 通义灵码 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

聊天客户端

Cherry Studio

把 Praxis 接入 Cherry Studio,用一个 Key 聊所有模型——全程不写代码。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成配置与验证。

你将完成

  • 在 Cherry Studio 里直接使用 Praxis 的模型对话
  • 完成标志:向 deepseek-flash 发送「你好」并收到回复
  • 预计耗时:5 分钟(不含下载安装)
  • 支持协议:OpenAI 兼容(本页路线)/ Anthropic 兼容(见进阶)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,弹窗中名称必填,有效期默认 90 天(可改永久),点创建后立即复制保存;之后也随时可在 Key 列表行点「复制」重新获取完整 Key。新账号自带 $1 免费额度,跑完本页绰绰有余。完整流程见快速开始。
  • Cherry Studio 已安装。从官网下载(自动匹配系统),或到 GitHub Releases 手选:Windows 选 -setup.exe(安装版)或 -portable.exe(免安装);macOS 选 .dmg(Intel 芯片选 x64,Apple 芯片选 arm64);Linux 选 .AppImage(下载后 chmod +x 加执行权限再运行)。
  • 首次启动:先选语言(默认 English,可切中文),欢迎页点「稍后设置」跳过登录即可使用。
  • 本页以 v2.1.4 界面为准,菜单位置可能随版本微调。

配置

第 1 步:打开模型服务设置

主界面左下角的齿轮图标「设置」,再点左侧菜单「模型服务」。

期望:右侧出现提供商列表(OpenAI、硅基流动、智谱开放平台……)。

设置入口:左下角齿轮进入设置,左侧菜单选「模型服务」,右侧是提供商列表

第 2 步:添加服务商,一次填齐名称、密钥、地址

点提供商列表底部的「添加服务商」按钮,弹窗「添加自定义提供商」里填三处:

字段填什么
提供商名称(必填)Praxis(显示名,可任取)
API 密钥sk-praxis- 开头的你的 Key
端点设置 → OpenAI 根地址https://api.deepraxis.ai/openai/v1

地址必须以 /v1 结尾——弹窗会实时显示「请求路径」预览,看到 …/openai/v1/chat/completions 即为正确。填完点「添加」。

期望:提供商列表末尾出现 Praxis 条目,卡片上密钥显示为掩码。

添加自定义提供商弹窗:名称填 Praxis,密钥与 OpenAI 根地址已填,下方显示请求路径预览

第 3 步:添加模型

添加成功后,Cherry Studio 会自动拉取 Praxis 的模型目录并弹出「选择模型」对话框。在列表中勾选 deepseek-flash——平台示例模型:便宜、快、中英文都好——点「添加所选模型」,应用会自动检测并启用。

期望:模型出现在 Praxis 的模型列表中,启用开关为开。

选择模型对话框:自动拉取的模型目录中勾选 deepseek-flash

拉取失败或列表为空时,点 Praxis 卡片上的「手动添加模型」,模型 ID 填 deepseek-flash,其余留空即可。

验证

回到对话页,点右上角的模型选择器,切到 Praxis 下的 deepseek-flash,发送「你好」。

期望:几秒内收到一段中文回复——收到回复即接入成功。

对话页收到第一条回复:模型选择器显示 DeepSeek V4.1 Flash | Praxis

也可以在命令行完成等价验证。先设置变量(不然照抄 curl 会得到 401):

export PRAXIS_API_KEY=sk-praxis-你的Key

以下命令为 macOS / Linux / WSL(bash)写法。Windows PowerShell 用户:界面已收到回复即接入成功,可跳过;如需命令行验证,先执行 $env:PRAXIS_API_KEY="你的Key",再把 curl 写成一行(去掉每行末尾的 \)。

curl https://api.deepraxis.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-flash", "messages": [{"role": "user", "content": "你好"}]}'

期望:返回 HTTP 200,choices[0].message.content 是一段中文回复(响应里出现 reasoning 字段也正常——那是推理模型的思维链)。返回 401 是密钥问题,报「模型不存在」是 ID 拼写问题——对照下方常见问题。

最后看一眼 控制台 → 用量与费用:刚才的调用已经记在账上——每一次调用都有账、可追溯。

常见问题

症状原因解法
提示无效令牌 / 401密钥复制不完整,或 Key 已被吊销重新完整复制(注意 sk-praxis- 前缀);仍失败就到控制台重建一个
首次发消息报「需要通过本地 API Gateway 桥接,网关已禁用」本地网关默认关闭按弹窗提示点「启用」,再重发一次
模型列表拉取失败或为空API 地址路径不对地址必须是 https://api.deepraxis.ai/openai/v1(以 /v1 结尾,弹窗的请求路径预览可自查);先跑上面 curl 分辨是网络还是配置问题;拉取不成用「手动添加模型」
报「模型不存在」模型 ID 与目录不一致到控制台 → 模型复制确切 ID
请求超时 / 无响应本地网络环境换网络或代理后重试;若 curl 同样超时,则是网络问题,与配置无关

进阶

  • 查这段对话花了多少钱:控制台 → 用量与费用,按次计费、无闲置费
  • 换模型:模型列表里随时勾选添加其他模型,对话页随时切换。deepseek-flash 是滚动入口,始终指向最新一代 Flash(随官方更新换代);需要固定版本时改用 deepseek-v4-flash(版本快照)
  • 用 Anthropic 协议接入:在第 2 步弹窗的端点设置里改填 Anthropic 根地址 https://api.deepraxis.ai/anthropic(不加 /v1,客户端自动拼 /v1/messages,弹窗预览可核对),其余步骤相同

相关食谱

Chatbox

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Chatbox 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

ChatWise

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 ChatWise 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

LobeHub

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 LobeHub 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Open WebUI

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Open WebUI 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

NextChat

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 NextChat 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

智能体与工作流平台

Dify

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容 provider
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Dify 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

Coze

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容 provider
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 Coze 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

n8n

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容节点
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 n8n 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

FastGPT

待补充

本页是接入模板占位,配置步骤、截图与视频尚未填写。
支持协议OpenAI 兼容 provider
备注—

前提

一个 API Key(见快速开始)。

配置

(待补充:在 FastGPT 中填入 https://api.deepraxis.ai 与 API Key 的步骤,配截图 / 30 秒视频。)

验证

(待补充:接入成功的界面长什么样。)

常见问题

(待补充:模型 id 怎么填、流式、国内网络。)

SDK 与框架

OpenAI SDK

把 Praxis 接入 OpenAI 官方 SDK——已有一切 OpenAI 代码不用换库,只改一个 baseURL。本页 Node 与 Python 均实测(其余语言同形)。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、运行与验证。

你将完成

  • 用 OpenAI SDK 调 Praxis 的模型,拿到回复与用量
  • 完成标志:hello.mjs 打印中文回复与 usage,stream.mjs 逐字打印回复
  • 预计耗时:3 分钟(不含 Node.js 安装)
  • 支持协议:OpenAI 兼容(/openai/v1)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期默认 90 天(可改永久),创建后立即复制保存;之后也随时可在 Key 列表行点复制图标重新获取完整 Key。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查;用 Bun 亦可)。

  • 安装 SDK:在项目目录里

    npm install openai

    期望:安装无报错,node -e "require('openai')" 不抛错。

第一个请求

新建 hello.mjs,原样粘贴(把 Key 换成你的):

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.deepraxis.ai/openai/v1",
  apiKey: "sk-praxis-你的Key",
});

const completion = await client.chat.completions.create({
  model: "deepseek-flash",
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});

console.log(completion.choices[0].message.content);
console.log(completion.usage);

运行:

node hello.mjs

期望:打印一段中文回复,随后是 usage 对象——注意里面有 cost 字段,这次调用花了多少钱直接给你算好(平台按次计费,控制台用量与费用同口径)。

终端运行示例脚本的真实输出

建议把 Key 放进环境变量而不是写进代码:export PRAXIS_API_KEY=sk-praxis-…(PowerShell:$env:PRAXIS_API_KEY="…"),然后 apiKey: process.env.PRAXIS_API_KEY。

Python 版

pip install openai

先设置环境变量 export PRAXIS_API_KEY=sk-praxis-你的Key(PowerShell:$env:PRAXIS_API_KEY="你的Key"),再新建 hello.py:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepraxis.ai/openai/v1",
    api_key=os.environ["PRAXIS_API_KEY"],
)

completion = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)

print(completion.choices[0].message.content)
print(completion.usage)

运行 python3 hello.py。期望:打印中文回复,随后是 CompletionUsage——其中 cost 字段直接给出本次费用。流式用法与 Node 同形(stream=True 后迭代 delta.content)。

Python 版示例的真实输出

流式响应

新建 stream.mjs:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.deepraxis.ai/openai/v1",
  apiKey: process.env.PRAXIS_API_KEY,
});

const stream = await client.chat.completions.create({
  model: "glm-5.3-flash",
  messages: [{ role: "user", content: "用两句话解释什么是 API" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
console.log();

期望:回复逐字打印、以换行收尾——这就是流式。示例用 glm-5.3-flash;流式支持按模型路由而异,个别路由可能暂未开放,详见下方常见问题。

终端运行流式示例:回复逐字输出

常见问题

症状原因解法
401 / 无效令牌Key 复制不完整或未设进环境变量重新完整复制(注意 sk-praxis- 前缀);用 echo $PRAXIS_API_KEY 检查
400 STREAMING_UNPROVEN该模型暂未开放流式(逐路由开通,偶发)去掉 stream: true,或换个模型重试
模型不存在模型 ID 与目录不一致到控制台 → 模型复制确切 ID
连接超时本地网络重试或换网络;也可先用下面的命令测网关连通(期望 200)

连通性自检:

curl -sS https://api.deepraxis.ai/openai/v1/models \
  -H "Authorization: Bearer $PRAXIS_API_KEY" -o /dev/null -w "%{http_code}"

期望输出 200。

进阶

  • 查这次调用花了多少钱:非流式调用的 usage.cost 直接返回费用,无需自行按 token 换算;流式的费用在最后一个 chunk 的 usage 里(该 chunk 的 choices 为空、含 cost)——stream_options: { include_usage: true } 可加可不加,平台两种情况都会回;控制台 → 用量与费用有逐笔明细
  • 列出可用模型:await client.models.list()——和控制台 → 模型同源
  • 换模型:改 model 字段即可;deepseek-flash 是滚动入口始终指向最新一代 Flash,deepseek-v4-flash 是固定版本快照

相关食谱

Anthropic SDK

把 Praxis 接入 Anthropic 官方 SDK——已有一切 Anthropic 代码不用换库,只改一个 baseURL。本页 Node 与 Python 均实测(其余语言同形)。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、运行与验证。

你将完成

  • 用 Anthropic SDK 调 Praxis 的模型,拿到回复与用量
  • 完成标志:hello.mjs 打印中文回复与 usage,stream.mjs 逐字打印回复
  • 预计耗时:3 分钟(不含 Node.js 安装)
  • 支持协议:Anthropic 兼容(/anthropic)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期默认 90 天(可改永久);创建成功弹窗会展示完整 Key 并带「复制 Key」,关闭后列表只显示掩码,随时可点行内复制图标重新获取完整 Key。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查;用 Bun 亦可)。

  • 安装 SDK——注意包名是 @anthropic-ai/sdk(npm 上的 anthropic 是同名的占位包,不是它):

    npm install @anthropic-ai/sdk

    期望:安装无报错。

第一个请求

先把 Key 放进环境变量(export PRAXIS_API_KEY=sk-praxis-…;PowerShell:$env:PRAXIS_API_KEY="…"),再新建 hello.mjs:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.deepraxis.ai/anthropic",
  apiKey: "sk-praxis-你的Key",
});

const message = await client.messages.create({
  model: "deepseek-flash",
  max_tokens: 256,
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});

console.log(message.content.find((b) => b.type === "text")?.text);
console.log(message.usage);

运行:

node hello.mjs

期望:打印一段中文回复,随后是 usage——至少包含 input_tokens / output_tokens,SDK 还会附带缓存、服务分层等字段。两处注意:max_tokens 必填(Anthropic 协议的要求);content 是块数组,取 type 为 text 的块是回复文本——推理模型前面可能先带 thinking 块。

终端运行示例脚本的真实输出

Python 版

pip install anthropic

新建 hello.py:

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.deepraxis.ai/anthropic",
    api_key=os.environ["PRAXIS_API_KEY"],
)

message = client.messages.create(
    model="deepseek-flash",
    max_tokens=256,
    messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)

print(next(b.text for b in message.content if b.type == "text"))
print(message.usage)

运行 python3 hello.py。期望:打印中文回复,随后是 Usage——同样必填 max_tokens,content 是块数组。流式用 client.messages.stream(...) 上下文管理器,与 Node 同形。

Python 版示例的真实输出

流式响应

新建 stream.mjs:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.deepraxis.ai/anthropic",
  apiKey: process.env.PRAXIS_API_KEY,
});

const stream = client.messages.stream({
  model: "deepseek-flash",
  max_tokens: 256,
  messages: [{ role: "user", content: "用两句话解释什么是 API" }],
});

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}
console.log();

期望:回复逐字打印、以换行收尾。流式支持按模型路由而异,个别路由可能暂未开放(报 STREAMING_UNPROVEN 时去掉流式或换模型重试)。

终端运行流式示例:回复逐字输出

常见问题

症状原因解法
导入名为 anthropic 的包后运行失败(报错指向 node_modules/anthropic/index.js 缺失或 main 无效)装到了 npm 上的同名占位包卸掉重装正主:卸载 anthropic 后安装 @anthropic-ai/sdk
401 / 无效令牌Key 复制不完整或未设进环境变量重新完整复制(注意 sk-praxis- 前缀);用 echo $PRAXIS_API_KEY 检查
400 提示缺 max_tokensAnthropic 协议必填该参数在 messages.create 里加上 max_tokens(如 256)
400 STREAMING_UNPROVEN该模型路由暂未开放流式去掉流式用普通调用,或换个模型重试
模型不存在模型 ID 与目录不一致到控制台 → 模型复制确切 ID

进阶

  • 查这次调用花了多少钱:非流式 message.usage.cost(Python SDK)直接返回费用;流式在 message_delta 事件的 usage.cost 上(get_final_message().usage 不带该字段)。JS SDK 的 Usage 类型不声明 cost(运行时字段仍在,as any 可读),Node 用户也可看控制台 → 用量与费用逐笔明细,或走 OpenAI SDK
  • 换模型:改 model 字段即可,Claude 系旗舰填 claude-opus-5;deepseek-flash 是滚动入口始终指向最新一代 Flash
  • 拿思维链:推理模型的 content 里 type 为 thinking 的块即思维链,按需读取

相关食谱

Vercel AI SDK

把 Praxis 接入 Vercel AI SDK——React/Vue/Svelte 里做 AI 应用的事实标准库。自定义 provider 两个参数即接通,generateText / streamText 及全家能力照常用。本页以 Node 实测。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、运行与验证。

你将完成

  • 用 AI SDK 的 generateText / streamText 调 Praxis 的模型
  • 完成标志:hello.mjs 打印中文回复与 usage,stream.mjs 逐字打印回复
  • 预计耗时:3–5 分钟(不含 Node.js 安装)
  • 支持协议:OpenAI 兼容(/openai/v1)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期默认 90 天(可改永久);创建成功弹窗会展示完整 Key 并带「复制 Key」,关闭后列表只显示掩码,随时可点行内复制图标重新获取完整 Key。期望:弹出「创建 API Key」对话框,提交后弹窗展示完整 Key 与「复制 Key」按钮。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查;用 Bun 亦可)。

  • 安装 SDK:

    npm install ai @ai-sdk/openai

    期望:安装无报错。空目录直接装即可,无需先 npm init。

第一个请求

先把 Key 放进环境变量(export PRAXIS_API_KEY=sk-praxis-…;PowerShell:$env:PRAXIS_API_KEY="…"),再新建 hello.mjs:

import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const praxis = createOpenAI({
  baseURL: "https://api.deepraxis.ai/openai/v1",
  apiKey: process.env.PRAXIS_API_KEY,
});

const { text, usage } = await generateText({
  model: praxis("deepseek-flash"),
  prompt: "用一句话介绍你自己",
});

console.log(text);
console.log(usage);

运行:

node hello.mjs

期望:打印一段中文回复,随后是 usage 对象——驼峰形态,含 inputTokens / outputTokens / totalTokens 与 raw 原始字段;推理模型的 reasoningTokens 在 outputTokenDetails 明细里。

终端运行示例脚本的真实输出

流式响应

新建 stream.mjs:

import { createOpenAI } from "@ai-sdk/openai";
import { streamText } from "ai";

const praxis = createOpenAI({
  baseURL: "https://api.deepraxis.ai/openai/v1",
  apiKey: process.env.PRAXIS_API_KEY,
});

const stream = streamText({
  model: praxis("deepseek-flash"),
  prompt: "用两句话解释什么是 API",
});

for await (const chunk of stream.textStream) {
  process.stdout.write(chunk);
}
console.log();

期望:回复逐字打印、以换行收尾。流式支持因模型及其上游通道而异,个别可能暂未开放(报 STREAMING_UNPROVEN 时去掉流式或换模型重试)。

终端运行流式示例:回复逐字输出

常见问题

症状原因解法
401 / 无效令牌Key 复制不完整或未设进环境变量重新完整复制(注意 sk-praxis- 前缀);用 echo $PRAXIS_API_KEY 检查
404 / 路径不存在baseURL 少了 /openai/v1 后缀必须是 https://api.deepraxis.ai/openai/v1(以 /v1 结尾)
400 STREAMING_UNPROVEN该模型路由暂未开放流式去掉流式用 generateText,或换个模型重试
模型不存在模型 ID 与目录不一致到控制台 → 模型 → 模型目录复制确切 ID

进阶

  • 前端聊天组件:AI SDK 的 useChat 等 React Hooks 与后端 streamText 天然配套(见 AI SDK 官方文档),provider 写法与本页相同
  • 查这次调用花了多少钱:AI SDK 的 usage 不带费用;用 OpenAI SDK 那条路 usage.cost 直接返回,或看控制台 → 用量与费用
  • 换模型:改 praxis("…") 里的模型 ID;deepseek-flash 是滚动入口始终指向最新一代 Flash

相关食谱

LangChain

把 Praxis 接入 LangChain(JS/TS 版)——链、记忆、工具全家桶照常用,模型侧只改一个 baseURL。本页以 Node 实测。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、运行与验证。

你将完成

  • 用 LangChain 的 ChatOpenAI 调 Praxis 的模型,拿到回复与用量
  • 完成标志:hello.mjs 打印中文回复与用量,stream.mjs 逐字打印回复
  • 预计耗时:3–5 分钟(不含 Node.js 安装)
  • 支持协议:OpenAI 兼容(/openai/v1)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期可选 30/60/90 天或永久,默认 90 天;创建成功弹窗会展示完整 Key 并带「复制 Key」,关闭后列表只显示掩码,随时可点行内复制图标重新获取完整 Key。期望:弹出「创建 API Key」对话框,提交后弹窗展示完整 Key 与「复制 Key」按钮。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查;用 Bun 亦可)。

  • 安装 SDK:

    npm install @langchain/openai

    期望:安装无报错。空目录直接装即可(npm 会在当前目录生成 package.json、package-lock.json 与 node_modules);需要链、提示词模板、输出解析器时再 npm install langchain。

第一个请求

先把 Key 放进环境变量(export PRAXIS_API_KEY=sk-praxis-…;PowerShell:$env:PRAXIS_API_KEY="…"),再新建 hello.mjs:

import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({
  model: "deepseek-flash",
  configuration: {
    baseURL: "https://api.deepraxis.ai/openai/v1",
    apiKey: process.env.PRAXIS_API_KEY,
  },
});

const res = await model.invoke("用一句话介绍你自己");
console.log(res.content);
console.log(res.usage_metadata);

运行:

node hello.mjs

期望:打印一段中文回复,随后是用量对象(input_tokens / output_tokens / total_tokens;推理 token 数见 output_token_details.reasoning)。注意与 OpenAI 官方 SDK 的差别:地址与密钥写在 configuration 嵌套对象里,不是顶层字段。

终端运行示例脚本的真实输出

流式响应

新建 stream.mjs:

import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({
  model: "deepseek-flash",
  configuration: {
    baseURL: "https://api.deepraxis.ai/openai/v1",
    apiKey: process.env.PRAXIS_API_KEY,
  },
});

const stream = await model.stream("用两句话解释什么是 API");
for await (const chunk of stream) {
  process.stdout.write(chunk.content);
}
console.log();

期望:回复逐字打印、以换行收尾。流式支持因模型及其上游通道而异,个别可能暂未开放(报 STREAMING_UNPROVEN 时去掉流式或换模型重试)。

终端运行流式示例:回复逐字输出

常见问题

症状原因解法
401 / 无效令牌Key 复制不完整或未设进环境变量重新完整复制(注意 sk-praxis- 前缀);用 echo $PRAXIS_API_KEY 检查
404 / 路径不存在baseURL 少了 /openai/v1 后缀必须是 https://api.deepraxis.ai/openai/v1(以 /v1 结尾)
配置不生效地址写在了顶层而不是 configuration 里移进 configuration: { baseURL, apiKey }
400 STREAMING_UNPROVEN该模型暂未开放流式改用 invoke,或换个模型重试
模型不存在模型 ID 与目录不一致到控制台 → 模型 → 模型目录复制确切 ID

进阶

  • 链式调用:model.pipe(...) 接提示词模板、输出解析器即成链——Praxis 侧无需任何额外配置
  • 查这次调用花了多少钱:LangChain 的用量不带费用;用 OpenAI SDK 那条路 usage.cost 直接返回,或看控制台 → 用量与费用
  • 换模型:改 model 字段;deepseek-flash 是滚动入口始终指向最新一代 Flash

相关食谱

迁移指南

从 OpenAI 官方迁移

保留 OpenAI SDK,改地址、Key 和模型 ID,先迁移一次 Chat Completions 请求。更换模型会改变回答行为;这不是让 DeepSeek 变成 GPT-4o。

 client = OpenAI(
-    base_url="https://api.openai.com/v1",
-    api_key=os.environ["OPENAI_API_KEY"],
+    base_url="https://api.deepraxis.ai/openai/v1",
+    api_key=os.environ["PRAXIS_API_KEY"],
 )
-model = "gpt-4o"
+model = "deepseek-flash"

1. 准备

需要 Python 3.10+、uv 和一个 Praxis Key。在控制台 → API Keys创建 Key,将它安全注入当前终端的 PRAXIS_API_KEY 环境变量;不要把 Key 写进代码或日志。保留原服务的配置与 Key,供回滚使用。以下命令在 macOS / Linux 的 Bash 中执行。

test -n "${PRAXIS_API_KEY:-}"

期望:退出码 0;退出码 1 表示变量未设置,先设置再继续。

2. 选择模型 ID

下表是迁移选择,不是别名或等价效果承诺。可用性核对于 2026-10-12;切换流量前再查模型目录。

原 IDPraxis 选择需要注意
gpt-4o、gpt-4o-minideepseek-flash原 ID 不存在;重新评估提示词、工具与回答质量
gpt-4.1、o3-mini、gpt-5deepseek-flash不自动映射;原 ID 返回 404
必须使用 OpenAI 系模型gpt-5.6-sol可用 Chat Completions,不支持 Responses
原代码使用 Responsesdeepseek-flash 或 glm-5.3-flash当前可用的 Responses 选择

使用 Responses 时,确认选定 ID 出现在 GET /openai/v1/models?api=responses(Python:client.models.list(extra_query={"api": "responses"}))。也可查看 GET /model/v1/models 或 GET /model/v1/models/{id} 的 supported_apis,确认包含 openai.responses。OpenAI 面还可按 chat、embeddings、images、audio、videos 筛选;逗号分隔表示匹配任一协议。

行为差异

  • 同协议请求按原协议转发,不代表所有官方模型、端点、字段都可用。
  • 列表内的模型仍可能对某个操作返回 404 model_protocol_not_offered;Chat 与 Responses 要分别确认。
  • 切流量前用自己的提示词检查流式、工具执行、结构化输出和思考行为。字段差异以 Chat Completions 与 Responses 为准。
  • 原服务的文件、会话与响应 ID 不随地址修改自动迁移;保留源数据,并重建应用需要的资源。
  • Chat 的 usage.cost 是实付金额;Responses 和 Messages 目前不返回该字段。收到 X-Praxis-Generation-Id 时,可按 生成记录 API 用 GET /model/v1/generation?id=生成ID 查费用(记录可能延迟几秒)。若响应没有该头,去控制台 → 用量与费用查本次调用;不要把响应正文的 id 或 X-Request-Id 当成生成 ID,也不要将缺失费用当成零。

不支持的端点与替代

以下路径相对于 /openai/v1,调用返回 404。替代流程不保证与原端点等价;有依赖时先拆分调用,保留原服务。

原端点迁移选择
moderations无直接替代,继续使用原审核服务
batches由应用逐次调用并控制并发
fine_tuning选已有模型;保留原微调流程
assistants重新组织为 Responses / Conversations 与应用工具循环
completions改用 chat/completions 和 messages
audio/translations先转写,再用对话翻译
uploads改用 files;核对文件大小与用途限制
images/variations用 images/edits 提交图片与编辑提示词,重新评估效果

可用端点包括 chat/completions、responses、embeddings、images/generations、images/edits、audio/speech、audio/transcriptions、videos、files、models。可用端点不表示每个模型都支持该能力;具体操作与限制见 OpenAI API 参考。

3. 验证一次请求

设置好 PRAXIS_API_KEY 后运行以下完整示例:

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy
uv run -q --no-project --with openai --with anthropic python - <<'PY'
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepraxis.ai/openai/v1",
    api_key=os.environ["PRAXIS_API_KEY"],
    timeout=90.0,
    max_retries=0,
)
models = client.models.list(extra_query={"api": "chat"})
assert "deepseek-flash" in {m.id for m in models.data}
raw = client.chat.completions.with_raw_response.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "Reply OK."}],
    max_tokens=1024,
)
reply = raw.parse()
text = reply.choices[0].message.content
print("HTTP", raw.status_code)
print("X-Request-Id:", raw.headers.get("x-request-id"))
print("X-Praxis-Generation-Id:", raw.headers.get("x-praxis-generation-id"))
print(text)
assert raw.status_code == 200 and text and text.strip()
assert raw.headers.get("x-request-id")
PY

期望:退出码 0,输出 HTTP 200、非空正文(通常为 OK.)和 X-Request-Id。断言同时检查模型存在与真实回复;不是只检查能否连接。保留请求 ID 便于排查,不要记录 Key。示例会产生少量调用费用。

失败分支

实测报错处理
404,Model "gpt-4o" does not exist.地址与 Key 之外也要改模型;使用目录中的完整 ID
404 model_protocol_not_offered换支持该操作的模型;Responses 选 deepseek-flash 或 glm-5.3-flash
上表端点返回 404 Not Found按表替代,或让该请求继续使用原服务

4. 回滚

一起恢复三个原值:https://api.openai.com/v1、OPENAI_API_KEY 中的原 Key、原模型 ID。移除 Praxis 专有请求字段,恢复原资源 ID。重启应用让客户端加载旧配置,再跑原有冒烟请求并保留请求 ID。

期望:原端点成功返回可用正文。配置回滚不会退还已发生的调用费用,也不会在服务之间复制会话状态。

API 参考 → · 兼容指南 →

从 Anthropic 迁移

保留 Anthropic SDK 和 Messages 请求结构,修改地址、Key、模型 ID,再用新模型验证原提示词。

 client = Anthropic(
-    base_url="https://api.anthropic.com",
-    api_key=os.environ["ANTHROPIC_API_KEY"],
+    base_url="https://api.deepraxis.ai/anthropic",
+    api_key=os.environ["PRAXIS_API_KEY"],
 )
-model = "claude-sonnet-4-5"
+model = "deepseek-flash"

1. 准备

需要 Python 3.10+、uv 和一个 Praxis Key。在控制台 → API Keys创建 Key,将它安全注入当前终端的 PRAXIS_API_KEY 环境变量;不要把 Key 写进代码或日志。保留原服务的配置与 Key,供回滚使用。以下命令在 macOS / Linux 的 Bash 中执行。

test -n "${PRAXIS_API_KEY:-}"

期望:退出码 0;退出码 1 表示变量未设置,先设置再继续。

2. 选择模型

原选择Praxis 选择要检查什么
官方 Claude ID,如 claude-sonnet-4-5本例使用 deepseek-flash这是另一个模型,不是 Claude 别名;重新评估质量与工具行为
必须使用 Claude从 /anthropic/v1/models 复制可用的 Claude ID2026-10-12 目录包含 claude-opus-5;使用前确认所需能力

SDK 基础地址只到 /anthropic,不要加 /v1,SDK 会追加 /v1/messages。目录仅列可走 Anthropic 协议的模型,与 /openai/v1/models、/google/v1beta/models 各自独立。

期望:完整模型 ID 出现在 client.models.list();不要未经检查直接沿用官方 ID。

行为差异

  • thinking 可用 enabled、adaptive、disabled,并支持 output_config.effort。部分模型不能关闭思考,返回 400(cannot disable thinking);组合选项前查 Messages 字段支持。
  • 从 content 中读取文本块,不要假定第一块就是正文;推理模型可能先返回思考块。
  • count_tokens 返回带 x-praxis-token-count: estimated 的校准估算,不是精确计费依据,见 统计 token。
  • Chat 的 usage.cost 是实付金额;Responses 和 Messages 目前不返回该字段。收到 X-Praxis-Generation-Id 时,可按 生成记录 API 用 GET /model/v1/generation?id=生成ID 查费用(记录可能延迟几秒)。若响应没有该头,去控制台 → 用量与费用查本次调用;不要把响应正文的 id 或 X-Request-Id 当成生成 ID,也不要将缺失费用当成零。

不支持的操作与替代

模型兼容接口提供 Messages、token 统计、模型列表和文件操作,各自限制见 Anthropic API 参考。不提供 Message Batches(/anthropic/v1/messages/batches);改为应用控制并发逐次调用 Messages,或保留原服务的批处理。官方模型 ID、文件 ID 不会自动映射;应选择目录模型,并重新上传需要的源文件。

3. 验证一次请求

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy
uv run -q --no-project --with openai --with anthropic python - <<'PY'
import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.deepraxis.ai/anthropic",
    api_key=os.environ["PRAXIS_API_KEY"],
    timeout=90.0,
    max_retries=0,
)
models = client.models.list()
assert "deepseek-flash" in {m.id for m in models.data}
raw = client.messages.with_raw_response.create(
    model="deepseek-flash",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Reply OK."}],
)
reply = raw.parse()
text = "".join(block.text for block in reply.content if block.type == "text")
print("HTTP", raw.status_code)
print("X-Request-Id:", raw.headers.get("x-request-id"))
print("X-Praxis-Generation-Id:", raw.headers.get("x-praxis-generation-id"))
print(text)
assert raw.status_code == 200 and text and text.strip()
assert raw.headers.get("x-request-id")
PY

期望:退出码 0,输出 HTTP 200、非空正文(通常为 OK.)和 X-Request-Id。断言同时检查模型存在与真实回复;不是只检查能否连接。保留请求 ID 便于排查,不要记录 Key。示例会产生少量调用费用。

失败分支

实测报错处理
400(cannot disable thinking)移除关闭思考的要求,或选择目录声明可关闭思考的模型
404(anthropic.messages is not offered for …)选择 Anthropic 协议目录内且支持所需操作的 ID
Message Batches 返回 404 Not Found逐次调用 Messages,或保留原批处理服务

4. 回滚

恢复 https://api.anthropic.com、ANTHROPIC_API_KEY 中的原 Key 和原 Claude 模型 ID,同时恢复原思考选项与文件引用。重启客户端,运行原 Messages 冒烟请求,保留请求 ID。

期望:原服务返回可用正文。修改配置不会搬运文件、历史会话状态,也不会撤销已产生的费用。

API 参考 → · 兼容指南 →

从 OpenRouter 迁移

保留 OpenAI SDK,替换连接配置与模型 ID;切流量前逐项处理 OpenRouter 专有选项。

 client = OpenAI(
-    base_url="https://openrouter.ai/api/v1",
-    api_key=os.environ["OPENROUTER_API_KEY"],
+    base_url="https://api.deepraxis.ai/openai/v1",
+    api_key=os.environ["PRAXIS_API_KEY"],
 )
-model = "openai/gpt-4o"
+model = "deepseek-flash"

1. 准备

需要 Python 3.10+、uv 和一个 Praxis Key。在控制台 → API Keys创建 Key,将它安全注入当前终端的 PRAXIS_API_KEY 环境变量;不要把 Key 写进代码或日志。保留原服务的配置与 Key,供回滚使用。以下命令在 macOS / Linux 的 Bash 中执行。

test -n "${PRAXIS_API_KEY:-}"

期望:退出码 0;退出码 1 表示变量未设置,先设置再继续。

2. 替换模型 ID

OpenRouter 选择Praxis 选择
openai/gpt-4o先用 deepseek-flash 跑通;这是另一个模型,不是别名
vendor/model从 Praxis 目录复制完整 ID,不能假设去掉前缀就可用
带 :nitro 后缀的 ID选不带后缀的目录 ID;不支持该后缀
openrouter/auto明确选择一个模型,或配置 models 回退列表

期望:client.models.list() 包含选定 ID。回退列表中的每个 ID 都必须是有效的 Praxis ID,并支持你调用的操作。

行为差异

OpenRouter 选项迁移处理
provider.order、provider.only、provider.ignore仅自带上游 Key(BYOK)可用;使用平台凭据时移除,否则返回 400 provider_selection_not_allowed
provider.allow_fallbacks、provider.sort无效果;移除并重新评估选路假设
provider.data_collection、provider.zdr无效果;请求被接受不代表这些策略已执行
models支持模型回退列表;替换每个 ID 并检查响应中的 model
provider.require_parameters: true对工具参数与已声明的采样参数进行支持检查;要求未声明支持的参数时返回 400;不支持的采样参数默认忽略

参数检查范围是工具参数与已声明的采样参数,不是供应商任意功能。准确范围见 Chat Completions 字段支持。如果应用依赖被忽略选项所控制的数据策略,应继续使用原服务,直到单独确认所需策略。

Chat 的 usage.cost 是实付金额;Responses 和 Messages 目前不返回该字段。收到 X-Praxis-Generation-Id 时,可按 生成记录 API 用 GET /model/v1/generation?id=生成ID 查费用(记录可能延迟几秒)。若响应没有该头,去控制台 → 用量与费用查本次调用;不要把响应正文的 id 或 X-Request-Id 当成生成 ID,也不要将缺失费用当成零。

不支持的操作与替代

vendor/model、:nitro、openrouter/auto 都不是受支持的模型选择方式,也不会自动映射。缺失的 OpenAI 端点见不支持清单与替代。具体操作与字段以 API 参考 为准,不要假设 OpenRouter 扩展也适用于 Responses。

3. 验证一次请求

先跑通不带供应商偏好的最小 Chat 请求:

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy
uv run -q --no-project --with openai --with anthropic python - <<'PY'
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepraxis.ai/openai/v1",
    api_key=os.environ["PRAXIS_API_KEY"],
    timeout=90.0,
    max_retries=0,
)
models = client.models.list()
assert "deepseek-flash" in {m.id for m in models.data}
raw = client.chat.completions.with_raw_response.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "Reply OK."}],
    max_tokens=1024,
)
reply = raw.parse()
text = reply.choices[0].message.content
print("HTTP", raw.status_code)
print("X-Request-Id:", raw.headers.get("x-request-id"))
print("X-Praxis-Generation-Id:", raw.headers.get("x-praxis-generation-id"))
print(text)
assert raw.status_code == 200 and text and text.strip()
assert raw.headers.get("x-request-id")
PY

期望:退出码 0,输出 HTTP 200、非空正文(通常为 OK.)和 X-Request-Id。断言同时检查模型存在与真实回复;不是只检查能否连接。保留请求 ID 便于排查,不要记录 Key。示例会产生少量调用费用。

然后逐个加回应用需要的选项。期望:每次请求成功且返回预期模型;被忽略的字段不能作为策略生效的证据。

失败分支

实测报错处理
400 provider_selection_not_allowed平台凭据移除供应商选择;或先配置 BYOK 再选择上游
404,包含 does not exist将带厂商前缀、后缀或自动选择器的 ID 换成目录 ID
404 model_protocol_not_offered选择提供该操作的模型

4. 回滚

恢复 https://openrouter.ai/api/v1、原 OPENROUTER_API_KEY、原模型 ID 和保存的 OpenRouter 选项。重启客户端后跑原冒烟请求。不要把 Praxis Key 发给 OpenRouter。

期望:原请求返回可用正文与预期模型。Praxis 上已产生的调用费用仍保留。

API 参考 → · Cookbook:OpenAI SDK →

从其他网关迁移

先迁移一次请求:改 API 地址、Key 和模型 ID。下面示例面向兼容 OpenAI Chat Completions 的客户端,不会自动把其他请求协议转换成 Chat。

1. 准备终端

准备 Python 3.10+ 和 uv。将 Praxis 云 API Key 放入环境变量 PRAXIS_API_KEY,不要写入代码或日志。

test -n "$PRAXIS_API_KEY"

期望:退出码为 0。退出码 1 表示变量未设置,先设置再继续。示例默认使用 https://api.deepraxis.ai。切换环境时,将 PRAXIS_API_BASE 设为相应 API 域名,不带末尾斜杠或 API 路径。

2. 修改三项配置

  1. 将 base_url 改为 https://api.deepraxis.ai/openai/v1。期望:地址只含一次 /openai/v1,不是控制台网址,也不是完整的 /chat/completions 端点。
  2. 将客户端 Key 改为 PRAXIS_API_KEY。期望:不再向 Praxis 发送旧网关的 Key;另存原配置以便回滚。
  3. 本次冒烟验证将模型 ID 改为 deepseek-flash。期望:它出现在 GET /openai/v1/models?api=chat。旧网关的供应商前缀或别名不一定在此有效。

按当前使用的 API 选择更详细的迁移指南:

当前 API 或网关指南
OpenAI Chat Completions 或 Responses从 OpenAI 迁移
OpenRouter从 OpenRouter 迁移
Anthropic Messages从 Anthropic 迁移

3. 验证新配置

保存为 gateway-migration.py,运行 uv run -q --no-project --with openai --with anthropic --with google-genai python gateway-migration.py。

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ['PRAXIS_API_KEY'],
    base_url=os.environ.get('PRAXIS_API_BASE', 'https://api.deepraxis.ai') + '/openai/v1')
models = client.models.list(extra_query={'api': 'chat'})
print('catalog X-Request-Id:', models._request_id)
assert 'deepseek-flash' in [model.id for model in models]
response = client.chat.completions.create(model='deepseek-flash',
    messages=[{'role': 'user', 'content': 'Reply with exactly: MIGRATION_OK'}],
    reasoning_effort='none', max_tokens=256)
print('X-Request-Id:', response._request_id)
assert response.choices[0].finish_reason == 'stop'
assert response.choices[0].message.content.strip() == 'MIGRATION_OK'
assert response.usage is not None and response.usage.total_tokens > 0
print(response.choices[0].message.content)
print('usage:', response.usage.model_dump())

期望:输出 MIGRATION_OK、大于 0 的 token 用量、目录请求 ID 与推理请求 ID,退出码 0。保留请求 ID 用于排障,不记录 Key。

4. 切流量前检查

用自己的提示词检查流式、工具、结构化输出和思考设置。冒烟通过不代表模型行为相同。按需重建文件或响应资源:旧网关的 ID 不随配置迁移。验证失败时,一起恢复原地址、Key 和模型配置。

实测 gpt-5.6-sol 调用 Responses 返回 model_protocol_not_offered(HTTP 404)。支持 Chat 不代表支持 Responses,应按 Responses 指南查询对应目录。模型断言失败表示所选 ID 未出现在该协议目录中,应先核对再切流量。

API 参考 → · 模型指南 →

实战场景

(待补充)