接入通用 OpenAI 兼容工具
核心原则
把 base_url 改为 https://api.xmai.sg/v1,就这一步。 OpenAI 生态里的所有工具 — CLI、IDE 插件、SDK、Agent 框架 — 都会从某个配置文件或构造参数读取这一字段。只要改完,流式、tool use、system prompt 以及 Chat Completions 的其他所有特性都照常工作。
本页作为尚未建立独立指南的工具的通用入口。如果你的工具不在下方矩阵中,请直接参照表格模式 — 95% 的 OpenAI 兼容工具都遵循同样的套路。
前置要求
工具矩阵
统一端点:
https://api.xmai.sg/v1| 工具 | 配置位置 | 关键字段 | 示例值 |
|---|---|---|---|
| OpenAI Python SDK | OpenAI(...) 构造参数 | base_url | https://api.xmai.sg/v1 |
| OpenAI Node.js SDK | new OpenAI({...}) 构造参数 | baseURL | https://api.xmai.sg/v1 |
| Cursor | Settings → Models → Override OpenAI Base URL | UI 文本框 | https://api.xmai.sg/v1 |
| Cline (VS Code) | API Provider → OpenAI Compatible | API Base URL | https://api.xmai.sg/v1 |
| Continue.dev | ~/.continue/config.yaml → models[].apiBase | apiBase | https://api.xmai.sg/v1 |
| Zed AI | settings.json → assistant.providers → openai.api_url | api_url | https://api.xmai.sg/v1 |
Vercel AI SDK(@ai-sdk/openai) | createOpenAI({...}) | baseURL | https://api.xmai.sg/v1 |
| LangChain(Python) | ChatOpenAI(...) | openai_api_base | https://api.xmai.sg/v1 |
| LlamaIndex(Python) | OpenAI(...) 构造参数 | api_base | https://api.xmai.sg/v1 |
| LiteLLM | litellm.api_base 或环境变量 OPENAI_API_BASE | api_base | https://api.xmai.sg/v1 |
| Aider | CLI 参数或环境变量 | --openai-api-base / OPENAI_API_BASE | https://api.xmai.sg/v1 |
| Open WebUI / Chatbot UI | Settings → OpenAI API Base URL | UI 文本框 | https://api.xmai.sg/v1 |
对应的 Key 字段(api_key / apiKey / OPENAI_API_KEY 等)填入 xmAI key(sk-...)即可,无需其他代码改动。
示例
OpenAI Python SDK
from openai import OpenAI
client = OpenAI(
api_key="sk-your-xmai-key",
base_url="https://api.xmai.sg/v1",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好!"}],
)
print(response.choices[0].message.content)OpenAI Node.js SDK
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: 'sk-your-xmai-key',
baseURL: 'https://api.xmai.sg/v1',
})
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: '你好!' }],
})
console.log(response.choices[0].message.content)Vercel AI SDK(@ai-sdk/openai)
import { createOpenAI } from '@ai-sdk/openai'
import { generateText } from 'ai'
const xmai = createOpenAI({
apiKey: process.env.XMAI_API_KEY,
baseURL: 'https://api.xmai.sg/v1',
})
const { text } = await generateText({
model: xmai('gpt-4o'),
prompt: '你好!',
})
console.log(text)LangChain(Python)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
openai_api_key="sk-your-xmai-key",
openai_api_base="https://api.xmai.sg/v1",
)
print(llm.invoke("你好!").content)Continue.dev(~/.continue/config.yaml)
models:
- name: xmAI GPT-4o
provider: openai
model: gpt-4o
apiKey: sk-your-xmai-key
apiBase: https://api.xmai.sg/v1
- name: xmAI Claude Sonnet 4.6
provider: openai
model: claude-sonnet-4-6
apiKey: sk-your-xmai-key
apiBase: https://api.xmai.sg/v1Cursor
- 打开 Settings(⌘/Ctrl ,)→ Models 面板
- 勾选 Override OpenAI Base URL 并填入
https://api.xmai.sg/v1 - OpenAI API Key 填入你的 xmAI key(
sk-...) - 点击 Verify,绿色对勾表示接入成功
在 Cursor 中使用自定义 model ID
Cursor 的 model 下拉只显示 OpenAI 原生名。想用 xmAI 专属 ID(如 claude-sonnet-4-6 / gemini-2.5-pro)可通过 Add Custom Model 输入 ID 后保存。
验证接入
通过上面任意工具发一条测试请求后:
看到新请求即接入成功。
常见踩坑
/v1 后缀
base_url 必须包含 /v1 — xmAI 的 Chat Completions 端点是 https://api.xmai.sg/v1/chat/completions。Claude Code 中的 Anthropic SDK 用户会省略 /v1,那是因为 Anthropic SDK 会自动拼接;OpenAI SDK 不会 自动拼接,必须写全。
模型 ID 对不上
某些工具在模型下拉里硬编码了一批 OpenAI 原生 ID(如 gpt-4),xmAI 未必上架,会以 404 model not found 返回。把模型切换到 /v1/models(或 模型列表 页面)中实际存在的 ID 即可。
代理 / 防火墙
企业 http_proxy 有时拦截 xmAI 域名。排除:
export NO_PROXY="api.xmai.sg"自签名证书链:
export NODE_EXTRA_CA_CERTS=/path/to/your-ca-chain.pem401 认证失败
- API Keys 页面确认 Key 未禁用 / 未过期
- 确认工具实际发送的是
Authorization: Bearer <key>头(某些工具字段命名误导,可开详细日志验证)
402 余额不足
xmAI 按 token 实时扣费,余额不足会返回 402 或 insufficient_balance。前往 钱包页面 补充额度,或开启自动充值。
没有你用的工具?
如果你用"改 base URL"的模式接入了新的工具,欢迎到 github.com/xmai-ai/xmai-docs 提 PR 补充一页专属指南,或在站内反馈给我们。上方矩阵长期维护;每个新独立页都会回链到本页。
相关链接
- 快速开始 — Python / Node / Go / curl 的 SDK 级示例
- Chat Completions API — 底层 API
- 模型列表 — 所有可用模型与价格
- 错误码 — 错误处理指南
- Claude Code — Anthropic 原生接入
- OpenCode — 开源 agentic 客户端
- Codex CLI — OpenAI 官方终端 agent
- Gemini CLI — 为什么 Gemini CLI 本身不适合 + 变通方案