Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam artikel ini, Anda akan mempelajari cara menulis permintaan kueri untuk model dasar yang dioptimalkan untuk tugas-tugas embeddings dan mengirimkannya ke titik akhir penyajian model Anda.
Contoh dalam artikel ini berlaku untuk mengkueri model fondasi yang tersedia menggunakan:
- Model Fondasi API yang disebut sebagai model fondasi yang dihosting Databricks.
- Model eksternal yang disebut sebagai model fondasi yang dihosting di luar Databricks.
Persyaratan
- Lihat Persyaratan.
- Instal paket yang sesuai ke kluster Anda berdasarkan opsi klien kueri yang Anda pilih.
Contoh kueri
Berikut ini adalah permintaan penyematan untuk gte-large-en model yang disediakan oleh API Model Foundation pay-per-token, menggunakan berbagai opsi klien.
Klien OpenAI
Untuk menggunakan klien OpenAI, tentukan nama titik akhir model sebagai model input.
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.embeddings.create(
model="databricks-gte-large-en",
input="what is databricks"
)
Untuk mengkueri model fondasi di luar ruang kerja, Anda harus menggunakan klien OpenAI secara langsung, seperti yang ditunjukkan di bawah ini. Contoh berikut mengasumsikan Anda memiliki token Databricks API dan openai diinstal pada komputasi Anda. Anda juga memerlukan instans ruang kerja Databricks untuk menghubungkan klien OpenAI ke 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
Penting
Contoh berikut menggunakan fungsi SQL bawaan, ai_query. Fungsi ini ada di Pratinjau Umum dan definisinya mungkin berubah.
SELECT ai_query(
"databricks-gte-large-en",
"Can you explain AI in ten words?"
)
REST API
Penting
Contoh berikut menggunakan parameter REST API untuk mengkueri titik akhir penyajian yang melayani model fondasi atau model eksternal. Parameter ini ada di Pratinjau Umum dan definisinya mungkin berubah. Lihat 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 Penyebaran MLflow
Penting
Contoh berikut menggunakan predict() API dari MLflow Deployments SDK.
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
Untuk menggunakan model API Model Databricks Foundation di LangChain sebagai model penyematan, impor DatabricksEmbeddings kelas dan tentukan endpoint parameter sebagai berikut:
%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?")
Berikut ini adalah format permintaan yang diinginkan untuk model penyematan. Untuk model eksternal, Anda dapat menyertakan parameter tambahan yang valid untuk penyedia dan konfigurasi titik akhir tertentu. Lihat Parameter kueri tambahan.
{
"input": [
"embedding text"
]
}
Berikut ini adalah format respons yang diharapkan:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Model yang didukung
Lihat Jenis model dasar untuk model penyematan yang didukung.
Periksa apakah embeddings dinormalisasi
Gunakan yang berikut ini untuk memeriksa apakah embedding yang dihasilkan oleh model Anda sudah dinormalisasi.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol