Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přečtěte si, jak odesílat požadavky agentům nasazenými do aplikací Databricks nebo do koncových bodů obsluhy modelů. Databricks poskytuje několik metod dotazů, které odpovídají různým případům použití a potřebám integrace.
Vyberte přístup k dotazu, který nejlépe vyhovuje vašemu případu použití:
| Metoda | Klíčové výhody |
|---|---|
| Klient OpenAI Databricks (doporučeno) | Nativní integrace, plná podpora funkcí, možnosti streamování |
| REST API | OpenAI kompatibilní, nezávislý na jazyce, funguje se stávajícími nástroji. |
Funkce AI: ai_query |
Kompatibilní s OpenAI, starší verze agentů dotazů hostovaných pouze v koncových bodech obsluhy modelů |
Databricks doporučuje klienta Databricks OpenAI pro nové aplikace. Při integraci s platformami, které očekávají koncové body kompatibilní s OpenAI, zvolte rozhraní REST API .
Klient OpenAI Databricks (doporučeno)
Databricks doporučuje použít klienta DatabricksOpenAI k dotazování nasazeného agenta. V závislosti na API vašeho nasazeného agenta budete buď používat odpovědi, nebo klienta pro dokončení chatu:
Agenti nasazení do aplikací
Následující příklad použijte pro agenty hostované v Databricks Apps podle ResponsesAgent rozhraní, což je doporučený postup pro sestavování agentů. K dotazování agentů hostovaných v Databricks Apps musíte použít token Databricks OAuth .
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)
Pokud chcete předat custom_inputs, lze je přidat pomocí parametru extra_body.
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)
Chcete-li načíst ID trasování z odpovědi, zahrňte hlavičku x-mlflow-return-trace-id pomocí extra_headers. Nakonec použijte MLflow get_trace k načtení úplné stopy.
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)
Agenti při obsluhování modelů
Následující příklad použijte pro starší agenty hostované na Model Serving, které používají ResponsesAgent rozhraní. K dotazování agentů hostovaných ve službě Model Serving můžete použít token Databricks OAuth nebo token PAT (Personal Access Token).
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)
Pokud chcete předat custom_inputs , nebo databricks_optionsje můžete přidat pomocí parametru extra_body :
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)
Následující příklad použijte pro starší agenty na modelu obsluhujícího rozhraní ChatAgent nebo ChatModel.
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)
Pokud chcete předat custom_inputs , nebo databricks_optionsje můžete přidat pomocí parametru extra_body :
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
Rozhraní Databricks REST API poskytuje koncové body pro modely, které jsou kompatibilní s OpenAI. To vám umožní používat agenty Databricks k obsluhování aplikací, které vyžadují rozhraní OpenAI.
Tento přístup je ideální pro:
- Aplikace nezávislé na jazyce, které používají požadavky HTTP
- Integrace s platformami třetích stran, které očekávají rozhraní API kompatibilní s OpenAI
- Migrace z OpenAI na Databricks s minimálními změnami kódu
Ověřte se pomocí rozhraní REST API pomocí tokenu OAuth Databricks. Další možnosti a informace najdete v dokumentaci k ověřování Databricks .
Agenti nasazení do aplikací
Následující příklad použijte pro agenty hostované v Databricks Apps podle ResponsesAgent rozhraní, což je doporučený postup pro sestavování agentů. K dotazování agentů hostovaných v Databricks Apps musíte použít token Databricks OAuth .
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
}'
Pokud chcete přidat custom_inputs do textu požadavku, můžete je vložit:
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 }
}'
Pokud chcete načíst sledovací ID z odpovědi, přidejte do požadavku hlavičku x-mlflow-return-trace-id. Tělo odpovědi obsahuje pole metadata.trace_id, které obsahuje sledovací ID. U požadavků na streamování se ID trasování odešle jako samostatná událost SSE (data: {"trace_id": "tr-..."}) na konci datového proudu. Pomocí MLflow get_trace pak načtěte úplné sledování pomocí ID sledová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" }]
}'
Agenti při obsluhování modelů
Následující příklad použijte pro starší agenty hostované na Model Serving, které používají ResponsesAgent rozhraní. K dotazování agentů hostovaných ve službě Model Serving můžete použít token Databricks OAuth nebo token PAT (Personal Access Token). Volání rozhraní REST API odpovídá:
- Použití klienta Databricks OpenAI s
responses.create. - Odeslání požadavku POST na adresu URL konkrétního koncového bodu (např.
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocationsDalší informace najdete na stránce obsluhy modelů vašeho koncového bodu a dokumentaci k poskytování služeb modelu.
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
}'
Pokud chcete předat custom_inputs nebo databricks_options, můžete je přidat do textu požadavku:
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 }
}'
Pro agenty vytvořené pomocí starší verze rozhraní ChatAgent nebo ChatModel použijte následující kód. To odpovídá:
- Použití klienta Databricks OpenAI s
chat.completions.create. - Odeslání požadavku POST na adresu URL konkrétního koncového bodu (např.
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocationsDalší informace najdete na stránce obsluhy modelů vašeho koncového bodu a dokumentaci k poskytování služeb modelu.
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
}'
Pokud chcete předat custom_inputs nebo databricks_options, můžete je přidat do textu požadavku:
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 }
}'
Funkce AI: ai_query
Můžete použít ai_query k dotazování nasazeného agenta hostovaného na modelu obsluhujícího pomocí SQL. Viz ai_query funkce pro syntaxi SQL a definice parametrů.
SELECT ai_query(
"<model name>", question
) FROM (VALUES ('what is MLflow?'), ('how does MLflow work?')) AS t(question);