Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lär dig hur du skickar begäranden till agenter som distribuerats till en modellserverslutpunkt. Databricks innehåller flera frågemetoder som passar olika användningsfall och integrationsbehov.
Information om hur du distribuerar agenter finns i Distribuera en agent för generativa AI-program.
Välj den frågemetod som passar bäst för ditt användningsfall:
| Metod | Viktiga fördelar |
|---|---|
| Databricks OpenAI-klient (rekommenderas) | Intern integrering, fullständigt funktionsstöd, strömningsfunktioner |
| MLflow-distributionsklient | Befintliga MLflow-mönster, etablerade ML-pipelines |
| REST-API | OpenAI-kompatibel, språkagnostisk, fungerar med befintliga verktyg |
AI Functions: ai_query |
OpenAI-kompatibel, fungerar med befintliga verktyg |
Databricks rekommenderar Databricks OpenAI-klienten för nya program. Välj REST API när du integrerar med plattformar som förväntar sig OpenAI-kompatibla slutpunkter.
Databricks OpenAI-klient (rekommenderas)
Databricks rekommenderar att du använder Databricks OpenAI-klienten för att fråga en distribuerad agent. Beroende på API:et för din distribuerade agent använder du antingen svars- eller chattklienten:
ResponsesAgent-slutpunkter
Använd följande exempel för agenter som skapats med gränssnittet ResponsesAgent, vilket är den rekommenderade metoden för byggnadsagenter.
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)
Om du vill skicka in custom_inputs eller databricks_optionskan du lägga till dem med extra_body param:
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- eller ChatModel-slutpunkter
Använd följande exempel för agenter som skapats med äldre ChatAgent- eller ChatModel-gränssnitt, som fortfarande stöds men inte rekommenderas för nya agenter.
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)
Om du vill skicka in custom_inputs eller databricks_optionskan du lägga till dem med extra_body param:
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)
MLflow-distributionsklient
Använd MLflow-distributionsklienten när du arbetar i befintliga MLflow-arbetsflöden och pipelines. Den här metoden integreras naturligt med MLflow-spårning och experimenthantering.
I följande exempel visas hur du frågar en agent med hjälp av MLflow-distributionsklienten. För nya program rekommenderar Databricks att du använder Databricks OpenAI-klienten för dess förbättrade funktioner och interna integrering.
Beroende på API:et för din distribuerade agent använder du antingen Formatet ResponsesAgent eller ChatAgent:
ResponsesAgent-slutpunkter
Använd följande exempel för agenter som skapats med gränssnittet ResponsesAgent, vilket är den rekommenderade metoden för byggnadsagenter.
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)
ChatAgent- eller ChatModel-slutpunkter
Använd detta för agenter som skapats med äldre ChatAgent- eller ChatModel-gränssnitt, som fortfarande stöds men inte rekommenderas för nya agenter.
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() och client.predict_stream() anropa agentfunktionerna som du definierade när du redigerade agenten. Se Strömningssvar.
REST API
Databricks REST API tillhandahåller slutpunkter för modeller som är OpenAI-kompatibla. På så sätt kan du använda Databricks-agenter för att hantera program som kräver OpenAI-gränssnitt.
Den här metoden är idealisk för:
- Språkagnostiska program som använder HTTP-begäranden
- Integrera med plattformar från tredje part som förväntar sig OpenAI-kompatibla API:er
- Migrera från OpenAI till Databricks med minimala kodändringar
Autentisera med REST-API:et med en Databricks OAuth-token eller personlig åtkomsttoken (PAT). Exemplen nedan använder en Databricks OAuth-token. Mer information finns i dokumentationen för Databricks-autentisering .
ResponsesAgent-slutpunkter
Använd följande exempel för agenter som skapats med gränssnittet ResponsesAgent, vilket är den rekommenderade metoden för byggnadsagenter. REST API-anropet motsvarar:
- Använda Databricks OpenAI-klienten med
responses.create. - Skicka en POST-begäran till den specifika slutpunktens URL (till exempel ).
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocationsMer information finns på slutpunktens modellserversida och dokumentationen om modellservering.
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
}'
Om du vill skicka in custom_inputs eller databricks_optionskan du lägga till dem med extra_body param:
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 }
}
}'
ChatAgent- eller ChatModel-slutpunkter
Använd detta för agenter som skapats med äldre ChatAgent- eller ChatModel-gränssnitt, som fortfarande stöds men inte rekommenderas för nya agenter. Detta motsvarar:
- Använda Databricks OpenAI-klienten med
chat.completions.create. - Skicka en POST-begäran till den specifika slutpunktens URL (till exempel ).
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocationsMer information finns på slutpunktens modellserversida och dokumentationen om modellservering.
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
}'
Om du vill skicka in custom_inputs eller databricks_optionskan du lägga till dem med extra_body param:
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 }
}
}'
AI-funktioner: ai_query
Du kan använda ai_query för att fråga en distribuerad AI-agent med hjälp av SQL. Se ai_query funktionen för SQL-syntax och parameterdefinitioner.
SELECT ai_query(
"<model name>", question
) FROM (VALUES ('what is MLflow?'), ('how does MLflow work?')) AS t(question);