Перейти к основному содержимому

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

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

На стороне клиента можно отправлять синхронные и асинхронные запросы.

Для работы с моделями доступны различные типы API в зависимости от решаемой задачи и категории моделей.

Типы API

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

Тип APIОписаниеКатегория моделей
Completions APIГенерация текста на основе одного промта — без поддержки диалога или истории сообщенийМодели для генерации текста, мультимодальные модели
Chat APIГенерация текста в режиме диалога — с учетом ролей и истории сообщенийМодели для генерации текста, мультимодальные модели
Embeddings API

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

Модели для генерации эмбеддингов
Rerank API

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

Модели для ранжирования текстов
Transcriptions APIПреобразование аудиофайла в текстМодели для распознавания речи

Отправить синхронный запрос

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

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

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

    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-сервиса, можно скопировать в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Быстрый старт → в блоке Endpoint нажмите ;

    • <api_key> — API-ключ, можно скопировать в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка API-ключи → в строке API-ключа нажмите , а затем ;

    • <model> — название модели, можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Модель;

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

      Объясни, что такое промт.
    • <temperature> — температура генерации. Чем выше значение, тем более разнообразными будут ответы. Рекомендуемые значения указаны в описании модели. Ссылку на описание модели можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Модель;

    • <max_tokens> — максимальное количество токенов в ответе модели. Не может превышать максимальную длину контекста. Максимальную длину контекста можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Максимальная длина контекста.

Отправить асинхронный запрос

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

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

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

    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].message.content

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

    Укажите:

    • <endpoint> — эндпоинт inference-сервиса, можно скопировать в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Быстрый старт → в блоке Endpoint нажмите ;

    • <api_key> — API-ключ, можно скопировать в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка API-ключи → в строке API-ключа нажмите , а затем ;

    • <model> — название модели, можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Модель;

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

      Объясни, что такое промт.
    • <temperature> — температура генерации. Чем выше значение, тем более разнообразными будут ответы. Рекомендуемые значения указаны в описании модели. Ссылку на описание модели можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Модель;

    • <max_tokens> — максимальное количество токенов в ответе модели. Не может превышать максимальную длину контекста. Максимальную длину контекста можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыInference-сервисы → страница inference-сервиса → вкладка Сервис → строка Максимальная длина контекста.