> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sub2api.ruilinlu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 发起第一次 API 调用：完整示例指南

> 通过 cURL、Python 和 Node.js 的完整示例，演示如何向 Sub2API 发起 AI 模型调用并理解响应。

本文提供多种语言和工具下的完整请求示例，帮助你快速掌握 Sub2API 的调用方式。所有示例均使用 OpenAI 兼容接口，Base URL 固定为 `https://sub2api.ruilinlu.com`。

## 基本调用示例

以下示例调用 `/v1/chat/completions` 接口，向模型发送一条简单消息。

<CodeGroup>
  ```bash cURL theme={null}
  curl https://sub2api.ruilinlu.com/v1/chat/completions \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gpt-4o",
      "messages": [
        {"role": "user", "content": "你好！请用中文回复。"}
      ]
    }'
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://sub2api.ruilinlu.com",
      api_key=os.getenv("OPENAI_API_KEY"),
  )

  response = client.chat.completions.create(
      model="gpt-4o",
      messages=[{"role": "user", "content": "你好！请用中文回复。"}],
  )
  print(response.choices[0].message.content)
  ```

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://sub2api.ruilinlu.com",
    apiKey: process.env.OPENAI_API_KEY,
  });

  const response = await client.chat.completions.create({
    model: "gpt-4o",
    messages: [{ role: "user", content: "你好！请用中文回复。" }],
  });

  console.log(response.choices[0].message.content);
  ```
</CodeGroup>

## 响应示例

请求成功后，Sub2API 会返回标准的 JSON 响应。以下是典型响应的结构：

```json theme={null}
{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1710000000,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好！很高兴为你服务。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 10,
    "total_tokens": 22
  }
}
```

其中 `choices[0].message.content` 包含模型生成的回复内容，`usage.total_tokens` 显示了本次请求消耗的总 Token 数。

## 切换模型

Sub2API 支持多种模型系列。调用时只需要修改请求中的 `model` 参数即可。

<Tabs>
  <Tab title="OpenAI GPT">
    ```json theme={null}
    {
      "model": "gpt-4o",
      "messages": [{"role": "user", "content": "你好"}]
    }
    ```
  </Tab>

  <Tab title="Claude">
    ```json theme={null}
    {
      "model": "claude-xxx",
      "messages": [{"role": "user", "content": "你好"}]
    }
    ```
  </Tab>

  <Tab title="Gemini">
    ```json theme={null}
    {
      "model": "gemini-xxx",
      "messages": [{"role": "user", "content": "你好"}]
    }
    ```
  </Tab>
</Tabs>

## 故障排查

如果在调用时收到 401 Unauthorized 错误，通常是 API Key 无效或缺失导致的。请检查请求头中的 `Authorization: Bearer YOUR_API_KEY` 是否配置正确。

更多排查方法请参考 [401 错误处理](/troubleshooting/401)。
