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

# Запрос и использование API завершения чата Claude

> Claude AI 集成指南 - XHuoAPI

Anthropic Claude — это очень мощная система AI-диалогов, которая может генерировать плавные и естественные ответы всего за несколько секунд, просто вводя подсказки. Claude выделяется в отрасли благодаря своим выдающимся способностям к пониманию и генерации языка, и в настоящее время он широко используется в различных отраслях и сферах, его влияние становится все более значительным. Независимо от того, идет ли речь о повседневных беседах, креативном письме или профессиональных консультациях и программировании, Claude может предоставить удивительную интеллектуальную помощь, значительно повышая эффективность и креативность человеческой работы.

Этот документ в основном описывает процесс использования API завершения чата Claude, с помощью которого мы можем легко использовать официальные функции диалога Claude.

## Процесс запроса

Чтобы использовать API завершения чата Claude, сначала можно перейти на страницу [API завершения чата Claude](https://api.xhuoapi.ai/documents/280928a2-2dce-419c-adb5-1ea835e8183a) и нажать кнопку «Acquire», чтобы получить необходимые для запроса учетные данные:

![](https://cdn.xhuoapi.ai/nyq0xz.png)

Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправят на страницу входа, пригласив зарегистрироваться и войти в систему, после чего вы автоматически вернетесь на текущую страницу.

При первом запросе будет предоставлен бесплатный лимит, который можно использовать для бесплатного доступа к этому API.

## Основное использование

Далее вы можете заполнить соответствующие поля на интерфейсе, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/ejeq57.png" width="400" className="m-auto" />
</p>

При первом использовании этого интерфейса нам необходимо заполнить как минимум три поля: одно из них — это `authorization`, которое можно выбрать прямо из выпадающего списка. Другой параметр — это `model`, `model` — это категория модели, которую мы выбираем для использования с сайта Claude, здесь у нас в основном есть 20 моделей, подробности можно посмотреть в предоставленных моделях. Последний параметр — это `messages`, `messages` — это массив наших вопросов, который представляет собой массив, позволяющий одновременно загружать несколько вопросов, каждый из которых содержит `role` и `content`, где `role` обозначает роль задающего вопрос, мы предоставили три роли: `user`, `assistant`, `system`. Другой `content` — это конкретное содержание нашего вопроса.

Также вы можете заметить, что справа есть соответствующий сгенерированный код вызова, вы можете скопировать код и запустить его, или просто нажать кнопку «Try» для тестирования.

Распространенные необязательные параметры:

* `max_tokens`: ограничивает максимальное количество токенов в одном ответе.
* `temperature`: генерирует случайность, от 0 до 2, чем больше значение, тем более разнообразным будет ответ.
* `n`: сколько вариантов ответов генерировать за раз.
* `response_format`: настройки формата ответа.

<p>
  <img src="https://cdn.xhuoapi.ai/v6lbjo.png" width="400" className="m-auto" />
</p>

После вызова мы обнаруживаем, что возвращаемый результат выглядит следующим образом:

```json theme={null}
{
  "id": "msg_bdrk_01Q6WN27v95ypCa1kbanAQ6K",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619365,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 12,
    "total_tokens": 20,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
```

Возвращаемый результат содержит несколько полей, описание которых приведено ниже:

* `id` — ID задачи диалога, созданной для уникальной идентификации этой задачи.
* `model` — выбранная модель с сайта Claude.
* `choices` — информация о ответах Claude на вопросы.
* `usage`: статистическая информация о токенах для данного вопроса и ответа.

Где `choices` содержит информацию о ответах Claude, внутри которой `choices` — это конкретная информация о ответах Claude, как показано на изображении.

<p>
  <img src="https://cdn.xhuoapi.ai/2ulyhw.png" width="400" className="m-auto" />
</p>

Можно увидеть, что поле `content` внутри `choices` содержит конкретное содержание ответа Claude.

## Потоковый ответ

Этот интерфейс также поддерживает потоковые ответы, что очень полезно для веб-интеграции, позволяя веб-странице реализовать эффект отображения по буквам.

Если вы хотите получить потоковый ответ, вы можете изменить параметр `stream` в заголовке запроса на `true`.

Изменение показано на изображении, однако код вызова должен быть соответствующим образом изменен, чтобы поддерживать потоковые ответы.

<p>
  <img src="https://cdn.xhuoapi.ai/ueugot.png" width="400" className="m-auto" />
</p>

После изменения `stream` на `true`, API будет возвращать соответствующие JSON-данные построчно, и на уровне кода нам нужно внести соответствующие изменения, чтобы получить построчные результаты.

Пример кода вызова на Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Вывод будет следующим:

```json theme={null}
data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": ""}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "Привет!"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " Как я могу помочь вам"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " сегодня?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [], "usage": {"prompt_tokens": 8, "completion_tokens": 12, "total_tokens": 20, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0}}

data: [DONE]
```

Можно увидеть, что в ответе много `data`, `data` внутри `choices` является последним ответом, что соответствует описанному выше содержимому. `choices` - это новая информация о ответе, которую вы можете интегрировать в вашу систему. Также окончание потокового ответа определяется по содержимому `data`, если содержимое равно `[DONE]`, это означает, что потоковый ответ завершен. Возвращаемый результат `data` содержит несколько полей, описание которых приведено ниже:

* `id` - уникальный идентификатор для этой задачи диалога.
* `model` - выбранная модель с сайта Claude.
* `choices` - информация о ответах, предоставленных Claude на заданные вопросы.

JavaScript также поддерживается, например, код для потокового вызова Node.js выглядит следующим образом:

```javascript theme={null}
const options = {
  method: "post",
  headers: {
    accept: "application/json",
    authorization: "Bearer {token}",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "claude-opus-4-20250514",
    messages: [{ role: "user", content: "Привет" }],
    stream: true,
  }),
};

fetch("https://api.xhuoapi.ai/v1/v1/chat/completions", options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
```

Пример кода на Java:

```java theme={null}
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "claude-opus-4-20250514");
jsonObject.put("messages", [{"role":"user","content":"Привет"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.xhuoapi.ai/v1/v1/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
```

Другие языки можно переписать самостоятельно, принцип остается тем же.

## Многоуровневый диалог

Если вы хотите интегрировать функцию многоуровневого диалога, вам нужно загрузить несколько вопросов в поле `messages`, конкретные примеры нескольких вопросов приведены на изображении ниже:

<p>
  <img src="https://cdn.xhuoapi.ai/odwx82.png" width="400" className="m-auto" />
</p>

Пример кода на Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Привет"},{"role":"assistant","content":"Привет! Как я могу помочь вам сегодня?"},{"role":"user","content":"Что я только что сказал?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Загрузив несколько вопросов, вы можете легко реализовать многоуровневый диалог и получить следующий ответ:

```json theme={null}
{
  "id": "msg_bdrk_01Y1wfQmd89g968TVbFu57Yc",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619674,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Вы сказали \"Привет\" - это было ваше первое сообщение мне в нашем разговоре."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 29,
    "completion_tokens": 20,
    "total_tokens": 49,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
```

Можно увидеть, что `choices` содержит информацию, которая соответствует основному использованию, это включает в себя конкретное содержание ответов Claude на несколько диалогов, что позволяет отвечать на соответствующие вопросы на основе нескольких диалогов.

## Глубокое мышление модели

Модели claude-opus-4-20250514-thinking и claude-sonnet-4-20250514-thinking отличаются от других моделей тем, что они могут глубоко размышлять в ответ на вопросы и возвращать результаты процесса размышления, в этой статье будет представлен конкретный пример, чтобы продемонстрировать функцию глубокого мышления, далее можно будет заполнить соответствующее содержание в интерфейсе Claude Chat Completion API, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/d1a4wq.png" width="400" className="m-auto" />
</p>

Также вы можете заметить, что справа есть соответствующий код вызова, вы можете скопировать код и запустить его, или просто нажать кнопку «Попробовать» для тестирования.

<p>
  <img src="https://cdn.xhuoapi.ai/21nmzq.png" width="400" className="m-auto" />
</p>

После вызова мы обнаружили, что возвращаемый результат выглядит следующим образом:

```json theme={null}
{
  "id": "msg_018J4YaRoGHtbsTVb4Vvz7oH",
  "object": "chat.completion",
  "created": 1755444014,
  "model": "claude-sonnet-4-20250514-thinking",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Синус 30 градусов равен **1/2** или **0.5**.\n\nЭто одно из основных тригонометрических значений. В треугольнике 30-60-90 стороны находятся в соотношении 1:√3:2, где сторона, противоположная углу 30°, имеет длину 1, а гипотенуза имеет длину 2, что дает нам sin(30°) = 1/2.",
        "reasoning_content": "Пользователь спрашивает о синусе 30 градусов. Это базовый вопрос по тригонометрии.\n\nСинус 30 градусов - это известное значение. В треугольнике 30-60-90 стороны находятся в соотношении 1:√3:2.\n\nДля угла 30°:\n- Противоположная сторона равна 1\n- Гипотенуза равна 2\n- Таким образом, sin(30°) = противоположная/гипотенуза = 1/2 = 0.5\n\nЭто одно из стандартных тригонометрических значений, которые обычно запоминаются."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 60,
    "completion_tokens": 239,
    "total_tokens": 299,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
```

Можно увидеть, что информация об ответах в `choices` получена в результате глубокого размышления, и также предоставлен соответствующий процесс размышления, где в `content` `reasoning_content` обозначает процесс размышления модели. Информация об ответах в `choices` должна быть отформатирована с использованием синтаксиса `markdown`, чтобы получить наилучший опыт, в конечном итоге это также подчеркивает мощные преимущества сетевых функций нашей модели.

## Визуальная модель

claude-sonnet-4-20250514 - это многомодальная большая языковая модель, разработанная Claude, которая на основе claude-4 добавила возможности визуального понимания. Эта модель может одновременно обрабатывать текстовые и графические входные данные, реализуя кросс-модальное понимание и генерацию.

Обработка текста с использованием модели claude-sonnet-4-20250514 соответствует основному использованию, описанному выше, ниже будет кратко представлено, как использовать возможности обработки изображений модели.

Использование возможностей обработки изображений модели claude-sonnet-4-20250514 осуществляется путем добавления поля `type` к исходному содержимому `content`, с помощью которого можно определить, загружен текст или изображение, чтобы использовать возможности обработки изображений модели claude-sonnet-4-20250514, ниже будет описано, как вызвать эту функцию с помощью Curl и Python.

* Способ с использованием Curl

```
curl -X POST 'https://api.xhuoapi.ai/v1/v1/chat/completions' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
    "model": "claude-sonnet-4-20250514",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "Что на этом изображении?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://cdn.xhuoapi.ai/ueugot.png"
            }
          }
        ]
      }
    ]
  }'
```

* Способ с использованием Python

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-sonnet-4-20250514",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text", "text": "Что на этом изображении?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.xhuoapi.ai/ueugot.png"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Затем можно получить следующий результат, информация о полях в результате соответствует вышеупомянутой, конкретно она выглядит следующим образом:

```json theme={null}
{
  "id": "msg_bdrk_01NCrxpZmV17bhQJJRQEFEb9",
  "model": "claude-sonnet-4-20250514",
  "object": "chat.completion",
  "created": 1768628904,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Это изображение показывает интерфейс конфигурации API-запроса для того, что, похоже, является службой завершения чата AI. Вот ключевые элементы:\n\n**Параметры тела запроса:**\n\n1. **model** (обязательная строка) - Установлено на \"claude-opus-4-202505...\" - указывает, какую модель AI использовать\n\n2. **messages** (обязательный массив) - Содержит историю разговора с:\n   - **role** (обязательная строка) - Установлено на \"user\" \n   - **content** (обязательная строка) - Содержит \"Hello\" как содержание сообщения\n\n3. **stream** (логическое) - Установлено на \"true\" - включает частичные изменения сообщений, как в ChatGPT\n\n4. **max_tokens** (число) - Поле для установки максимального количества токенов, которые могут быть сгенерированы в ответе\n\n5. **n** (число) - Указывает, сколько вариантов завершения чата нужно сгенерировать для каждого ввода\n\nИнтерфейс имеет темную тему с белым текстом на черном/темно-сером фоне. В правом нижнем углу есть кнопка \"Заполнить пример\" и различные выпадающие меню и поля ввода для настройки параметров запроса API. Видна красная иконка мусорной корзины/удаления, вероятно, для удаления записей сообщений."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1570,
    "completion_tokens": 252,
    "total_tokens": 1822,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
```

Можно увидеть, что содержание ответов основано на изображениях, поэтому с помощью вышеуказанных двух способов можно легко использовать текстовые и графические возможности модели claude-3-7-sonnet-20250219.

## Обработка ошибок

При вызове API, если возникает ошибка, API возвращает соответствующий код ошибки и информацию. Например:

* `400 token_mismatched`：Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
* `400 api_not_implemented`：Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
* `401 invalid_token`：Неавторизован, недействительный или отсутствующий токен авторизации.
* `429 too_many_requests`：Слишком много запросов, вы превысили лимит частоты.
* `500 api_error`：Внутренняя ошибка сервера, что-то пошло не так на сервере.

### Пример ответа об ошибке

```
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Заключение

С помощью этого документа вы узнали, как легко реализовать функции диалога официального Claude с использованием API Claude Chat Completion. Надеемся, что этот документ поможет вам лучше интегрировать и использовать данный API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.
