Udostępnij za pośrednictwem


Wdrażanie agenta do generowania aplikacji sztucznej inteligencji

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule pokazano, jak wdrożyć agenta bezpośrednio przy użyciu usługi Model Serving lub przy użyciu interfejsu deploy() API z usługi databricks.agents.

Wymagania

  • Przed wdrożeniem agenta należy zarejestrować go w wykazie aparatu Unity. Zobacz Tworzenie i rejestrowanie agentów sztucznej inteligencji. Po zarejestrowaniu agenta w wykazie aparatu Unity jest on spakowany w postaci modelu.
  • Narzędzie MLflow w wersji 2.13.1 lub nowszej w celu wdrożenia agentów przy użyciu interfejsu deploy() API z programu databricks.agents.

Wdrażanie agenta przy użyciu obsługi modelu

Ważne

W przypadku wdrażania agenta przy użyciu tej metody nie można używać aplikacji Do przeglądu w celu zbierania i przesyłania opinii na temat agenta.

W przypadku obciążeń produkcyjnych możesz wdrożyć agenta, aby udostępnić go jako interfejs API REST, który można zintegrować z aplikacją dostępną dla użytkownika. Interfejs API REST obsługujący model umożliwia utworzenie modelu obsługującego punkt końcowy procesora CPU w celu wdrożenia agenta gotowego do produkcji.

Wdrażanie agenta przy użyciu deploy()

Możesz użyć interfejsu deploy() API, aby wdrożyć agentów na potrzeby tworzenia agentów lub wdrażania agentów gotowych do produkcji. Tylko agenci zarejestrowani w wykazie aparatu Unity mogą być wdrażani przy użyciu programu deploy().

Interfejs deploy() API wykonuje następujące czynności:

  • Tworzy model procesora CPU obsługujący punkty końcowe dla agenta, który można zintegrować z aplikacją dostępną dla użytkownika. Te punkty końcowe są tworzone przy użyciu obsługi modelu, dzięki czemu można wywołać je w celu uzyskania odpowiedzi od agenta i zebrania opinii z interfejsu użytkownika przeglądu aplikacji.
    • Poświadczenia uwierzytelniania są automatycznie przekazywane do wszystkich zasobów zarządzanych przez usługę Databricks wymaganych przez agenta.
    • Jeśli masz zależności zasobów, które nie są zarządzane przez usługę Databricks, na przykład przy użyciu aplikacji Pinecone, możesz przekazać zmienne środowiskowe z wpisami tajnymi do interfejsu deploy() API. Zobacz Konfigurowanie dostępu do zasobów z poziomu punktów końcowych obsługujących model.
  • Włącza przeglądanie aplikacji dla agenta. Aplikacja Przegląd umożliwia uczestnikom projektu rozmowę z agentem i przekazywanie opinii przy użyciu interfejsu użytkownika przeglądu aplikacji.
  • Rejestruje każde żądanie w interfejsie API Review App lub REST, takie jak żądania zapytań i odpowiedzi oraz dane śledzenia pośredniego, do tabeli wnioskowania z śledzenia MLflow.
  • Tworzy model opinii z tym samym wykazem i schematem co agent, który próbujesz wdrożyć. Ten model opinii to mechanizm, który umożliwia akceptowanie opinii z aplikacji Przegląd i rejestrowanie jej w tabeli wnioskowania. Ten model jest obsługiwany w tym samym modelu procesora CPU obsługującym punkt końcowy, co wdrożony agent. Ponieważ ten punkt końcowy obsługujący ma włączone tabele wnioskowania, można rejestrować opinie z aplikacji przeglądu do tabeli wnioskowania.

Uwaga

Ukończenie wdrożeń może potrwać do 15 minut. Nieprzetworzone ładunki JSON trwają od 10 do 30 minut, a sformatowane dzienniki są przetwarzane z nieprzetworzonych ładunków około każdej godziny.


from databricks.agents import deploy
from mlflow.utils import databricks_utils as du

deployment = deploy(model_fqn, uc_model_info.version)

# query_endpoint is the URL that can be used to make queries to the app
deployment.query_endpoint

# Copy deployment.rag_app_url to browser and start interacting with your RAG application.
deployment.rag_app_url

Tabele wnioskowania rozszerzonego agenta

Funkcja deploy() tworzy trzy tabele wnioskowania dla każdego wdrożenia w celu rejestrowania żądań i odpowiedzi do i z punktu końcowego obsługującego agenta.

Uwaga

Jeśli masz włączoną zaporę usługi Azure Storage, skontaktuj się z zespołem konta usługi Databricks, aby włączyć tabele wnioskowania dla punktów końcowych.

Table Przykładowa nazwa tabeli wykazu aparatu Unity Co znajduje się w każdej tabeli
Ładunek {catalog_name}.{schema_name}.{model_name}_payload Nieprzetworzone ładunki JSON
Dzienniki żądań ładunku {catalog_name}.{schema_name}.{model_name}_payload_request_logs Sformatowane żądania i odpowiedzi, ślady MLflow
Dzienniki oceny ładunku {catalog_name}.{schema_name}.{model_name}_payload_assessment_logs Sformatowane opinie, jak podano w aplikacji Przegląd, dla każdego żądania

Żądania tabel dzienników i dzienników oceny

Dwie dodatkowe tabele są generowane automatycznie z powyższych tabel wnioskowania ładunku: dzienniki żądań i dzienniki oceny. Użytkownicy mogą oczekiwać, że dane będą znajdować się w tych tabelach w ciągu godziny od interakcji z ich wdrożeniem.

Poniżej przedstawiono schemat tabeli dzienników żądań.

Nazwa kolumny Type opis
client_request_id String Identyfikator żądania klienta, zazwyczaj null.
databricks_request_id String Identyfikator żądania usługi Databricks.
date Data Data żądania.
timestamp_ms Długi Sygnatura czasowa w milisekundach.
timestamp Sygnatura czasowa Sygnatura czasowa żądania.
status_code Integer Kod stanu punktu końcowego.
execution_time_ms Długi Łączna liczba milisekund wykonania.
conversation_id String Identyfikator konwersacji wyodrębniony z dzienników żądań.
request String Ostatnie zapytanie użytkownika z konwersacji użytkownika. Jest to wyodrębnione z żądania RAG.
response String Ostatnia odpowiedź na użytkownika. Jest to wyodrębnione z żądania RAG.
request_raw String Reprezentacja ciągu żądania.
response_raw String Reprezentacja ciągu odpowiedzi.
trace String Reprezentacja ciągu śledzenia wyodrębnionego z databricks_options struktury odpowiedzi.
sampling_fraction Liczba rzeczywista Ułamek próbkowania.
request_metadata Map[String, String] Mapa metadanych związanych z modelem obsługującym punkt końcowy skojarzony z żądaniem. Ta mapa zawiera nazwę punktu końcowego, nazwę modelu i wersję modelu używaną dla punktu końcowego.
schema_version String Liczba całkowita dla wersji schematu.

Poniżej przedstawiono schemat dzienników oceny.

Nazwa kolumny Type opis
request_id String Identyfikator żądania usługi Databricks.
step_id String Pochodzi z oceny pobierania.
source Struktura Pole struktury zawierające informacje o tym, kto utworzył ocenę.
timestamp Sygnatura czasowa Sygnatura czasowa żądania.
text_assessment Struktura Pole struktury zawierające dane dotyczące wszelkich opinii na temat odpowiedzi agenta z aplikacji do przeglądu.
retrieval_assessment Struktura Pole struktury zawierające dane dotyczące wszelkich opinii na temat dokumentów pobranych na odpowiedź.

Pobieranie wdrożonych aplikacji

Poniżej przedstawiono sposób uzyskiwania wdrożonych agentów.

from databricks.agents import list_deployments, get_deployments

# Get the deployment for specific model_fqn and version
deployment = get_deployments(model_name=model_fqn, model_version=model_version.version)

deployments = list_deployments()
# Print all the current deployments
deployments

Dodatkowe zasoby