Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Pro nové případy použití doporučuje Databricks nasazovat agenty v Databricks Apps, aby bylo možné plně řídit kód agenta, konfiguraci serveru a pracovní postup nasazení. Viz Vytvoření agenta AI a jeho nasazení v Databricks Apps. Pokud chcete migrovat existujícího agenta, přečtěte si téma Migrace agenta z modelové obsluhy do Databricks Apps.
Protokolujte agenty AI pomocí Custom Agents. Zaznamenávání činnosti agenta je základem vývojového procesu. Protokolování zaznamenává "bod v čase" kódu a konfigurace agenta, abyste mohli vyhodnotit jeho kvalitu.
Požadavky
Vytvořte agenta umělé inteligence, než ho zaznamenáte.
Databricks doporučuje nainstalovat nejnovější verzi databricks-sdk.
% pip install databricks-sdk
protokolování založené na kódu
Databricks doporučuje při protokolování agentů používat funkci MLflow Models from Code.
V tomto přístupu se kód agenta zachytí jako soubor Pythonu a prostředí Pythonu se zachytí jako seznam balíčků. Po nasazení agenta se prostředí Pythonu obnoví a kód agenta se spustí, aby se agent načetl do paměti, aby se mohl vyvolat při zavolání koncového bodu.
Tento přístup můžete spojit s použitím rozhraní API pro ověřování před nasazením, jako je mlflow.models.predict(), abyste zajistili, že agent při nasazování pro obsluhu spolehlivě běží.
Pokud chcete zobrazit příklad protokolování založeného na kódu, podívejte se na ukázkové poznámkové bloky pro tvorbu v rámci ResponsesAgent.
Určení podpisu modelu během protokolování
Note
Databricks doporučuje vytvořit agenta pomocí rozhraní ResponsesAgent. Pokud používáte ResponsesAgent, můžete tuto část přeskočit; MLflow automaticky odvodí platný podpis pro vašeho agenta.
Pokud nepoužíváte rozhraní ResponsesAgent, musíte použít jednu z následujících metod k určení podpisu modelu agenta MLflow v době protokolování:
- Ruční definování podpisu
- Pomocí funkcí odvozování podpisů modelu MLflow můžete automaticky vygenerovat podpis agenta na základě zadaného vstupního příkladu. Tento přístup je pohodlnější než ruční definování podpisu.
Podpis modelu MLflow ověřuje vstupy a výstupy, aby se zajistilo, že agent správně komunikuje s podřízenými nástroji, jako je AI Playground a revizní aplikace. Také vás provede dalšími aplikacemi, jak efektivně používat agenta.
Příklady LangChain a PyFunc níže používají odvozování podpisů modelu.
Pokud byste raději v době protokolování explicitně definovali podpis modelu, přečtěte si dokumentaci MLflow – jak protokolovat modely pomocí podpisů.
Protokolování založené na kódu pomocí jazyka LangChain
Následující pokyny a ukázka kódu ukazují, jak zaznamenat agenta pomocí LangChain.
Vytvořte poznámkový blok nebo soubor Pythonu pomocí kódu. V tomto příkladu má poznámkový blok nebo soubor název
agent.py. Poznámkový blok nebo soubor musí obsahovat agenta LangChain, který se zde označuje jakolc_agent.Do poznámkového bloku nebo souboru přidejte mlflow.models.set_model(lc_agent).
Vytvořte nový poznámkový blok, který bude sloužit jako poznámkový blok ovladače (označovaný
driver.pyv tomto příkladu).V poznámkovém bloku ovladače pomocí následujícího kódu spusťte
agent.pya zapište výsledky do modelu MLflow:mlflow.langchain.log_model(lc_model="/path/to/agent.py", resources=list_of_databricks_resources)Parametr
resourcesdeklaruje prostředky spravované službou Databricks potřebné k obsluhě agenta, jako je index vyhledávání AI nebo obsluha koncového bodu, který obsluhuje základní model. Další informace naleznete v Implementujte automatické předávání autentizace.Nasaďte model. Viz Nasazení agenta pro generování aplikací umělé inteligence (obsluha modelů).
Po načtení obslužného prostředí se spustí
agent.py.Když přijde žádost o obsluhu,
lc_agent.invoke(...)se zavolá.
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)
protokolování založené na kódu pomocí PyFunc
Následující pokyny a ukázka kódu ukazují, jak protokolovat agenta pomocí PyFunc.
Vytvořte poznámkový blok nebo soubor Pythonu pomocí kódu. V tomto příkladu má poznámkový blok nebo soubor název
agent.py. Poznámkový blok nebo soubor musí obsahovat třídu PyFunc s názvemPyFuncClass.Zahrnout
mlflow.models.set_model(PyFuncClass)do poznámkového bloku nebo souboruVytvořte nový poznámkový blok, který bude sloužit jako poznámkový blok ovladače (označovaný
driver.pyv tomto příkladu).V poznámkovém bloku ovladače spusťte následující kód
agent.pya použijtelog_model()k protokolování výsledků do modelu MLflow:mlflow.pyfunc.log_model(python_model="/path/to/agent.py", resources=list_of_databricks_resources)Parametr
resourcesdeklaruje prostředky spravované službou Databricks potřebné k obsluhě agenta, jako je index vyhledávání AI nebo obsluha koncového bodu, který obsluhuje základní model. Další informace naleznete v Implementujte automatické předávání autentizace.Nasaďte model. Viz Nasazení agenta pro generování aplikací umělé inteligence (obsluha modelů).
Po načtení obslužného prostředí se spustí
agent.py.Když přijde žádost o obsluhu,
PyFuncClass.predict(...)se zavolá.
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)
Ověřování prostředků Databricks
Agenti umělé inteligence se často potřebují ověřit v jiných prostředcích, aby mohli provádět úlohy. Nasazený agent může například potřebovat přístup k indexu služby AI Search, aby mohl dotazovat nestrukturovaná data, nebo získat přístup k registru výzvy k načtení dynamických výzev.
Předávání automatického ověřování a ověřování jménem uživatele vyžaduje konfiguraci během protokolování agenta.
registrace agenta do katalogu Unity
Před nasazením agenta musíte agenta zaregistrovat do katalogu Unity. Registrace agenta zabalí ho jako model v katalogu Unity. V důsledku toho můžete pro autorizaci prostředků v agentu použít oprávnění katalogu Unity.
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)