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 programudatabricks.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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla