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.
Zjistěte, jak odesílat požadavky agentům nasazeným do koncového bodu obsluhy modelů. Databricks poskytuje několik metod dotazů, které odpovídají různým případům použití a potřebám integrace.
Informace o nasazení agentů najdete v tématu Nasazení agenta pro generování aplikací umělé inteligence.
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í |
| Klient nasazení MLflow | Existující vzory MLflow, navržené pipeliny ML |
| REST API | OpenAI kompatibilní, nezávislý na jazyce, funguje se stávajícími nástroji. |
Funkce AI: ai_query |
Kompatibilní s OpenAI, funguje s existujícími nástroji. |
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, abyste k dotazování nasazeného agenta použili klienta Databricks OpenAI . V závislosti na API vašeho nasazeného agenta budete buď používat odpovědi, nebo klienta pro dokončení chatu:
Koncové body ResponsesAgent
Následující příklad použijte pro agenty vytvořené pomocí rozhraní ResponsesAgent, což je doporučený postup pro sestavování agentů.
from databricks.sdk import WorkspaceClient
input_msgs = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
## 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)
Koncové body ChatAgent nebo ChatModel
Následující příklad použijte pro agenty vytvořené pomocí starší verze rozhraní ChatAgent nebo ChatModel, která jsou stále podporována, ale nedoporučuje se pro nové agenty.
from databricks.sdk import WorkspaceClient
messages = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
w = WorkspaceClient()
client = w.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)
Klient pro nasazení MLflow
Při práci s existujícími pracovními postupy a kanály MLflow použijte klienta nasazení MLflow. Tento přístup se přirozeně integruje se sledováním MLflow a správou experimentů.
Následující příklady ukazují, jak provést dotazování na agenta pomocí klienta nasazení MLflow. Pro nové aplikace doporučuje Databricks používat klienta Databricks OpenAI pro své vylepšené funkce a nativní integraci.
V závislosti na rozhraní API nasazeného agenta použijete formát ResponsesAgent nebo ChatAgent:
Koncové body ResponsesAgent
Následující příklad použijte pro agenty vytvořené pomocí rozhraní ResponsesAgent, což je doporučený postup pro sestavování agentů.
from mlflow.deployments import get_deploy_client
client = get_deploy_client()
input_example = {
"input": [{"role": "user", "content": "What does Databricks do?"}],
## Optional: Include any custom inputs
## "custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
}
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
## Call predict for non-streaming responses
response = client.predict(endpoint=endpoint, inputs=input_example)
## Call predict_stream for streaming responses
streaming_response = client.predict_stream(endpoint=endpoint, inputs=input_example)
Koncové body ChatAgent nebo ChatModel
Tuto možnost použijte pro agenty vytvořené pomocí starších rozhraní ChatAgent nebo ChatModel, která jsou stále podporována, ale nedoporučuje se pro nové agenty.
from mlflow.deployments import get_deploy_client
client = get_deploy_client()
input_example = {
"messages": [{"role": "user", "content": "What does Databricks do?"}],
## Optional: Include any custom inputs
## "custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
}
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
## Call predict for non-streaming responses
response = client.predict(endpoint=endpoint, inputs=input_example)
## Call predict_stream for streaming responses
streaming_response = client.predict_stream(endpoint=endpoint, inputs=input_example)
client.predict() a client.predict_stream() volají funkce agenta, které jste definovali při tvorbě agenta. Podívejte se na odpovědi na streamování.
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ěřování pomocí rozhraní REST API pomocí tokenu OAuth Databricks nebo tokenu PAT (Personal Access Token). Následující příklady používají token Databricks OAuth. Další možnosti a informace najdete v dokumentaci k ověřování Databricks .
Koncové body ResponsesAgent
Následující příklad použijte pro agenty vytvořené pomocí rozhraní ResponsesAgent, což je doporučený postup pro sestavování agentů. Volání rozhraní REST API je ekvivalentní:
- 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ší podrobnosti najdete na stránce obsluhy modelu vašeho koncového bodu a v dokumentaci k obsluhě 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_optionsje můžete přidat pomocí parametru extra_body :
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,
"extra_body": {
"custom_inputs": { "id": 5 },
"databricks_options": { "return_trace": true }
}
}'
Koncové body ChatAgent nebo ChatModel
Tuto možnost použijte pro agenty vytvořené pomocí starších rozhraní ChatAgent nebo ChatModel, která jsou stále podporována, ale nedoporučuje se pro nové agenty. 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ší podrobnosti najdete na stránce obsluhy modelu vašeho koncového bodu a v dokumentaci k obsluhě 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_optionsje můžete přidat pomocí parametru extra_body :
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,
"extra_body": {
"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 AI 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);