Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Databricks Uygulamalarına veya Model Sunma uç noktalarına dağıtılan aracılara istek göndermeyi öğrenin. Databricks, farklı kullanım örneklerine ve tümleştirme gereksinimlerine uyacak birden çok sorgu yöntemi sağlar.
Kullanım örneğiniz için en uygun sorgu yaklaşımını seçin:
| Yöntemi | Önemli avantajlar |
|---|---|
| Databricks OpenAI İstemcisi (Önerilen) | Yerel tümleştirme, tam özellik desteği, akış özellikleri |
| REST API | OpenAI uyumlu, dil belirsiz, mevcut araçlarla çalışır |
AI İşlevleri: ai_query |
Yalnızca Model Sunma uç noktaları üzerinde barındırılan OpenAI uyumlu, sorgu eski aracıları |
Databricks, yeni uygulamalar için Databricks OpenAI İstemcisi'ni önerir. OpenAI uyumlu uç noktaları bekleyen platformlarla tümleştirme yaparken REST API'yi seçin.
Databricks OpenAI İstemcisi (Önerilen)
Databricks, dağıtılan aracıyı sorgulamak için DatabricksOpenAI İstemcisi'ni kullanmanızı önerir. Dağıtılan aracınızın API'sine bağlı olarak yanıtları veya sohbet tamamlama istemcisini kullanacaksınız:
Uygulamalara dağıtılan aracılar
Aracılar oluşturmak için önerilen yaklaşım olan arabirimi kullanan Databricks Uygulamalarında barındırılan aracılar için aşağıdaki örneği kullanın. Databricks Uygulamalarında barındırılan aracıları sorgulamak için Databricks OAuth belirteci kullanmanız gerekir.
from databricks.sdk import WorkspaceClient
from databricks_openai import DatabricksOpenAI
input_msgs = [{"role": "user", "content": "What does Databricks do?"}]
app_name = "<agent-app-name>" # TODO: update this with your app name
# The WorkspaceClient must be configured with OAuth authentication
# See: https://docs.databricks.com/aws/en/dev-tools/auth/oauth-u2m.html
w = WorkspaceClient()
client = DatabricksOpenAI(workspace_client=w)
# Run for non-streaming responses. Calls the "invoke" method
# Include the "apps/" prefix in the model name
response = client.responses.create(model=f"apps/{app_name}", input=input_msgs)
print(response)
# Include stream=True for streaming responses. Calls the "stream" method
# Include the "apps/" prefix in the model name
streaming_response = client.responses.create(
model=f"apps/{app_name}", input=input_msgs, stream=True
)
for chunk in streaming_response:
print(chunk)
custom_inputs tan geçmek istiyorsanız, bunları extra_body parametresiyle ekleyebilirsiniz.
streaming_response = client.responses.create(
model=f"apps/{app_name}",
input=input_msgs,
stream=True,
extra_body={
"custom_inputs": {"id": 5},
},
)
for chunk in streaming_response:
print(chunk)
Yanıttan bir izleme kimliği almak için x-mlflow-return-trace-id üst bilgiyi extra_headers kullanarak ekleyin. Ardından tam izlemeyi almak için MLflow get_trace kullanın.
response = client.responses.create(
model=f"apps/{app_name}",
input=input_msgs,
extra_headers={"x-mlflow-return-trace-id": "true"},
)
trace_id = response.metadata["trace_id"]
trace = client.get_trace(trace_id)
Model Sunumu Üzerine Aracılar
Model Sunma'da barındırılan eski ajanlar için ResponsesAgent arabirimini takip ederek aşağıdaki örneği kullanın. Model Sunma'da barındırılan aracıları sorgulamak için Databricks OAuth belirteci veya Kişisel Erişim Belirteci (PAT) kullanabilirsiniz.
from databricks_openai import DatabricksOpenAI
input_msgs = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
client = DatabricksOpenAI()
# Run for non-streaming responses. Invokes `predict`
response = client.responses.create(model=endpoint, input=input_msgs)
print(response)
# Include stream=True for streaming responses. Invokes `predict_stream`
streaming_response = client.responses.create(model=endpoint, input=input_msgs, stream=True)
for chunk in streaming_response:
print(chunk)
Eğer custom_inputs veya databricks_options kullanarak geçmek istiyorsanız, bunları extra_body parametresi ile ekleyebilirsiniz.
streaming_response = client.responses.create(
model=endpoint,
input=input_msgs,
stream=True,
extra_body={
"custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
},
)
for chunk in streaming_response:
print(chunk)
ChatAgent veya ChatModel arabirimlerini takip eden modeldeki eski aracılar için aşağıdaki örneği kullanın.
from databricks.sdk import WorkspaceClient
messages = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
ws_client = WorkspaceClient()
client = ws_client.serving_endpoints.get_open_ai_client()
# Run for non-streaming responses. Invokes `predict`
response = client.chat.completions.create(model=endpoint, messages=messages)
print(response)
# Include stream=True for streaming responses. Invokes `predict_stream`
streaming_response = client.chat.completions.create(model=endpoint, messages=messages, stream=True)
for chunk in streaming_response:
print(chunk)
Eğer custom_inputs veya databricks_options kullanarak geçmek istiyorsanız, bunları extra_body parametresi ile ekleyebilirsiniz.
streaming_response = client.chat.completions.create(
model=endpoint,
messages=messages,
stream=True,
extra_body={
"custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
},
)
for chunk in streaming_response:
print(chunk)
REST API
Databricks REST API, OpenAI uyumlu modeller için uç noktalar sağlar. Bu, OpenAI arabirimleri gerektiren uygulamalara hizmet vermek için Databricks aracılarını kullanmanıza olanak tanır.
Bu yaklaşım aşağıdakiler için idealdir:
- HTTP isteklerini kullanan dilden bağımsız uygulamalar
- OpenAI ile uyumlu olan API’leri bekleyen üçüncü taraf platformlarla entegrasyon.
- En az kod değişikliğiyle OpenAI'den Databricks'e geçiş
Databricks OAuth belirteci kullanarak REST API ile kimlik doğrulaması yapın. Daha fazla seçenek ve bilgi için Databricks Kimlik Doğrulama Belgeleri'ne bakın.
Uygulamalara dağıtılan aracılar
Aracılar oluşturmak için önerilen yaklaşım olan arabirimi kullanan Databricks Uygulamalarında barındırılan aracılar için aşağıdaki örneği kullanın. Databricks Uygulamalarında barındırılan aracıları sorgulamak için Databricks OAuth belirteci kullanmanız gerekir.
curl --request POST \
--url <app-url>.databricksapps.com/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"input": [{ "role": "user", "content": "hi" }],
"stream": true
}'
geçirmek custom_inputsistiyorsanız, bunları istek gövdesine ekleyebilirsiniz:
curl --request POST \
--url <app-url>.databricksapps.com/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"input": [{ "role": "user", "content": "hi" }],
"stream": true,
"custom_inputs": { "id": 5 }
}'
Yanıttan bir izleme kimliği almak için isteğinize üst bilgiyi ekleyin x-mlflow-return-trace-id . Yanıt gövdesi, izleme kimliğini içeren bir metadata.trace_id alan içerir. Akış istekleri için izleme kimliği akışın sonuna yakın bir ayrı SSE olayı (data: {"trace_id": "tr-..."}) olarak gönderilir. Ardından, izleme kimliğini kullanarak tam izlemeyi almak için MLflow get_trace kullanın.
curl --request POST \
--url <app-url>.databricksapps.com/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--header 'x-mlflow-return-trace-id: true' \
--data '{
"input": [{ "role": "user", "content": "hi" }]
}'
Model Sunumu Üzerine Aracılar
Model Sunma'da barındırılan eski ajanlar için ResponsesAgent arabirimini takip ederek aşağıdaki örneği kullanın. Model Sunma'da barındırılan aracıları sorgulamak için Databricks OAuth belirteci veya Kişisel Erişim Belirteci (PAT) kullanabilirsiniz. REST API çağrısı aşağıdakilere eşdeğerdir:
- ile
responses.createDatabricks OpenAI İstemcisini kullanma. - Belirli bir uç noktanın URL'sine post isteği gönderme (örn:
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations). Daha fazla bilgi için uç noktanızın Model Sunma sayfasına ve Model Sunma Belgeleri'ne bakın.
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"input": [{ "role": "user", "content": "hi" }],
"stream": true
}'
custom_inputs veya databricks_options'yi geçirmek istiyorsanız, bunları istek gövdesine ekleyebilirsiniz:
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"input": [{ "role": "user", "content": "hi" }],
"stream": true,
"custom_inputs": { "id": 5 },
"databricks_options": { "return_trace": true }
}'
Eski ChatAgent veya ChatModel arabirimleriyle oluşturulan aracılar için aşağıdakileri kullanın. Bu, şuna eşdeğerdir:
- ile
chat.completions.createDatabricks OpenAI İstemcisini kullanma. - Belirli bir uç noktanın URL'sine post isteği gönderme (örn:
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations). Daha fazla bilgi için uç noktanızın Model Sunma sayfasına ve Model Sunma Belgeleri'ne bakın.
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/chat/completions \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"messages": [{ "role": "user", "content": "hi" }],
"stream": true
}'
custom_inputs veya databricks_options'yi geçirmek istiyorsanız, bunları istek gövdesine ekleyebilirsiniz:
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/chat/completions \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"messages": [{ "role": "user", "content": "hi" }],
"stream": true,
"custom_inputs": { "id": 5 },
"databricks_options": { "return_trace": true }
}'
AI İşlevleri: ai_query
SQL kullanarak model sunumu üzerinde barındırılan dağıtılmış bir aracı sorgulamak için ai_query kullanabilirsiniz. SQL söz dizimi ve parametre tanımları için işlevine bakın.ai_query
SELECT ai_query(
"<model name>", question
) FROM (VALUES ('what is MLflow?'), ('how does MLflow work?')) AS t(question);