OpenAI SDK
使用 OpenAI Python 或 Node.js SDK 调用 Essevin。
现有 OpenAI SDK 项目只需切换 Base URL、套餐密钥和模型 ID;请保留目前的框架与错误处理。
| 项目 | 填写值 |
|---|---|
| Base URL | https://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 的自动重试次数
)