Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak wysyłać żądania do agentów wdrożonych w punkcie końcowym obsługującym model. Usługa Databricks udostępnia wiele metod zapytań odpowiadających różnym przypadkom użycia i potrzebom integracji.
Aby dowiedzieć się, jak wdrażać agentów, zobacz Wdrażanie agenta do aplikacji AI generujących.
Wybierz podejście do zapytania, które najlepiej pasuje do twojego przypadku użycia:
| Metoda | Najważniejsze korzyści |
|---|---|
| Klient OpenAI usługi Databricks (zalecane) | Natywna integracja, pełna obsługa funkcji, możliwości przesyłania strumieniowego |
| Klient wdrożeń MLflow | Istniejące wzorce MLflow, ustanowione potoki ML |
| API REST | Kompatybilna z OpenAI, niezależna od języka, współpracuje z istniejącymi narzędziami |
Funkcje sztucznej inteligencji: ai_query |
OpenAI jest kompatybilne i współpracuje z istniejącymi narzędziami |
Databricks zaleca klienta OpenAI Databricks dla nowych aplikacji. Wybierz interfejs API REST podczas integracji z platformami, które oczekują punktów końcowych zgodnych z interfejsem OpenAI.
Klient OpenAI Databricks (zalecany)
Databricks zaleca użycie klienta OpenAI Databricks do wykonywania zapytań względem wdrożonego agenta. W zależności od interfejsu API wdrożonego agenta, użyjesz albo klienta odpowiedzi, albo klienta odpowiedzialnego za uzupełnianie czatu.
Punkty końcowe ResponsesAgent
Użyj poniższego przykładu dla agentów utworzonych za pomocą interfejsu ResponsesAgent, który jest zalecanym podejściem do tworzenia agentów.
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)
Jeśli chcesz przekazać custom_inputs lub databricks_options, możesz je dodać za 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)
Punkty końcowe ChatAgent lub ChatModel
Skorzystaj z poniższego przykładu dla agentów utworzonych przy użyciu starszych interfejsów ChatAgent lub ChatModel, które są nadal obsługiwane, ale nie są zalecane dla nowych agentów.
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)
Jeśli chcesz przekazać custom_inputs lub databricks_options, możesz je dodać za 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 wdrożeń MLflow
Użyj klienta wdrożeń MLflow podczas pracy w istniejących przepływach pracy i potokach MLflow. Takie podejście integruje się naturalnie z funkcją śledzenia i zarządzania eksperymentami MLflow.
W poniższych przykładach pokazano, jak wykonać zapytanie o agenta przy użyciu klienta wdrażania MLflow. W przypadku nowych aplikacji usługa Databricks zaleca korzystanie z klienta OpenAI usługi Databricks w celu uzyskania rozszerzonych funkcji i integracji natywnej.
W zależności od interfejsu API wdrożonego agenta użyjesz formatu ResponsesAgent lub ChatAgent:
Punkty końcowe ResponsesAgent
Użyj poniższego przykładu dla agentów utworzonych za pomocą interfejsu ResponsesAgent, który jest zalecanym podejściem do tworzenia agentów.
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)
Punkty końcowe ChatAgent lub ChatModel
Ta opcja jest używana w przypadku agentów utworzonych przy użyciu starszych interfejsów ChatAgent lub ChatModel, które są nadal obsługiwane, ale nie są zalecane dla nowych agentów.
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() i client.predict_stream() wywołują funkcje agenta, które zdefiniowałeś podczas tworzenia agenta. Przejrzyj Odpowiedzi przesyłania strumieniowego.
interfejs API REST
Interfejs API REST usługi Databricks udostępnia punkty końcowe dla modeli zgodnych z interfejsem OpenAI. Dzięki temu można używać agentów usługi Databricks do obsługi aplikacji, które wymagają interfejsów OpenAI.
To podejście jest idealne dla:
- Aplikacje niezależne od języka korzystające z żądań HTTP
- Integracja z platformami innych firm, które oczekują interfejsów API zgodnych z technologią OpenAI
- Migrowanie z usługi OpenAI do usługi Databricks z minimalnymi zmianami kodu
Uwierzytelnianie za pomocą interfejsu API REST przy użyciu tokenu OAuth usługi Databricks lub osobistego tokenu dostępu (PAT). W poniższych przykładach użyto tokenu OAuth usługi Databricks, zapoznaj się z dokumentacją uwierzytelniania usługi Databricks , aby uzyskać więcej opcji i informacji.
Punkty końcowe ResponsesAgent
Użyj poniższego przykładu dla agentów utworzonych za pomocą interfejsu ResponsesAgent, który jest zalecanym podejściem do tworzenia agentów. Wywołanie interfejsu API REST jest równoważne:
- Korzystanie z klienta OpenAI Databricks z
responses.create. - Wysyłanie żądania POST do adresu URL określonego punktu końcowego (np.
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations). Więcej szczegółów można znaleźć na stronie obsługi modelu punktu końcowego i dokumentacji obsługi 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
}'
Jeśli chcesz przekazać custom_inputs lub databricks_options, możesz je dodać za 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 }
}
}'
Punkty końcowe ChatAgent lub ChatModel
Ta opcja jest używana w przypadku agentów utworzonych przy użyciu starszych interfejsów ChatAgent lub ChatModel, które są nadal obsługiwane, ale nie są zalecane dla nowych agentów. Jest to odpowiednik:
- Korzystanie z klienta OpenAI Databricks z
chat.completions.create. - Wysyłanie żądania POST do adresu URL określonego punktu końcowego (np.
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations). Więcej szczegółów można znaleźć na stronie obsługi modelu punktu końcowego i dokumentacji obsługi 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
}'
Jeśli chcesz przekazać custom_inputs lub databricks_options, możesz je dodać za 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 }
}
}'
Funkcje sztucznej inteligencji: ai_query
Możesz użyć ai_query polecenia , aby wykonać zapytanie dotyczące wdrożonego agenta sztucznej inteligencji przy użyciu języka SQL. Zobacz ai_query funkcję dla składni SQL i definicji parametrów.
SELECT ai_query(
"<model name>", question
) FROM (VALUES ('what is MLflow?'), ('how does MLflow work?')) AS t(question);