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.
Rejestrowanie agentów sztucznej inteligencji przy użyciu platformy Mosaic AI Agent Framework. Rejestrowanie agenta jest podstawą procesu programowania. Rejestrowanie przechwytuje "punkt w czasie" kodu i konfiguracji agenta, dzięki czemu można ocenić jakość konfiguracji.
Requirements
Przed zalogowaniem utwórz agenta sztucznej inteligencji.
Databricks zaleca zainstalowanie najnowszej wersji databricks-sdk.
% pip install databricks-sdk
rejestrowanie oparte na kodzie
Usługa Databricks zaleca używanie modeli MLflow z funkcji kodu podczas rejestrowania agentów.
W tym podejściu kod agenta jest przechwytywany jako plik w języku Python, a środowisko języka Python jest przechwytywane jako lista pakietów. Po wdrożeniu agenta środowisko języka Python zostanie przywrócone, a kod agenta zostanie uruchomiony w celu załadowania agenta do pamięci, aby można go było wywołać po wywołaniu punktu końcowego.
Takie podejście można połączyć z użyciem interfejsów API do weryfikacji przed wdrożeniem, takich jak mlflow.models.predict(), aby upewnić się, że agent działa niezawodnie, gdy jest wdrażany do obsługi.
Aby zobaczyć przykład rejestrowania opartego na kodzie, zobacz ResponsesAgent authoring example notebooks (Przykładowe notesy tworzenia aplikacji ResponsesAgent).
Określanie sygnatury modelu podczas zapisywania
Note
Usługa Databricks zaleca tworzenie agenta przy użyciu interfejsu ResponsesAgent. Jeśli używasz elementu ResponsesAgent, możesz pominąć tę sekcję; Narzędzie MLflow automatycznie wywnioskuje prawidłowy podpis agenta.
Jeśli nie używasz interfejsu ResponsesAgent, musisz skorzystać z jednej z poniższych metod, aby określić Sygnaturę Modelu MLflow swojego agenta w momencie rejestrowania.
- Ręczne definiowanie podpisu
- Użyj funkcji wnioskowania sygnatury modelu MLflow, aby automatycznie wygenerować podpis agenta na podstawie podanego przykładu danych wejściowych. Takie podejście jest wygodniejsze niż ręczne definiowanie podpisu.
Podpis modelu MLflow weryfikuje dane wejściowe i wyjściowe, aby upewnić się, że agent prawidłowo współdziała z narzędziami podrzędnymi, takimi jak AI Playground i aplikacja do przeglądu. Wskazuje również innym aplikacjom, jak efektywnie korzystać z agenta.
Poniższe przykłady LangChain i PyFunc wykorzystują inferencję sygnatury modelu.
Jeśli wolisz jawnie zdefiniować podpis modelu w czasie rejestrowania, zobacz dokumentacji platformy MLflow — jak rejestrować modele z podpisami.
Rejestrowanie oparte na kodzie za pomocą usługi LangChain
Poniższe instrukcje i przykładowy kod pokazują, jak zarejestrować agenta za pomocą pakietu LangChain.
Utwórz notes lub plik w języku Python przy użyciu kodu. W tym przykładzie notes lub plik ma nazwę
agent.py. Notatnik lub plik musi zawierać agenta LangChain, określanego tutaj jakolc_agent.Uwzględnij mlflow.models.set_model (lc_agent) w notesie lub pliku.
Utwórz nowy notes, który będzie służył jako notes sterownika (nazywany
driver.pyw tym przykładzie).W notesie sterownika użyj następującego kodu, aby uruchomić
agent.pyi zarejestrować wyniki w modelu MLflow:mlflow.langchain.log_model(lc_model="/path/to/agent.py", resources=list_of_databricks_resources)Parametr
resourcesdeklaruje zasoby zarządzane przez usługę Databricks potrzebne do obsługi agenta, takie jak indeks wyszukiwania wektorowego lub obsługujący punkt końcowy obsługujący model podstawowy. Aby uzyskać więcej informacji, zobacz Zaimplementuj automatyczne przekazywanie uwierzytelniania.Wdróż model. Zobacz Wdrażanie agenta na potrzeby generowania aplikacji sztucznej inteligencji.
Po załadowaniu
agent.pyśrodowiska obsługującego zostanie uruchomione polecenie .Gdy pojawia się żądanie usługi,
lc_agent.invoke(...)jest wywoływane.
import mlflow
code_path = "/Workspace/Users/first.last/agent.py"
config_path = "/Workspace/Users/first.last/config.yml"
# Input example used by MLflow to infer Model Signature
input_example = {
"messages": [
{
"role": "user",
"content": "What is Retrieval-augmented Generation?",
}
]
}
# example using langchain
with mlflow.start_run():
logged_agent_info = mlflow.langchain.log_model(
lc_model=code_path,
model_config=config_path, # If you specify this parameter, this configuration is used by agent code. The development_config is overwritten.
artifact_path="agent", # This string is used as the path inside the MLflow model where artifacts are stored
input_example=input_example, # Must be a valid input to the agent
example_no_conversion=True, # Required
)
print(f"MLflow Run: {logged_agent_info.run_id}")
print(f"Model URI: {logged_agent_info.model_uri}")
# To verify that the model has been logged correctly, load the agent and call `invoke`:
model = mlflow.langchain.load_model(logged_agent_info.model_uri)
model.invoke(example)
rejestrowanie oparte na kodzie za pomocą funkcji PyFunc
Poniższe instrukcje i przykładowy kod pokazują, jak zarejestrować agenta za pomocą narzędzia PyFunc.
Utwórz notes lub plik w języku Python przy użyciu kodu. W tym przykładzie notes lub plik ma nazwę
agent.py. Notatnik lub plik musi zawierać klasę PyFunc o nazwiePyFuncClass.Dołącz
mlflow.models.set_model(PyFuncClass)do notesu lub pliku.Utwórz nowy notes, który będzie służył jako notes sterownika (nazywany
driver.pyw tym przykładzie).W notesie sterownika użyj następującego kodu, aby uruchomić
agent.pyi użyćlog_model(), aby zarejestrować wyniki w modelu MLflow.mlflow.pyfunc.log_model(python_model="/path/to/agent.py", resources=list_of_databricks_resources)Parametr
resourcesdeklaruje zasoby zarządzane przez usługę Databricks potrzebne do obsługi agenta, takie jak indeks wyszukiwania wektorowego lub obsługujący punkt końcowy obsługujący model podstawowy. Aby uzyskać więcej informacji, zobacz Zaimplementuj automatyczne przekazywanie uwierzytelniania.Wdróż model. Zobacz Wdrażanie agenta na potrzeby generowania aplikacji sztucznej inteligencji.
Po załadowaniu
agent.pyśrodowiska obsługującego zostanie uruchomione polecenie .Gdy pojawia się żądanie usługi,
PyFuncClass.predict(...)jest wywoływane.
import mlflow
from mlflow.models.resources import (
DatabricksServingEndpoint,
DatabricksVectorSearchIndex,
)
code_path = "/Workspace/Users/first.last/agent.py"
config_path = "/Workspace/Users/first.last/config.yml"
# Input example used by MLflow to infer Model Signature
input_example = {
"messages": [
{
"role": "user",
"content": "What is Retrieval-augmented Generation?",
}
]
}
with mlflow.start_run():
logged_agent_info = mlflow.pyfunc.log_model(
python_model=agent_notebook_path,
artifact_path="agent",
input_example=input_example,
resources=resources_path,
example_no_conversion=True,
resources=[
DatabricksServingEndpoint(endpoint_name="databricks-meta-llama-3-3-70b-instruct"),
DatabricksVectorSearchIndex(index_name="prod.agents.databricks_docs_index"),
]
)
print(f"MLflow Run: {logged_agent_info.run_id}")
print(f"Model URI: {logged_agent_info.model_uri}")
# To verify that the model has been logged correctly, load the agent and call `invoke`:
model = mlflow.pyfunc.load_model(logged_agent_info.model_uri)
model.invoke(example)
Uwierzytelnianie zasobów usługi Databricks
Agenci sztucznej inteligencji często muszą uwierzytelniać się w innych zasobach, aby wykonywać zadania. Na przykład wdrożony agent może wymagać dostępu do indeksu wyszukiwania Vector Search w celu wykonywania zapytań dotyczących danych bez struktury lub uzyskiwania dostępu do Rejestru Monitów, aby załadować dynamiczne monity.
Automatyczne przekazywanie uwierzytelniania i uwierzytelnianie w imieniu użytkownika wymagają konfiguracji w trakcie logowania agenta.
Zarejestrować agenta w Unity Catalog
Przed wdrożeniem agenta należy go zarejestrować w Unity Catalog. Rejestrowanie agenta tworzy z niego model w katalogu Unity. Dzięki temu można użyć uprawnień katalogu Unity do autoryzacji zasobów w agencie.
import mlflow
mlflow.set_registry_uri("databricks-uc")
catalog_name = "test_catalog"
schema_name = "schema"
model_name = "agent_name"
model_name = catalog_name + "." + schema_name + "." + model_name
uc_model_info = mlflow.register_model(model_uri=logged_agent_info.model_uri, name=model_name)
Zobacz: mlflow.register_model().
Dalsze kroki
- Dodaj ślady agentowi AI.
- Wdrażanie agenta sztucznej inteligencji.