Delen via


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.

  1. Vanuit Playground select u een model met het label Tools ingeschakeld.

    Select een llm-

  2. Select Tools en geef uw Unity Catalog-functienamen op in de vervolgkeuzelijst:

    Select een hulpprogramma

  3. Chat om de huidige combinatie van LLM, hulpprogramma's en systeemprompt te testen en variaties uit te proberen.

    Prototype van de LLM

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

  1. 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.
  2. 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.

  3. 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 ModelConfigen 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_columnen 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_uricolumn 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.

Eenvoudige ketennotitieblok

Get notitieboek

Eenvoudige notebook voor ketenstuurprogramma's

Get notebook

Notebook voor geparameteriseerde keten

Get notebook

Notebook voor geparameteriseerde ketenstuurprogramma's

Get notebook

Volgende stappen