# 发起首次调用

使用服务端环境变量和 OpenAI SDK，验证一个兼容 Chat Completions 的模型。

本示例适用于支持 OpenAI Chat Completions
的文本模型。图像、音频、视频及其他协议需要对应模型的调用方式，不要直接套用此请求。

### 准备接入配置 [#准备接入配置]

在[模型广场](/model-catalog)确认模型 ID，并在[密钥管理](/dashboard/keys)准备当前站点的密钥。向当前站点的接入说明或服务提供方确认 API Base URL；它是模型调用地址，不是帮助页面地址或控制台的 `/api/console` 地址。

在服务端设置以下环境变量。占位符必须替换，Base URL 应包含服务提供方要求的版本路径（例如 `/v1`），不要重复追加版本：

```bash
export NEXROUTER_API_KEY='YOUR_API_KEY'
export NEXROUTER_BASE_URL='YOUR_NEXROUTER_BASE_URL'
export NEXROUTER_MODEL='YOUR_MODEL_ID'
```

不要把真实密钥提交到 Git。参见[密钥与安全](/docs/api-keys)。

### 选择 SDK 并发送请求 [#选择-sdk-并发送请求]

以下示例只在服务端运行。先安装所用语言的 OpenAI SDK。

**Python**

```bash
python -m pip install openai
```

```python title="first_request.py"
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NEXROUTER_API_KEY"],
    base_url=os.environ["NEXROUTER_BASE_URL"],
)
response = client.chat.completions.create(
    model=os.environ["NEXROUTER_MODEL"],
    messages=[{"role": "user", "content": "请用一句话介绍你自己。"}],
)
print(response.choices[0].message.content)
```

**TypeScript**

```bash
bun add openai
```

```ts title="first-request.ts"
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NEXROUTER_API_KEY,
  baseURL: process.env.NEXROUTER_BASE_URL,
});
const response = await client.chat.completions.create({
  model: process.env.NEXROUTER_MODEL!,
  messages: [{ role: "user", content: "请用一句话介绍你自己。" }],
});
console.log(response.choices[0]?.message.content);
```

### 检查结果 [#检查结果]

确认程序收到模型响应，然后到[使用日志](/dashboard/usage-logs)核对当前账号可见的调用记录。价格、余额和权限以当前站点控制台与实际响应为准，本页不承诺免费额度或固定价格。

如果未成功，记录 HTTP 状态码、错误码、模型 ID 和请求时间，再按[常见问题](/docs/troubleshooting)排查。不要把密钥或完整私密对话放进页面反馈。
