OpenAI SDK

使用 OpenAI Python 或 Node.js SDK 调用 Essevin。

现有 OpenAI SDK 项目只需切换 Base URL、套餐密钥和模型 ID;请保留目前的框架与错误处理。

项目填写值
Base URLhttps://api.essevin.com/v1
密钥环境变量ESSEVIN_OPENAI_API_KEY
适用模型GPT、Gemini 对话模型,以及 OpenAI 兼容模型
模型 ID以目前密钥调用 GET /v1/models 的返回值为准

不要把密钥写进源码

请通过部署平台、.env 或系统环境变量注入 ESSEVIN_OPENAI_API_KEY,并确保 .env 不会提交到 Git。

安装并发送最小请求

安装 SDK:

python -m pip install openai

发送请求:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.essevin.com/v1",
    api_key=os.environ["ESSEVIN_OPENAI_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

先将提示词设为「只回复 ok」完成最小验证;只有项目实际使用流式时,再加入 stream: true 并确认 SSE 事件可以逐段到达。

流式输出并取得用量

stream_options.include_usage 后,最后一个事件的 choices 为空,usage 是本次 token 用量。

stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "用三句话介绍你自己"}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:  # 最后一个事件:choices 为空,只带用量
        print()
        print(chunk.usage)

工具调用

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询城市天气",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]
messages = [{"role": "user", "content": "上海今天天气怎样?"}]

resp = client.chat.completions.create(model="gpt-5.6-sol", messages=messages, tools=tools)
msg = resp.choices[0].message
if msg.tool_calls:
    call = msg.tool_calls[0]
    print(call.function.name, call.function.arguments)
    # 执行工具后把结果带回去,tool_call_id 必须与上一轮的 call.id 一致
    messages += [msg, {"role": "tool", "tool_call_id": call.id, "content": "晴,26°C"}]
    resp = client.chat.completions.create(model="gpt-5.6-sol", messages=messages, tools=tools)
print(resp.choices[0].message.content)

超时与重试

openai-python 默认读超时 600 秒、自动重试 2 次。长输出建议用流式;

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.essevin.com/v1",
    api_key=os.environ["ESSEVIN_OPENAI_API_KEY"],
    timeout=600,    # 秒;长输出建议改用流式
    max_retries=2,  # 连接错误、429 与 5xx 的自动重试次数
)

本页目录