Skip to content

通用 OpenAI SDK 集成

如果你自己编写代码,可以使用任何 OpenAI 兼容的 SDK 接入玄州API。只需替换 base_urlapi_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"

请求参数说明

参数类型说明默认值
modelstring模型名称(必填)-
messagesarray对话消息(必填)-
max_tokensinteger最大输出 token4096
temperaturenumber采样温度 (0-2)1
top_pnumber核采样 (0-1)1
streamboolean是否流式输出false
frequency_penaltynumber频率惩罚0
presence_penaltynumber存在惩罚0
stopstring/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:内容被过滤

玄州API — 企业级大模型 API 聚合平台