N·00API 调用

在代码里直接调用模型

不经过任何客户端,用 OpenAI 的两种协议在自己的代码里调用模型:推荐的 Responses API,以及兼容面最广的 Chat Completions(旧协议)。地址都是 https://api.xylemnode.com/v1,同一把密钥两种协议通用(个别分组只开放 Responses,分组名里有注明)。

Responses API

OpenAI 现在推荐的协议:input 放内容,instructions 写系统提示,用官方 SDK 时结果直接在 output_text 里。推理模型在它上面表现更好,文件搜索、代码执行、生图这些内置工具和推理摘要也只在它上面提供。

  1. 01

    发出第一个请求

    POST /v1/responses,用 Bearer 鉴权。input 可以是一句话,也可以是消息数组;instructions 相当于系统提示。下面是 macOS / Linux 的写法,Windows 见页面底部的说明。

    terminal
    curl https://api.xylemnode.com/v1/responses \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer sk-你的密钥" \
      -d '{
        "model": "gpt-6.1-sol",
        "instructions": "你是一个简洁的助手。",
        "input": "用一句话介绍你自己。"
      }'
  2. 02

    用 SDK 读取结果

    装好官方 SDK(pip install openai,需要 Python 3.10 以上),把 base_url 指向 XylemNode 即可。返回的 output 是一组条目,常常先有一条推理,再有一条消息,所以别写死 output[0];SDK 的 output_text 已经把文本拼好。也可以设好环境变量 OPENAI_BASE_URL(值为 https://api.xylemnode.com/v1)和 OPENAI_API_KEY,代码里直接写 OpenAI()。

    python
    from openai import OpenAI
    
    client = OpenAI(base_url="https://api.xylemnode.com/v1", api_key="sk-你的密钥")
    
    response = client.responses.create(
        model="gpt-6.1-sol",
        instructions="你是一个简洁的助手。",
        input="用一句话介绍你自己。",
    )
    print(response.output_text)
  3. 03

    流式输出

    加上 stream=True,结果会按事件逐段返回:把每个 response.output_text.delta 事件里的 delta 拼起来,收到 response.completed 就结束了,用量也在这个事件里。

    python
    from openai import OpenAI
    
    client = OpenAI(base_url="https://api.xylemnode.com/v1", api_key="sk-你的密钥")
    
    stream = client.responses.create(
        model="gpt-6.1-sol",
        input="用一句话介绍你自己。",
        stream=True,
    )
    for event in stream:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
        elif event.type == "response.completed":
            print("\n用量:", event.response.usage)
  4. 04

    多轮对话

    最稳的做法是自己维护上下文:把上一轮的回复作为 assistant 消息接回 input,再追加新的问题。previous_response_id 依赖服务端保存的上一轮,在 Claude、Gemini 模型上不支持,换了上游也可能找不到,所以示例里没有用它。

    python
    from openai import OpenAI
    
    client = OpenAI(base_url="https://api.xylemnode.com/v1", api_key="sk-你的密钥")
    
    history = [{"role": "user", "content": "推荐一本讲分布式系统的书。"}]
    first = client.responses.create(model="gpt-6.1-sol", input=history)
    print(first.output_text)
    
    # 上一轮的回复接回去,再追加新问题
    history += [
        {"role": "assistant", "content": first.output_text},
        {"role": "user", "content": "它适合入门吗?"},
    ]
    second = client.responses.create(model="gpt-6.1-sol", input=history)
    print(second.output_text)

常用参数

接口
POST https://api.xylemnode.com/v1/responses
input
一句话,或 user / assistant 消息数组
instructions
系统提示
max_output_tokens
输出上限,包含推理用掉的 token
reasoning
{ "effort": "high" } 这样设推理强度,可选值以模型为准
text.format
结构化输出(JSON Schema)
stream
true 时按事件流返回