Интеграция с OpenAI для инференса
Создаёт конечную точку инференса для выполнения задачи инференса с помощью сервиса 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