Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как создавать запросы к базовым моделям, оптимизированным для задач внедрения и отправлять их в конечную точку обслуживания модели.
Примеры, приведенные в этой статье, относятся к запросам базовых моделей, доступных с помощью следующих способов:
- API-интерфейсы Базовых моделей , которые называются моделями баз данных, размещенными в Databricks.
- Внешние модели , которые называются базовыми моделями, размещенными за пределами Databricks.
Требования
- См. раздел Требования.
- Установите соответствующий пакет в кластер на основе выбранного варианта запроса клиента .
Примеры запросов
Ниже приведен запрос на встраивание для модели gte-large-en, предоставляемой API интерфейсами Foundation Model с платежом за токен, с использованием различных вариантов клиента.
Клиент OpenAI
Чтобы использовать клиент OpenAI, укажите имя конечной точки службы модели в качестве входных model данных.
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.embeddings.create(
model="databricks-gte-large-en",
input="what is databricks"
)
Чтобы запросить базовые модели за пределами рабочей области, необходимо напрямую использовать клиент OpenAI, как показано ниже. В следующем примере предполагается, что у вас есть токен API Databricks и openai установлен на вашем вычислительном устройстве. Вам также нужен экземпляр рабочей области Databricks для подключения клиента OpenAI к Databricks.
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)
response = client.embeddings.create(
model="databricks-gte-large-en",
input="what is databricks"
)
SQL
Это важно
В следующем примере используется встроенная функция SQL, ai_query. Эта функция находится в общедоступной предварительной версии , и определение может измениться.
SELECT ai_query(
"databricks-gte-large-en",
"Can you explain AI in ten words?"
)
REST API
Это важно
В следующем примере используются параметры REST API для запроса конечных точек обслуживания, которые служат базовым моделям или внешним моделям. Эти параметры находятся в общедоступной предварительной версии , и определение может измениться. См. POST /serving-endpoints/{name}/invocations.
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{ "input": "Embed this sentence!"}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-gte-large-en/invocations
Пакет SDK для развертываний MLflow
Это важно
В следующем примере используется predict() API из пакета SDK для развертываний MLflow.
import mlflow.deployments
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"
client = mlflow.deployments.get_deploy_client("databricks")
embeddings_response = client.predict(
endpoint="databricks-gte-large-en",
inputs={
"input": "Here is some text to embed"
}
)
Databricks Python SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="databricks-gte-large-en",
input="Embed this sentence!"
)
print(response.data[0].embedding)
LangChain
Чтобы использовать модель API модели Databricks Foundation в LangChain в качестве модели внедрения, импортируйте DatabricksEmbeddings класс и укажите endpoint параметр следующим образом:
%pip install databricks-langchain
from databricks_langchain import DatabricksEmbeddings
embeddings = DatabricksEmbeddings(endpoint="databricks-gte-large-en")
embeddings.embed_query("Can you explain AI in ten words?")
Ниже приведен ожидаемый формат запроса для модели внедрения. Для внешних моделей можно включить дополнительные параметры, допустимые для заданного поставщика и конфигурации конечной точки. См. дополнительные параметры запроса.
{
"input": [
"embedding text"
]
}
Ниже приведен ожидаемый формат ответа:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Поддерживаемые модели
См. типы моделей Foundation для поддерживаемых моделей внедрения.
Проверить нормализацию встраиваний
Используйте следующее, чтобы проверить, нормализуются ли эмбеддинги, созданные вашей моделью.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol