Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›Inference API

Интеграция с OpenAI для инференса

Справочник нового API

Для получения самых последних данных об API обратитесь к Inference API.

Создаёт конечную точку инференса для выполнения задачи инференса с помощью сервиса openai.

Запрос

PUT /_inference/<task_type>/<inference_id>

Параметры пути

<inference_id>
(Обязательно, строка) Уникальный идентификатор конечной точки инференса.
<task_type>

(Обязательно, строка) Тип задачи инференса, которую будет выполнять модель.

Доступные типы задач:

  • completion,
  • text_embedding.

Тело запроса

chunking_settings

(Необязательно, объект) Конфигурация фрагментации. Обратитесь к Настройка фрагментации, чтобы узнать больше о фрагментации.

max_chunk_size
(Необязательно, целое число) Указывает максимальный размер фрагмента в словах. По умолчанию 250. Это значение не может быть больше 300 или меньше 20 (для стратегии sentence) или 10 (для стратегии word).
overlap
(Необязательно, целое число) Только для стратегии фрагментации word. Указывает количество перекрывающихся слов для фрагментов. По умолчанию 100. Это значение не может быть больше половины max_chunk_size.
sentence_overlap
(Необязательно, целое число) Только для стратегии фрагментации sentence. Указывает количество перекрывающихся предложений для фрагментов. Может быть либо 1, либо 0. По умолчанию 1.
strategy
(Необязательно, строка) Указывает стратегию фрагментации. Может быть либо sentence, либо word.
service
(Обязательно, строка) Тип сервиса, поддерживаемый для указанного типа задачи. В данном случае openai.
service_settings

(Обязательно, объект) Параметры, используемые для установки модели инференса.

Эти параметры специфичны для сервиса openai.

api_key

(Обязательно, строка) Действительный API-ключ вашей учётной записи OpenAI. Вы можете найти свои API-ключи OpenAI в вашей учётной записи OpenAI в разделе API-ключи.

Вам нужно предоставить API-ключ только один раз при создании модели инференса. API Получение API инференса не извлекает ваш API-ключ. После создания модели инференса вы не сможете изменить связанный API-ключ. Если вы хотите использовать другой API-ключ, удалите модель инференса и создайте её заново с тем же именем и обновлённым API-ключом.

dimensions
(Необязательно, целое число) Количество измерений, которые должны иметь результирующие векторные представления. Поддерживается только в моделях text-embedding-3 и более поздних. Если не задано, используется значение по умолчанию OpenAI для модели.
model_id
(Обязательно, строка) Название модели, которую нужно использовать для задачи инференса. Список доступных текстовых моделей векторных представлений см. в документации OpenAI.
organization_id
(Необязательно, строка) Уникальный идентификатор вашей организации. Вы можете найти идентификатор организации в вашей учётной записи OpenAI в Настройки > Организации.
url
(Необязательно, строка) URL-адрес конечной точки, который следует использовать для запросов. Может быть изменён для целей тестирования. По умолчанию https://api.openai.com/v1/embeddings.
rate_limit

(Необязательно, объект) Сервис openai устанавливает значение по умолчанию для количества запросов в минуту в зависимости от типа задачи. Для text_embedding оно установлено в 3000. Для completion оно установлено в 500. Это помогает минимизировать количество ошибок ограничений скорости, возвращаемых OpenAI. Чтобы изменить это, задайте параметр requests_per_minute в настройках вашего сервиса:

"rate_limit": {
    "requests_per_minute": <<number_of_requests>>
}

Дополнительную информацию об ограничениях скорости OpenAI можно найти в разделе Ограничения по учётной записи.

task_settings

(Необязательно, объект) Параметры для настройки задачи инференса. Эти параметры специфичны для <task_type>, который вы указали.

task_settings для типа задачи completion
user
(Необязательно, строка) Указывает пользователя, который выполняет запрос, что может быть использовано для обнаружения злоупотреблений.
task_settings для типа задачи text_embedding
user
(Необязательно, строка) Указывает пользователя, который выполняет запрос, что может быть использовано для обнаружения злоупотреблений.

Пример сервиса OpenAI

В следующем примере показано, как создать конечную точку инференса под названием openai-embeddings для выполнения задачи типа text_embedding. Векторные представления, созданные запросами к этой конечной точке, будут иметь 128 измерений.

resp = client.inference.put(
    task_type="text_embedding",
    inference_id="openai-embeddings",
    inference_config={
        "service": "openai",
        "service_settings": {
            "api_key": "<api_key>",
            "model_id": "text-embedding-3-small",
            "dimensions": 128
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "openai-embeddings",
  inference_config: {
    service: "openai",
    service_settings: {
      api_key: "<api_key>",
      model_id: "text-embedding-3-small",
      dimensions: 128,
    },
  },
});
console.log(response);
PUT _inference/text_embedding/openai-embeddings
{
    "service": "openai",
    "service_settings": {
        "api_key": "<api_key>",
        "model_id": "text-embedding-3-small",
        "dimensions": 128
    }
}

Следующий пример демонстрирует создание конечной точки инференса под названием openai-completion для выполнения задачи типа completion.

resp = client.inference.put(
    task_type="completion",
    inference_id="openai-completion",
    inference_config={
        "service": "openai",
        "service_settings": {
            "api_key": "<api_key>",
            "model_id": "gpt-3.5-turbo"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "openai-completion",
  inference_config: {
    service: "openai",
    service_settings: {
      api_key: "<api_key>",
      model_id: "gpt-3.5-turbo",
    },
  },
});
console.log(response);
PUT _inference/completion/openai-completion
{
    "service": "openai",
    "service_settings": {
        "api_key": "<api_key>",
        "model_id": "gpt-3.5-turbo"
    }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/infer-service-openai.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API