通用 OpenAI SDK 集成
如果你自己编写代码,可以使用任何 OpenAI 兼容的 SDK 接入玄州API。只需替换 base_url 和 api_key 即可。
Python
安装
bash
pip install openai基本用法
python
from openai import OpenAI
client = OpenAI(
base_url="https://xuanzhouapi.top/v1",
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
)
# 普通对话
response = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "介绍一下人工智能的发展历史"}
]
)
print(response.choices[0].message.content)
print(f"消耗 token: {response.usage.total_tokens}")流式输出
python
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "写一首关于编程的诗"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)多模态(图片理解)
python
response = client.chat.completions.create(
model="gpt-5.5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/photo.jpg"
}
}
]
}
]
)
print(response.choices[0].message.content)异常处理
python
from openai import OpenAI, APIError, APIConnectionError, RateLimitError
client = OpenAI(
base_url="https://xuanzhouapi.top/v1",
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
)
try:
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
except RateLimitError:
print("请求频率超限,请稍后重试")
except APIConnectionError:
print("连接失败,请检查网络")
except APIError as e:
print(f"API 错误: {e}")Node.js / TypeScript
安装
bash
npm install openai基本用法
typescript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://xuanzhouapi.top/v1',
apiKey: 'sk-xxxxxxxxxxxxxxxxxxxxxxxx'
});
async function main() {
const response = await client.chat.completions.create({
model: 'claude-sonnet-4-6',
messages: [
{ role: 'user', content: '解释 JavaScript 的事件循环机制' }
]
});
console.log(response.choices[0].message.content);
console.log(`消耗 token: ${response.usage?.total_tokens}`);
}
main();流式输出
typescript
async function streamChat() {
const stream = await client.chat.completions.create({
model: 'deepseek-v4-pro',
messages: [{ role: 'user', content: '写一个快速排序的实现' }],
stream: true
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
}Go
go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://xuanzhouapi.top/v1/chat/completions"
body := map[string]interface{}{
"model": "gpt-5.5",
"messages": []map[string]string{
{"role": "user", "content": "用 Go 写一个 Hello World"},
},
}
jsonBody, _ := json.Marshal(body)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonBody))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
fmt.Println(string(respBody))
}cURL
bash
# 基础对话
curl https://xuanzhouapi.top/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5.5",
"messages": [{"role": "user", "content": "你好"}]
}'
# 流式输出
curl https://xuanzhouapi.top/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5.5",
"messages": [{"role": "user", "content": "讲个笑话"}],
"stream": true
}'
# 获取模型列表
curl https://xuanzhouapi.top/v1/models \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx"请求参数说明
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
model | string | 模型名称(必填) | - |
messages | array | 对话消息(必填) | - |
max_tokens | integer | 最大输出 token | 4096 |
temperature | number | 采样温度 (0-2) | 1 |
top_p | number | 核采样 (0-1) | 1 |
stream | boolean | 是否流式输出 | false |
frequency_penalty | number | 频率惩罚 | 0 |
presence_penalty | number | 存在惩罚 | 0 |
stop | string/array | 停止词 | - |
响应格式
json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1712345678,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "回复内容..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15,
"completion_tokens": 30,
"total_tokens": 45
}
}finish_reason 可能的值:
stop:正常完成length:达到 max_tokens 限制content_filter:内容被过滤