Tworzenie agenta sztucznej inteligencji
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W tym artykule pokazano, jak utworzyć agenta sztucznej inteligencji wywołującego narzędzia przy użyciu struktury agenta Mozaika AI.
Dowiedz się, jak nadać narzędziom agenta i rozpocząć rozmowę z nimi w celu przetestowania i utworzenia prototypu agenta. Po zakończeniu tworzenia prototypów agenta wyeksportuj kod języka Python, który definiuje agenta w celu iterowania i wdrażania agenta sztucznej inteligencji.
Wymagania
- Zapoznaj się z pojęciami agentów i narzędzi sztucznej inteligencji zgodnie z opisem w Co to są złożone systemy sztucznej inteligencji i agenci sztucznej inteligencji?
- Usługa Databricks zaleca zainstalowanie najnowszej wersji klienta języka Python MLflow podczas opracowywania agentów.
Tworzenie narzędzi agenta sztucznej inteligencji
Pierwszym krokiem jest utworzenie narzędzia do nadania agentowi. Agenci używają narzędzi do wykonywania akcji poza generowaniem języka, na przykład w celu pobierania danych ze strukturą lub bez struktury, wykonywania kodu lub komunikacji z usługami zdalnymi (np. wysyłania wiadomości e-mail lub wiadomości slack).
W tym przewodniku możesz użyć wbudowanej funkcji Unity Catalog, system.ai.python_exec
, aby umożliwić agentowi wykonywanie dowolnego kodu Python.
Aby dowiedzieć się więcej na temat tworzenia własnych narzędzi agenta, zobacz Tworzenie narzędzi agenta sztucznej inteligencji.
Prototypowi agenci wywołujący narzędzia na placu zabaw dla sztucznej inteligencji
Teraz, gdy masz już narzędzie, użyj AI Playground, aby nadać agentowi narzędzie i wchodzić z nim w interakcję w celu weryfikacji i testowania jego zachowania. Plac zabaw dla sztucznej inteligencji udostępnia piaskownicę do prototypowania agentów wywołujących narzędzia.
Uwaga
Katalog aparatu Unity i bezserwerowe obliczenia, struktura agenta Mozaiki AI oraz modele podstawy płatności za token lub modele zewnętrzne muszą być dostępne w bieżącym obszarze roboczym, aby utworzyć prototypy agentów na placu zabaw dla sztucznej inteligencji.
Aby utworzyć prototyp punktu końcowego wywołującego narzędzia.
W obszarze Plac zabaw wybierz model z etykietą z włączoną etykietą Narzędzia.
Wybierz pozycję Narzędzia i określ nazwy funkcji wykazu aparatu Unity na liście rozwijanej:
Czat w celu przetestowania bieżącej kombinacji języka LLM, narzędzi i monitu systemowego oraz wypróbowania odmian.
Eksportowanie i wdrażanie agentów AI Playground
Po stworzeniu i dopracowaniu prototypu agenta sztucznej inteligencji w AI Playground możesz wyeksportować go do notesów języka Python do dalszego rozwoju lub wdrożyć go bezpośrednio jako punkt końcowy usługi modelu
Kliknij pozycję Eksportuj , aby wygenerować notesy języka Python, które ułatwiają opracowywanie i wdrażanie agenta sztucznej inteligencji.
Po wyeksportowaniu kodu agenta zobaczysz trzy pliki zapisane w obszarze roboczym:
-
agent
notes: zawiera kod języka Python definiujący agenta przy użyciu biblioteki LangChain. -
driver
notes: zawiera kod języka Python do rejestrowania, śledzenia, rejestrowania i wdrażania agenta sztucznej inteligencji przy użyciu struktury agenta Mozaika AI. -
config.yml
: zawiera informacje o konfiguracji agenta, w tym definicje narzędzi.
-
agent
Otwórz notes, aby wyświetlić kod LangChain definiujący agenta, użyj tego notesu do testowania i iterowania agenta programowo, na przykład definiowania większej liczby narzędzi lub dostosowywania parametrów agenta.Uwaga
Wyeksportowany kod może mieć inne zachowanie niż sesja środowiska zabaw sztucznej inteligencji. Usługa Databricks zaleca uruchomienie wyeksportowanych notesów w celu dalszego iterowania i debugowania, oceny jakości agenta, a następnie wdrażania agenta w celu udostępnienia innym osobom.
Po zadowoleniu z danych wyjściowych agenta możesz uruchomić
driver
notes, aby zarejestrować i wdrożyć agenta w punkcie końcowym obsługującym model.
Definiowanie agenta w kodzie
Oprócz generowania kodu agenta z platformy AI Playground można również zdefiniować agenta w kodzie samodzielnie przy użyciu struktur, takich jak LangChain lub Python. Aby można było wdrożyć agenta przy użyciu programu Agent Framework, jego dane wejściowe muszą być zgodne z jednym z obsługiwanych formatów danych wejściowych i wyjściowych.
Konfigurowanie agenta przy użyciu parametrów
W strukturze agentów można użyć parametrów do kontrolowania sposobu wykonywania agentów. Dzięki temu można szybko iterować przez różne cechy agenta bez konieczności zmieniania kodu. Parametry to pary klucz-wartość definiowane w słowniku języka Python lub .yaml
pliku.
Aby skonfigurować kod, utwórz ModelConfig
zestaw parametrów klucz-wartość.
ModelConfig
jest słownikiem języka Python lub plikiem .yaml
. Na przykład można użyć słownika podczas programowania, a następnie przekonwertować go na plik na potrzeby wdrożenia produkcyjnego .yaml
i ciągłej integracji/ciągłego wdrażania. Aby uzyskać szczegółowe informacje o ModelConfig
systemie, zobacz dokumentację platformy MLflow.
Poniżej przedstawiono przykład ModelConfig
.
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
Aby wywołać konfigurację z kodu, użyj jednego z następujących elementów:
# 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')
Ustawianie schematu programu retriever
Agenci sztucznej inteligencji często używają metod pobierania, typu narzędzia agenta, które wyszukuje i zwraca odpowiednie dokumenty przy użyciu indeksu wyszukiwania wektorowego. Aby uzyskać więcej informacji na temat retrieverów, zobacz narzędzia agenta AI do niestrukturalnego wyszukiwania.
Aby upewnić się, że metody pobierania są prawidłowo śledzone, wywołaj metodę mlflow.models.set_retriever_schema podczas definiowania agenta w kodzie. Służy set_retriever_schema
do mapowania nazw kolumn w zwróconej tabeli na oczekiwane pola MLflow, takie jak primary_key
, text_column
i 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"],
)
Uwaga
Kolumna doc_uri
jest szczególnie ważna podczas oceniania wydajności programu retriever.
doc_uri
jest głównym identyfikatorem dokumentów zwracanych przez program retriever, co umożliwia porównywanie ich z zestawami oceny podstaw prawdy. Zobacz Zestawy ewaluacyjne
Możesz również określić dodatkowe kolumny w schemacie modułu pobierania, podając listę nazw kolumn z polem other_columns
.
Jeśli masz wiele modułów pobierania, możesz zdefiniować wiele schematów przy użyciu unikatowych nazw dla każdego schematu programu retriever.
Obsługiwane formaty danych wejściowych i wyjściowych
Struktura agentów używa sygnatur modelu MLflow do definiowania schematów wejściowych i wyjściowych dla agentów. Funkcje platformy agentów mozaiki sztucznej inteligencji wymagają minimalnego zestawu pól wejściowych/wyjściowych do interakcji z funkcjami, takimi jak przeglądanie aplikacji i plac zabaw dla sztucznej inteligencji. Aby uzyskać więcej informacji, zobacz Definiowanie schematu danych wejściowych i wyjściowych agenta.
Przykładowe notesy
Te notesy tworzą prosty łańcuch "Hello, world", aby zilustrować sposób tworzenia aplikacji łańcucha w usłudze Databricks. Pierwszy przykład tworzy prosty łańcuch. Drugi przykładowy notes ilustruje sposób używania parametrów w celu zminimalizowania zmian kodu podczas programowania.
Prosty notes łańcucha
Prosty notes sterownika łańcucha
Sparametryzowany notes łańcucha
Sparametryzowany notes sterownika łańcucha
Następne kroki
- Rejestrowanie agenta sztucznej inteligencji.
- Dodawanie śladów do agenta sztucznej inteligencji.
- Wdrażanie agenta sztucznej inteligencji.