快速开始
下载 Markdown ↓准备账户、密钥和模型 ID,发出你的第一个请求。
1. 准备账户#
在平台首页注册或登录。按页面要求完成邮箱或手机验证,在钱包确认可用余额。平台是否开放手机注册、短信登录和具体支付方式,由当前配置决定。
2. 创建 API 密钥#
进入控制台的密钥管理,创建一个供本次接入使用的密钥。设置正确的分组、模型范围、有效期和额度。复制密钥后保存在你的服务端环境变量中。
3. 选择模型并设置环境变量#
从模型广场选择支持文本对话的可用模型,复制完整 ID。下面的命令适用于 Bash,包括 Linux、macOS 和 Windows 的 WSL;请替换两个占位值。
export XINGSUAN_API_KEY='YOUR_API_KEY'
export XINGSUAN_MODEL='YOUR_MODEL_ID'Windows PowerShell 使用下面的环境变量写法,之后运行本页 Python 或 Node.js 示例。Bash 的反斜杠换行命令不能原样粘贴进 PowerShell。
$env:XINGSUAN_API_KEY = 'YOUR_API_KEY'
$env:XINGSUAN_MODEL = 'YOUR_MODEL_ID'4. 查看密钥可访问的模型#
下面的 Bash 命令只查询模型列表,不提交模型生成请求。
curl 'https://api.xsopc.com/v1/models' \
-H "Authorization: Bearer $XINGSUAN_API_KEY"5. 发出文本请求#
下面的 Bash 命令会产生一次模型调用;成功调用按当前模型价格计费。
curl 'https://api.xsopc.com/v1/chat/completions' \
-H "Authorization: Bearer $XINGSUAN_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<JSON
{
"model": "$XINGSUAN_MODEL",
"messages": [
{
"role": "user",
"content": "Hello"
}
]
}
JSON典型响应包含 choices 和 usage;实际文字与 token 数会不同。
{
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello!"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 4,
"total_tokens": 16
}
}Python 示例#
使用 Python 3 标准库即可运行,无需安装额外 SDK。先设置上面的环境变量。
import json
import os
import urllib.request
body = {
"model": os.environ["XINGSUAN_MODEL"],
"messages": [{"role": "user", "content": "Hello"}],
}
request = urllib.request.Request(
"https://api.xsopc.com/v1/chat/completions",
data=json.dumps(body).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["XINGSUAN_API_KEY"],
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(request, timeout=120) as response:
result = json.load(response)
print(result["choices"][0]["message"]["content"])JavaScript 示例#
在支持内置 fetch 的 Node.js 中,保存为 demo.mjs 后运行 node demo.mjs。代码应运行在服务端,避免将密钥打包进浏览器。
const response = await fetch('https://api.xsopc.com/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.XINGSUAN_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: process.env.XINGSUAN_MODEL,
messages: [{ role: 'user', content: 'Hello' }],
}),
signal: AbortSignal.timeout(120_000),
})
if (!response.ok) throw new Error(`HTTP ${response.status}`)
const data = await response.json()
console.log(data.choices[0].message.content)下一步#
需要逐步显示模型输出时,阅读文本与流式输出;遇到报错时,先核对 HTTP 状态码、模型 ID、密钥分组和余额,再查看错误排查。