Ekleme modelini sorgulama

Bu makalede, ekleme görevleri için iyileştirilmiş ve Unity AI Gateway tarafından sunulan temel modeller için sorgu istekleri yazmayı öğreneceksiniz.

Bu makaledeki örnekler, aşağıdakilerden biri kullanılarak kullanıma sunulan temel modelleri sorgulamak için geçerlidir:

Gereksinimler

Sorgu örnekleri

Uyarı

Aşağıdaki örnekler Unity AI Gateway ve model hizmetlerini temel alır. Model hizmetleri yerine uç noktaları sunan model kullanıyorsanız, model hizmeti adını bir uç nokta adıyla değiştirin. Kullanılabilir temel modellerin ve bunların model hizmeti ve uç nokta adlarının listesi için bkz. Temel Model API'lerinde bulunan Databricks tarafından barındırılan temel modeller.

Tavsiye

Genie Code (Aracı modu) bunu sizin için yapabilir. Şu örnek istemi deneyin:

Show query examples that send embedding requests to the databricks-gte-large-en model using the DatabricksOpenAI helper, the plain OpenAI client, and a curl REST API call.

Aşağıda, farklı gte-large-en kullanılarak Foundation Model API'leri tarafından belirteç başına ödeme yapılarak kullanıma sunulan modele yönelik bir ekleme isteği yer alır.

OpenAI istemcisi

OpenAI istemcisini kullanmak için giriş olarak model uç nokta adını sunan modeli belirtin.

from databricks_openai import DatabricksOpenAI

client = DatabricksOpenAI()

response = client.embeddings.create(
  model="system.ai.gte-large-en",
  input="what is databricks"
)

Çalışma alanınızın dışındaki temel modelleri sorgulamak için, aşağıda gösterildiği gibi doğrudan OpenAI istemcisini kullanmanız gerekir. Aşağıdaki örnekte, bir Databricks API belirteciniz olduğu ve openai bilgisayarınızda yüklenmiş olduğu varsayılır. OpenAI istemcisini Databricks'e bağlamak için Databricks çalışma alanı örneğinize de ihtiyacınız vardır.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/ai-gateway/mlflow/v1"
)

response = client.embeddings.create(
  model="system.ai.gte-large-en",
  input="what is databricks"
)

SQL

Önemli

Aşağıdaki örnek, ai_query yerleşik SQL işlevini kullanır. Bu işlev Genel Önizleme aşamasındadır ve tanım değişebilir.


SELECT ai_query(
    "system.ai.gte-large-en",
    "Can you explain AI in ten words?"
  )

REST API

Önemli

Aşağıdaki örnek, temel modellere veya dış modellere hizmet veren hizmet uç noktalarını sorgulamak için REST API parametrelerini kullanır. Bu parametreler "Public Preview" içindedir ve tanımı değişebilir. Bkz. POST /serving-endpoints/{name}/invocations.


curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d  '{
  "model": "system.ai.gte-large-en",
  "input": "Embed this sentence!"
}' \
https://<workspace_host>.databricks.com/ai-gateway/mlflow/v1/embeddings

MLflow Dağıtım SDK'sı

Önemli

Aşağıdaki örnek, MLflow Dağıtımları SDK'sından predict()API'yi kullanır.


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="system.ai.gte-large-en",
    inputs={
        "input": "Here is some text to embed"
    }
)

Databricks Python SDK'sı


from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="system.ai.gte-large-en",
    input="Embed this sentence!"
)
print(response.data[0].embedding)

LangChain

Ekleme modeli olarak LangChain'de Databricks Foundation Model API'leri modeli kullanmak için sınıfı içeri aktarın DatabricksEmbeddings ve parametresini endpoint aşağıdaki gibi belirtin:

%pip install databricks-langchain
from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(endpoint="system.ai.gte-large-en")
embeddings.embed_query("Can you explain AI in ten words?")

Aşağıdaki, ekleme modeli için beklenen istek biçimidir. Dış modeller için, belirli bir sağlayıcı ve uç nokta yapılandırması için geçerli olan ek parametreler ekleyebilirsiniz. Bkz. Ek sorgu parametreleri.


{
  "input": [
    "embedding text"
  ]
}

Beklenen yanıt biçimi aşağıdadır:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": []
    }
  ],
  "model": "text-embedding-ada-002-v2",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  }
}

Desteklenen modeller

Desteklenen ekleme modelleri için bkz. Temel model türleri .

Gömlemeler normalleştirilmiş mi kontrol edin

Modeliniz tarafından oluşturulan eklemelerin normalleştirilip normalleştirilmediğini denetlemek için aşağıdakileri kullanın.


  import numpy as np

  def is_normalized(vector: list[float], tol=1e-3) -> bool:
      magnitude = np.linalg.norm(vector)
      return abs(magnitude - 1) < tol

Ek kaynaklar