Een AI-agent maken
Belangrijk
Deze functie is beschikbaar als openbare preview.
In dit artikel leest u hoe u een ai-agent voor het aanroepen van hulpprogramma's maakt met behulp van het Mozaïek AI Agent Framework.
Meer informatie over het geven van agenthulpprogramma's en chatten met hen om de agent te testen en prototypen te maken. Zodra u klaar bent met het maken van prototypen van de agent, exporteert u de Python-code die de agent definieert om uw AI-agent te herhalen en te implementeren.
Vereisten
- Krijg inzicht in de concepten van AI-agents en -hulpprogramma's zoals beschreven in Wat zijn samengestelde AI-systemen en AI-agents?
- Databricks raadt aan de nieuwste versie van de MLflow Python-client te installeren bij het ontwikkelen van agents.
Ai-agenthulpprogramma's maken
De eerste stap is het maken van een hulpprogramma dat aan uw agent moet worden verstrekt. Agents gebruiken hulpprogramma's voor het uitvoeren van acties naast het genereren van talen, bijvoorbeeld voor het ophalen van gestructureerde of ongestructureerde gegevens, het uitvoeren van code of het communiceren met externe services (bijvoorbeeld het verzenden van een e-mail of Slack-bericht).
Voor deze handleiding kunt u de ingebouwde unity-Catalog-functie, system.ai.python_exec
, gebruiken om uw agent de mogelijkheid te geven willekeurige Python-code uit te voeren.
Zie Ai-agenthulpprogramma's makenvoor meer informatie over het maken van uw eigen agenthulpprogramma's.
Prototype-agents voor het aanroepen van hulpprogramma's in AI Playground
Nu u een hulpprogramma hebt, gebruikt u de AI Playground- om het hulpprogramma aan een agent te geven en ermee te communiceren om gedrag te valideren en te testen. De AI Playground biedt een sandbox voor het prototype van agents voor het aanroepen van hulpprogramma's.
Notitie
Unity Catalogen serverloze rekencapaciteit, Mosaic AI Agent Framework, en modellen op basis van betalen per token of externe modellen moeten beschikbaar zijn in de huidige werkruimte om agents in AI Playground te prototypen.
Een prototype maken van een eindpunt voor het aanroepen van hulpprogramma's.
Vanuit Playground select u een model met het label Tools ingeschakeld.
Select Tools en geef uw Unity Catalog-functienamen op in de vervolgkeuzelijst:
Chat om de huidige combinatie van LLM, hulpprogramma's en systeemprompt te testen en variaties uit te proberen.
AI Playground-agents exporteren en implementeren
Na het maken van prototypen en het verfijnen van de AI-agent in AI Playground, kunt u deze exporteren naar Python-notebooks voor verdere ontwikkeling of deze rechtstreeks implementeren als een eindpunt voor modelverdiening
Klik op exporteren om Python-notebooks te generate waarmee u de AI-agent kunt ontwikkelen en implementeren.
Nadat u de agentcode hebt geëxporteerd, ziet u drie bestanden die zijn opgeslagen in uw werkruimte:
-
agent
notebook: Bevat Python-code die uw agent definieert met Behulp van LangChain. -
driver
notebook: Bevat Python-code voor het registreren, traceren, registreren en implementeren van de AI-agent met behulp van Mosaic AI Agent Framework. -
config.yml
: bevat configuratie-informatie over uw agent, inclusief hulpprogrammadefinities.
-
Open het
agent
notebook om de LangChain-code te zien die uw agent definieert, gebruik dit notebook om de agent programmatisch te testen en te herhalen, zoals het definiëren van meer hulpprogramma's of het aanpassen van de -agent parameters.Notitie
De geëxporteerde code kan afwijken van uw AI-speeltuinsessie. Databricks raadt u aan om de geëxporteerde notebooks uit te voeren om verder te herhalen en fouten op te sporen, de kwaliteit van de agent te evalueren en vervolgens de agent te implementeren om met anderen te delen.
Zodra u tevreden bent met de uitvoer van de agent, kunt u het notebook uitvoeren om uw
driver
agent te registreren en te implementeren in een eindpunt voor modelverdiening.
Een agent definiëren in code
Naast het genereren van agentcode van AI Playground kunt u ook zelf een agent definiëren in code, met behulp van frameworks zoals LangChain of Python-code. Als u een agent wilt implementeren met Agent Framework, moet de invoer ervan voldoen aan een van de ondersteunde indelingen voor invoer en uitvoer.
parameters gebruiken om de agent te configureren
In het Agent Framework kunt u parameters gebruiken om te bepalen hoe agents worden uitgevoerd. Hierdoor kunt u snel herhalen door verschillende kenmerken van uw agent zonder de code te wijzigen.
Parameters zijn sleutel-waardeparen die u in een Python-woordenlijst of een .yaml
-bestand definieert.
Als u de code wilt configureren, maakt u een ModelConfig
en een set met sleutel-waarde parameters.
ModelConfig
is een Python-woordenlijst of een .yaml
bestand. U kunt bijvoorbeeld een woordenlijst gebruiken tijdens de ontwikkeling en deze vervolgens converteren naar een .yaml
bestand voor productie-implementatie en CI/CD. Zie de ModelConfig
voor meer informatie over.
Hieronder ziet u een voorbeeld 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
Gebruik een van de volgende manieren om de configuratie vanuit uw code aan te roepen:
# 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')
Set retriever schema
AI-agents gebruiken vaak retrievers, een type agenthulpprogramma waarmee relevante documenten worden gevonden en geretourneerd met behulp van een Vector Search-index. Voor meer informatie over retrievers, zie de niet-gestructureerde retrieval- en AI-agent-hulpmiddelen .
Als u ervoor wilt zorgen dat retrievers correct worden getraceerd, roept u mlflow.models.set_retriever_schema aan wanneer u uw agent in code definieert. Gebruik set_retriever_schema
om de column namen in de geretourneerde table toe te wijzen aan de verwachte velden van MLflow, zoals primary_key
, text_column
en 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"],
)
Notitie
De doc_uri
column is vooral belangrijk bij het evalueren van de prestaties van de retriever.
doc_uri
is de belangrijkste identifier voor documenten die door de retriever worden geretourneerd, zodat u ze kunt vergelijken met basis-waarheidsevaluatiesets. Evaluatiesets bekijken
U kunt ook extra columns opgeven in de schema van de retriever door een list van column namen te specificeren met behulp van het veld other_columns
.
Als u meerdere retrievers hebt, kunt u meerdere schema's definiëren met behulp van unieke namen voor elke retriever schema.
Ondersteunde invoer- en uitvoerindelingen
Agent Framework maakt gebruik van MLflow-modelhandtekeningen om invoer- en uitvoerschema's voor agents te definiëren. Mozaïek AI Agent Framework-functies vereisen een minimum van set invoer-/uitvoervelden om te communiceren met functies zoals de beoordelingsapp en de AI-playground. Voor meer informatie, zie De invoer en uitvoer van een agent definiëren schema.
Voorbeeldnotitieblokken
Deze notebooks maken een eenvoudige 'Hallo wereld'-keten om te laten zien hoe u een ketentoepassing maakt in Databricks. In het eerste voorbeeld wordt een eenvoudige keten gemaakt. In het tweede voorbeeldnotebook ziet u hoe u parameters gebruikt om codewijzigingen tijdens de ontwikkeling te minimaliseren.