---
title: 'Режимы взаимодействия с inference-сервисом'
sidebar_label: 'Режимы взаимодействия с inference-сервисом'
sidebar_position: 1
description: 'Какие режимы взаимодействия с inference-сервисом поддерживаются, как отправить запросы к модели'
---

import CopyIcon from '@selectel/docux/icons/copy';
import EyeIcon from '@selectel/docux/icons/eye';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import {TabItemLabel} from '@selectel/docux/components';
import { CustomTable } from '@selectel/docux/components';
import Formbricks from '@theme/MDXComponents/Formbricks';

# Режимы взаимодействия с inference-сервисом

В Foundation Models Catalog поддерживается только синхронный режим на стороне сервера.
В этом режиме сервер обрабатывает запрос и возвращает результат клиенту в рамках одного HTTP-соединения.
Соединение с клиентом удерживается до полной генерации ответа.

На стороне клиента можно [отправлять синхронные](#send-sync-request) и [асинхронные запросы](#send-async-request).

Для работы с моделями доступны различные [типы API](#api-types) в зависимости от решаемой задачи и категории моделей.

## Типы API \{#api-types}

Типы API определяют структуру данных запроса и формат ответа.
Доступные API зависят от модели, развернутой в inference-сервисе.
Подробнее о типах API в их официальной документации.

<CustomTable>
  <table data-sticky>
    <thead>
      <tr>
        <th>Тип API</th>
        <th>Описание</th>
        <th>Категория моделей</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>[Completions API](https://developers.openai.com/api/docs/guides/completions)</td>
        <td>Генерация текста на основе одного промта — без поддержки диалога или истории сообщений</td>
        <td>Модели для генерации текста, мультимодальные модели</td>
      </tr>

      <tr>
        <td>[Chat API](https://developers.openai.com/api/reference/resources/chat)</td>
        <td>Генерация текста в режиме диалога — с учетом ролей и истории сообщений</td>
        <td>Модели для генерации текста, мультимодальные модели</td>
      </tr>

      <tr>
        <td>[Embeddings API](https://developers.openai.com/api/docs/guides/embeddings)</td>

        <td>
          Преобразование текста в числовые векторы — эмбеддинги.
          Применяется для организации смыслового поиска по данным — например, в векторных базах данных
        </td>

        <td>Модели для генерации эмбеддингов</td>
      </tr>

      <tr>
        <td>[Rerank API](https://jina.ai/reranker/)</td>

        <td>
          Оценка релевантности и сортировка текстов по степени соответствия запросу.
          Применяется для улучшения качества ответов при использовании RAG
        </td>

        <td>Модели для ранжирования текстов</td>
      </tr>

      <tr>
        <td>[Transcriptions API](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)</td>
        <td>Преобразование аудиофайла в текст</td>
        <td>Модели для распознавания речи</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Отправить синхронный запрос \{#send-sync-request}

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

<Tabs queryString="send-sync-request">
  <TabItem value="completions-api" default>
    <TabItemLabel>
      Completions API
    </TabItemLabel>

    <Tabs queryString="completions-api-sync">
      <TabItem value="curl" default>
        <TabItemLabel>
          curl
        </TabItemLabel>

        1. Откройте CLI.

        2. Отправьте запрос к модели:

           ```bash
           curl <endpoint>/v1/completions \
           -H "Authorization: Bearer <api_key>" \
           -H "Content-Type: application/json" \
           -d '{
           "model": "<model>",
           "prompt": "<prompt>",
           "temperature": <temperature>,
           "max_tokens": <max_tokens>
           }'
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<prompt>` — промт, например:

             ```text
             Объясни, что такое промт.
             ```

           * `<temperature>` — температура генерации.
             Чем выше значение, тем более разнообразными будут ответы.
             Рекомендуемые значения указаны в описании модели.
             Ссылку на описание модели можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>

      <TabItem value="python" default>
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           pip install openai
           ```

        2. Отправьте запрос к модели:

           ```python
           from openai import OpenAI

           client = OpenAI(
               base_url="<endpoint>/v1",
               api_key="<api_key>"
           )

           def get_completion():
               response = client.completions.create(
                   model="<model>",
                   prompt="<prompt>",
                   temperature=<temperature>,
                   max_tokens=<max_tokens>
               )
               return response.choices[0].text

           result = get_completion()
           print(f"Response: {result}")
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<prompt>` — промт, например:

             ```text
             Объясни, что такое промт.
             ```

           * `<temperature>` — температура генерации.
             Чем выше значение, тем более разнообразными будут ответы.
             Рекомендуемые значения указаны в описании модели.
             Ссылку на описание модели можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>

      <TabItem value="nodejs" default>
        <TabItemLabel>
          Node.js
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           npm install openai
           ```

        2. Отправьте запрос к модели:

           ```js
           import OpenAI from 'openai';

           const openai = new OpenAI({
             apiKey: '<api_key>',
             baseURL: '<endpoint>/v1',
           });

           async function getCompletion() {
             const response = await openai.completions.create({
               model: "<model>",
               prompt: "<prompt>",
               temperature: <temperature>,
               max_tokens: <max_tokens>,
             });

             console.log(response.choices[0].text);
           }

           getCompletion();
           ```

           Укажите:

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<prompt>` — промт, например:

             ```text
             Объясни, что такое промт.
             ```

           * `<temperature>` — температура генерации.
             Чем выше значение, тем более разнообразными будут ответы.
             Рекомендуемые значения указаны в описании модели.
             Ссылку на описание модели можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="chat-api">
    <TabItemLabel>
      Chat API
    </TabItemLabel>

    <Tabs queryString="chat-api-sync">
      <TabItem value="curl" default>
        <TabItemLabel>
          curl
        </TabItemLabel>

        1. Откройте CLI.

        2. Отправьте запрос к модели:

           ```bash
           curl <endpoint>/v1/chat/completions \
           -H "Authorization: Bearer <api_key>" \
           -H "Content-Type: application/json" \
           -d '{
               "model": "<model>",
               "messages": [
                 {
                 "role": "<role_1>",
                 "content": "<prompt_1>"
                 },
                 {
                 "role": "<role_2>",
                 "content": "<prompt_2>"
                 }
               ]
           }'
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<role_1>` — роль отправителя сообщения, например `developer`;

           * `<prompt_1>` — промт для заданной роли, например:

             ```text
             Ты виртуальный ассистент-помощник.
             ```

           * `<role_2>` — роль отправителя сообщения, например `user`;

           * `<prompt_2>` — промт для заданной роли, например:

             ```text
             Объясни, что такое промт.
             ```
      </TabItem>

      <TabItem value="python" default>
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           pip install openai
           ```

        2. Отправьте запрос к модели:

           ```python
           from openai import OpenAI

           client = OpenAI(
               base_url="<endpoint>/v1",
               api_key="<api_key>"
           )

           def get_chat_completion():
               response = client.chat.completions.create(
                   model="<model>",
                   messages=[
                       {"role": "<role_1>", "content": "<prompt_1>"},
                       {"role": "<role_2>", "content": "<prompt_2>"},
                   ],
                   max_tokens=<max_tokens>
               )
               return response.choices[0].message.content

           result = get_chat_completion()
           print(f"Response: {result}")
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<role_1>` — роль отправителя сообщения, например `developer`;

           * `<prompt_1>` — промт для заданной роли, например:

             ```text
             Ты виртуальный ассистент-помощник.
             ```

           * `<role_2>` — роль отправителя сообщения, например `user`;

           * `<prompt_2>` — промт для заданной роли, например:

             ```text
             Объясни, что такое промт.
             ```

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>

      <TabItem value="nodejs" default>
        <TabItemLabel>
          Node.js
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           npm install openai
           ```

        2. Отправьте запрос к модели:

           ```js
           import OpenAI from 'openai';

           const openai = new OpenAI({
             apiKey: '<api_key>',
             baseURL: '<endpoint>/v1',
           });

           async function getChatCompletion() {
             const response = await openai.chat.completions.create({
               model: "<model>",
               messages: [
                 { role: "<role_1>", content: "<prompt_1>" },
                 { role: "<role_2>", content: "<prompt_2>" },
               ],
             });

             console.log(response.choices[0].message.content);
           }

           getChatCompletion();
           ```

           Укажите:

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<role_1>` — роль отправителя сообщения, например `developer`;

           * `<prompt_1>` — промт для заданной роли, например:

             ```text
             Ты виртуальный ассистент-помощник.
             ```

           * `<role_2>` — роль отправителя сообщения, например `user`;

           * `<prompt_2>` — промт для заданной роли, например:

             ```text
             Объясни, что такое промт.
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="embeddings-api">
    <TabItemLabel>
      Embeddings API
    </TabItemLabel>

    <Tabs queryString="embeddings-api-sync">
      <TabItem value="curl" default>
        <TabItemLabel>
          curl
        </TabItemLabel>

        1. Откройте CLI.

        2. Отправьте запрос к модели:

           ```bash
           curl <endpoint>/v1/embeddings \
           -H "Authorization: Bearer <api_key>" \
           -H "Content-Type: application/json" \
           -d '{
               "model": "<model>",
               "encoding_format": "<encoding_format>",
               "input": [
                   "<input_text>"
                   ]
           }'
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<encoding_format>` — формат кодирования выходных данных, например `float`;

           * `<input_text>` — текст для преобразования в вектор, например:

             ```text
             Что такое машинное обучение?
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="rerank-api">
    <TabItemLabel>
      Rerank API
    </TabItemLabel>

    <Tabs queryString="rerank-api-sync">
      <TabItem value="curl" default>
        <TabItemLabel>
          curl
        </TabItemLabel>

        1. Откройте CLI.

        2. Отправьте запрос к модели:

           ```bash
           curl <endpoint>/v1/rerank \
           -H "Authorization: Bearer <api_key>" \
           -H "Content-Type: application/json" \
           -d '{
             "model": "<model>",
             "query": "<query>",
             "documents": [
               "<document_1>",
               "<document_2>"
             ]
           }'
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<query>` — поисковый запрос, по которому оценивается релевантность текстов, например:

             ```text
             Назови столицу Франции.
             ```

           * `<document_1>`, `<document_2>` — тексты документов для ранжирования.
             Каждый документ передается в формате строки.
             Например, для `<document_1>`:

             ```text
             Париж — столица Франции.
             ```
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="transcriptions-api">
    <TabItemLabel>
      Transcriptions API
    </TabItemLabel>

    <Tabs queryString="transcriptions-api-sync">
      <TabItem value="curl" default>
        <TabItemLabel>
          curl
        </TabItemLabel>

        1. Откройте CLI.

        2. Отправьте запрос к модели:

           ```bash
           curl <endpoint>/v1/audio/transcriptions \
           -H "Authorization: Bearer <api_key>" \
           -F "file=@<audio_file_path>" \
           -F "model=<model>" \
           -F "language=<language>" \
           -F "response_format=<response_format>"
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<audio_file_path>` — путь до аудиофайла;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<language>` — язык аудиозаписи, например `en`, `ru`;

           * `<response_format>` — формат вывода ответа, например `verbose_json`, `json`.
      </TabItem>
    </Tabs>
  </TabItem>
</Tabs>

## Отправить асинхронный запрос \{#send-async-request}

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

<Tabs queryString="send-async-request">
  <TabItem value="completions-api" default>
    <TabItemLabel>
      Completions API
    </TabItemLabel>

    <Tabs queryString="completions-api-async">
      <TabItem value="python" default>
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           pip install openai
           ```

        2. Отправьте запрос к модели:

           ```python
           import asyncio
           from openai import AsyncOpenAI

           client = AsyncOpenAI(
               base_url="<endpoint>/v1",
               api_key="<api_key>"
           )

           async def get_completion():
               response = await client.completions.create(
                   model="<model>",
                   prompt="<prompt>",
                   temperature=<temperature>,
                   max_tokens=<max_tokens>
               )
               return response.choices[0].text

           async def main():
               result = await get_completion()
               print(f"Response: {result}")
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<prompt>` — промт, например:

             ```
             Объясни, что такое промт.
             ```

           * `<temperature>` — температура генерации.
             Чем выше значение, тем более разнообразными будут ответы.
             Рекомендуемые значения указаны в описании модели.
             Ссылку на описание модели можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>

      <TabItem value="nodejs" default>
        <TabItemLabel>
          Node.js
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           npm install openai
           ```

        2. Отправьте запрос к модели:

           ```js
           import OpenAI from 'openai';

           const openai = new OpenAI({
             apiKey: '<api_key>',
             baseURL: '<endpoint>/v1',
           });

           async function getCompletion() {
             const response = await openai.completions.create({
               model: "<model>",
               prompt: "<prompt>",
               temperature: <temperature>,
               max_tokens: <max_tokens>,
             });

             console.log(response.choices[0].text);
           }

           getCompletion();
           ```

           Укажите:

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<prompt>` — промт, например:

             ```
             Объясни, что такое промт.
             ```

           * `<temperature>` — температура генерации.
             Чем выше значение, тем более разнообразными будут ответы.
             Рекомендуемые значения указаны в описании модели.
             Ссылку на описание модели можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="chat-api">
    <TabItemLabel>
      Chat API
    </TabItemLabel>

    <Tabs queryString="chat-api-async">
      <TabItem value="python" default>
        <TabItemLabel>
          Python
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           pip install openai
           ```

        2. Отправьте запрос к модели:

           ```python
           import asyncio
           from openai import AsyncOpenAI

           client = AsyncOpenAI(
               base_url="<endpoint>/v1",
               api_key="<api_key>"
           )

           async def get_chat_completion():
               response = await client.chat.completions.create(
                   model="<model>",
                   messages=[
                       {"role": "<role_1>", "content": "<prompt_1>"},
                       {"role": "<role_2>", "content": "<prompt_2>"},
                   ],
                   max_tokens=<max_tokens>
               )
               return response.choices[0].message.content

           async def main():
               result = await get_chat_completion()
               print(f"Response: {result}")
           ```

           Укажите:

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<role_1>` — роль отправителя сообщения, например `developer`;

           * `<prompt_1>` — промт для заданной роли, например:

             ```
             Ты виртуальный ассистент-помощник.
             ```

           * `<role_2>` — роль отправителя сообщения, например `user`;

           * `<prompt_2>` — промт для заданной роли, например:

             ```
             Объясни, что такое промт.
             ```

           * `<max_tokens>` — максимальное количество токенов в ответе модели.
             Не может превышать максимальную длину контекста.
             Максимальную длину контекста можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Максимальная длина контекста**.
      </TabItem>

      <TabItem value="nodejs" default>
        <TabItemLabel>
          Node.js
        </TabItemLabel>

        1. Установите библиотеку `openai`:

           ```bash
           npm install openai
           ```

        2. Отправьте запрос к модели:

           ```js
           import OpenAI from 'openai';

           const openai = new OpenAI({
             apiKey: '<api_key>',
             baseURL: '<endpoint>/v1',
           });

           async function getChatCompletion() {
             const response = await openai.chat.completions.create({
               model: "<model>",
               messages: [
                 { role: "<role_1>", content: "<prompt_1>" },
                 { role: "<role_2>", content: "<prompt_2>" },
               ],
             });

             console.log(response.choices[0].message.content);
           }

           getChatCompletion();
           ```

           Укажите:

           * `<api_key>` — API-ключ, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **API-ключи** → в строке API-ключа нажмите <EyeIcon />, а затем <CopyIcon />;

           * `<endpoint>` — эндпоинт inference-сервиса, можно скопировать в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → в карточке inference-сервиса в строке **Endpoint Inference-сервиса** нажмите <CopyIcon />;

           * `<model>` — название модели, можно посмотреть в [панели управления](https://my.selectel.ru/ml/default/inference-services/): в верхнем меню нажмите **Продукты** → **Inference-сервисы** → страница inference-сервиса → вкладка **Сервис** → строка **Модель**;

           * `<role_1>` — роль отправителя сообщения, например `developer`;

           * `<prompt_1>` — промт для заданной роли, например:

             ```
             Ты виртуальный ассистент-помощник.
             ```

           * `<role_2>` — роль отправителя сообщения, например `user`;

           * `<prompt_2>` — промт для заданной роли, например:

             ```
             Объясни, что такое промт.
             ```
      </TabItem>
    </Tabs>
  </TabItem>
</Tabs>

<Formbricks />
