Sdílet prostřednictvím


Vytvoření agenta AI

Důležité

Tato funkce je ve verzi Public Preview.

V tomto článku se dozvíte, jak vytvořit agenta AI, který volá nástroje pomocí architektury agenta Mosaic AI.

Zjistěte, jak poskytnout agentovi nástroje a začít s nimi chatovat, abyste mohli agenta otestovat a vytvořit prototyp. Jakmile dokončíte vytváření prototypů agenta, vyexportujte kód Pythonu, který definuje agenta pro iteraci a nasazení agenta AI.

Požadavky

  • Seznamte se s koncepty agentů a nástrojů umělé inteligence, jak je popsáno v tématu Co jsou složené systémy AI a agenti AI?
  • Databricks při vývoji agentů doporučuje nainstalovat nejnovější verzi klienta Pythonu MLflow.

Vytvoření nástrojů agenta AI

Prvním krokem je vytvoření nástroje, který vašemu agentovi poskytne. Agenti používají nástroje k provádění akcí kromě generování jazyka, například k načtení strukturovaných nebo nestrukturovaných dat, spuštění kódu nebo komunikaci se vzdálenými službami (např. odeslání e-mailu nebo zprávy Slack).

Další informace o vytváření nástrojů agenta najdete v tématu Vytvoření nástrojů agenta AI.

Pro tuto příručku vytvořte funkci Unity Catalog, která spouští kód Pythonu. Agent může tento nástroj použít ke spuštění Pythonu poskytnutého uživatelem nebo napsaného samotným agentem.

V buňce poznámkového bloku spusťte následující kód. Pomocí magie poznámkového bloku %sql vytvoří v Katalogu Unity funkci nazvanou python_exec.

%sql
CREATE OR REPLACE FUNCTION
main.default.python_exec (
code STRING COMMENT 'Python code to execute. Remember to print the final result to stdout.'
)
RETURNS STRING
LANGUAGE PYTHON
DETERMINISTIC
COMMENT 'Executes Python code in the sandboxed environment and returns its stdout. The runtime is stateless and you can not read output of the previous tool executions. i.e. No such variables "rows", "observation" defined. Calling another tool inside a Python code is NOT allowed. Use standard python libraries only.'
AS $$
import sys
from io import StringIO
sys_stdout = sys.stdout
redirected_output = StringIO()
sys.stdout = redirected_output
exec(code)
sys.stdout = sys_stdout
return redirected_output.getvalue()
$$

Prototyp agentů pro volání nástrojů v AI Playground

Po vytvoření funkce Katalogu Unity použijte AI Playground k poskytnutí nástroje LLM a otestování agenta. AI Playground poskytuje sandbox pro prototyp agentů pro volání nástrojů.

Jakmile budete s agentem AI spokojení, můžete ho exportovat, abyste ho mohli dále vyvíjet v Pythonu, nebo ho nasadit jako koncový bod služby model, jak je.

Poznámka:

Katalog Unity a bezserverové výpočetní prostředky, Architektura agenta Systému pro architekturu AI Pro platformu SA AI a v aktuálním pracovním prostoru musí být k dispozici základní modely s platbou za token nebo externí modely , aby bylo možné vytvářet prototypy agentů v AI Playgroundu.

Vytvoření prototypu koncového bodu pro volání nástrojů

  1. V dětském prostředí vyberte model s popiskem Nástroje s povoleným popiskem.

    Výběr LLM volajícího nástrojem

  2. V rozevíracím seznamu vyberte Nástroje a zadejte názvy funkcí katalogu Unity:

    Výběr nástroje

  3. Chat s cílem otestovat aktuální kombinaci LLM, nástrojů a systémových výzev a vyzkoušet varianty.

    Prototyp LLM

Export a nasazení agentů AI Playground

Po přidání nástrojů a testování agenta exportujte agenta Playground do poznámkových bloků Pythonu:

  1. Kliknutím na Exportovat vygenerujete poznámkové bloky Pythonu, které vám pomůžou s vývojem a nasazením agenta AI.

    Po exportu kódu agenta se zobrazí tři soubory uložené do pracovního prostoru:

    • agent Poznámkový blok: Obsahuje kód Pythonu definující agenta pomocí jazyka LangChain.
    • driver Poznámkový blok: Obsahuje kód Pythonu pro protokolování, trasování, registraci a nasazení agenta AI pomocí architektury agenta Mosaic AI.
    • config.yml: Obsahuje informace o konfiguraci vašeho agenta, včetně definic nástrojů.
  2. agent Otevřete poznámkový blok, abyste viděli kód LangChain definující agenta, použijte tento poznámkový blok k testování a iteraci agenta prostřednictvím kódu programu, jako je definování dalších nástrojů nebo úprava parametrů agenta.

    Poznámka:

    Exportovaný kód může mít jiné chování než relace dětského hřiště AI. Databricks doporučuje spustit exportované poznámkové bloky, abyste iterovali a ladili dál, vyhodnocovali kvalitu agenta a nasadili agenta pro sdílení s ostatními.

  3. Jakmile budete s výstupy agenta spokojení, můžete poznámkový blok spustit driver a protokolovat a nasadit agenta do koncového bodu obsluhy modelu.

Definování agenta v kódu

Kromě generování kódu agenta z AI Playground můžete také definovat agenta v kódu sami pomocí architektur, jako je LangChain nebo Kód Pythonu. Aby bylo možné nasadit agenta pomocí agenta Framework, musí jeho vstup odpovídat jednomu z podporovaných vstupních a výstupních formátů.

Konfigurace agenta pomocí parametrů

V rozhraní Agent Framework můžete použít parametry k řízení způsobu spouštění agentů. Díky tomu můžete rychle iterovat různými charakteristikami vašeho agenta beze změny kódu. Parametry jsou páry klíč-hodnota, které definujete ve slovníku Pythonu .yaml nebo souboru.

Kód nakonfigurujete tak ModelConfig, že vytvoříte sadu parametrů klíč-hodnota. ModelConfig je slovník Pythonu .yaml nebo soubor. Můžete například použít slovník během vývoje a pak ho převést na .yaml soubor pro produkční nasazení a CI/CD. Podrobnosti o ModelConfignástroji MLflow najdete v dokumentaci k MLflow.

ModelConfig Příklad je uvedený níže.

llm_parameters:
  max_tokens: 500
  temperature: 0.01
model_serving_endpoint: databricks-dbrx-instruct
vector_search_index: ml.docs.databricks_docs_index
prompt_template: 'You are a hello world bot. Respond with a reply to the user''s
  question that indicates your prompt template came from a YAML file. Your response
  must use the word "YAML" somewhere. User''s question: {question}'
prompt_template_input_vars:
- question

Pokud chcete volat konfiguraci z kódu, použijte jednu z následujících možností:

# Example for loading from a .yml file
config_file = "configs/hello_world_config.yml"
model_config = mlflow.models.ModelConfig(development_config=config_file)

# Example of using a dictionary
config_dict = {
    "prompt_template": "You are a hello world bot. Respond with a reply to the user's question that is fun and interesting to the user. User's question: {question}",
    "prompt_template_input_vars": ["question"],
    "model_serving_endpoint": "databricks-dbrx-instruct",
    "llm_parameters": {"temperature": 0.01, "max_tokens": 500},
}

model_config = mlflow.models.ModelConfig(development_config=config_dict)

# Use model_config.get() to retrieve a parameter value
value = model_config.get('sample_param')

Nastavení schématu retrieveru

Agenti umělé inteligence často používají retrievery, typ nástroje agenta, který vyhledá a vrací relevantní dokumenty pomocí indexu vektorového vyhledávání. Další informace o nástrojích pro vyhledávání naleznete v části Nástroje AI agenta pro nestrukturované vyhledávání.

Pokud chcete zajistit správné trasování načítačů, zavolejte mlflow.models.set_retriever_schema při definování agenta v kódu. Slouží set_retriever_schema k mapování názvů sloupců ve vrácené tabulce na očekávaná pole MLflow, například primary_key, text_columna doc_uri.

# Define the retriever's schema by providing your column names
# These strings should be read from a config dictionary
mlflow.models.set_retriever_schema(
    name="vector_search",
    primary_key="chunk_id",
    text_column="text_column",
    doc_uri="doc_uri"
    # other_columns=["column1", "column2"],
)

Poznámka:

Sloupec doc_uri je zvlášť důležitý při vyhodnocování výkonu retrieveru. doc_uri je hlavním identifikátorem dokumentů vrácených retrieverem, což vám umožní porovnat je se sadami vyhodnocení základní pravdy. Viz testovací sady

Do schématu vašeho retrieveru můžete také zadat další sloupce zadáním seznamu názvů sloupců s polem other_columns .

Pokud máte více načítačů, můžete definovat více schémat pomocí jedinečných názvů pro každé schéma retrieveru.

Podporované vstupní a výstupní formáty

Agent Framework používá podpisy modelu MLflow k definování vstupních a výstupních schémat pro agenty. Funkce architektury agenta Systému pro práci s platformou AI Pro práci s funkcemi, jako je aplikace Review a AI Playground, vyžadují minimální sadu vstupních a výstupních polí. Další informace najdete v tématu Definování vstupního a výstupního schématu agenta.

Ukázkové poznámkové bloky

Tyto poznámkové bloky vytvoří jednoduchý řetězec "Hello, world", který ukazuje, jak vytvořit řetězovou aplikaci v Databricks. První příklad vytvoří jednoduchý řetězec. Druhý ukázkový poznámkový blok ukazuje, jak použít parametry k minimalizaci změn kódu během vývoje.

Jednoduchý řetězový poznámkový blok

Získat poznámkový blok

Poznámkový blok jednoduchého ovladače řetězu

Získat poznámkový blok

Parametrizovaný řetězový poznámkový blok

Získat poznámkový blok

Poznámkový blok ovladače parametrizovaného řetězu

Získat poznámkový blok

Další kroky