Skip to content

Latest commit

 

History

History
124 lines (70 loc) · 8.41 KB

File metadata and controls

124 lines (70 loc) · 8.41 KB

Innledning

AI-agenter representerer en spennende utvikling innen generativ AI, som gjør det mulig for store språkmodeller (LLMs) å utvikle seg fra assistenter til agenter som kan utføre handlinger. AI-agentrammeverk gjør det mulig for utviklere å lage applikasjoner som gir LLM-er tilgang til verktøy og tilstandsadministrasjon. Disse rammeverkene forbedrer også synlighet, slik at brukere og utviklere kan overvåke handlingene som LLM-ene planlegger, og dermed forbedre opplevelsesadministrasjonen.

Leksjonen vil dekke følgende områder:

  • Forstå hva en AI-agent er - Hva er egentlig en AI-agent?
  • Utforske fire forskjellige AI-agentrammeverk - Hva gjør dem unike?
  • Anvende disse AI-agentene til forskjellige brukstilfeller - Når bør vi bruke AI-agenter?

Læringsmål

Etter å ha tatt denne leksjonen, vil du kunne:

  • Forklare hva AI-agenter er og hvordan de kan brukes.
  • Ha en forståelse av forskjellene mellom noen av de populære AI-agentrammeverkene, og hvordan de skiller seg fra hverandre.
  • Forstå hvordan AI-agenter fungerer for å kunne bygge applikasjoner med dem.

Hva er AI-agenter?

AI-agenter er et veldig spennende felt i verden av generativ AI. Med denne spenningen følger noen ganger en forvirring av termer og deres anvendelse. For å holde det enkelt og inkluderende for de fleste verktøyene som refererer til AI-agenter, skal vi bruke denne definisjonen:

AI-agenter lar store språkmodeller (LLMs) utføre oppgaver ved å gi dem tilgang til en tilstand og verktøy.

La oss definere disse begrepene:

Store språkmodeller - Dette er modellene som det refereres til gjennom hele dette kurset, som GPT-3.5, GPT-4, Llama-2, etc.

Tilstand - Dette refererer til konteksten som LLM-en jobber i. LLM-en bruker konteksten av sine tidligere handlinger og den nåværende konteksten, som guider dens beslutningstaking for påfølgende handlinger. AI-agentrammeverk lar utviklere opprettholde denne konteksten enklere.

Verktøy - For å fullføre oppgaven som brukeren har bedt om og som LLM-en har planlagt, trenger LLM-en tilgang til verktøy. Noen eksempler på verktøy kan være en database, en API, en ekstern applikasjon eller til og med en annen LLM!

Disse definisjonene vil forhåpentligvis gi deg et godt grunnlag når vi ser på hvordan de er implementert. La oss utforske noen forskjellige AI-agentrammeverk:

LangChain-agenter

LangChain-agenter er en implementering av definisjonene vi ga ovenfor.

For å administrere tilstanden, bruker den en innebygd funksjon kalt AgentExecutor. Denne aksepterer den definerte agent og de tools som er tilgjengelige for den.

Agent Executor lagrer også chat-historikken for å gi konteksten til chatten.

LangChain tilbyr en katalog av verktøy som kan importeres til applikasjonen din, der LLM-en kan få tilgang til. Disse er laget av samfunnet og av LangChain-teamet.

Du kan deretter definere disse verktøyene og sende dem til Agent Executor.

Synlighet er et annet viktig aspekt når vi snakker om AI-agenter. Det er viktig for applikasjonsutviklere å forstå hvilket verktøy LLM-en bruker og hvorfor. For det har teamet i LangChain utviklet LangSmith.

AutoGen

Det neste AI-agentrammeverket vi skal diskutere er AutoGen. Hovedfokuset til AutoGen er samtaler. Agenter er både samtalevennlige og tilpassbare.

Samtalevennlige - LLM-er kan starte og fortsette en samtale med en annen LLM for å fullføre en oppgave. Dette gjøres ved å opprette AssistantAgents og gi dem en spesifikk systemmelding.

Tilpassbare - Agenter kan defineres ikke bare som LLM-er, men også som en bruker eller et verktøy. Som utvikler kan du definere en UserProxyAgent som er ansvarlig for å samhandle med brukeren for tilbakemelding i fullføringen av en oppgave. Denne tilbakemeldingen kan enten fortsette utførelsen av oppgaven eller stoppe den.

Tilstand og verktøy

For å endre og administrere tilstanden genererer en assistentagent Python-kode for å fullføre oppgaven.

Her er et eksempel på prosessen:

LLM definert med en systemmelding

Denne systemmeldingen leder denne spesifikke LLM-en til hvilke funksjoner som er relevante for dens oppgave. Husk at med AutoGen kan du ha flere definerte AssistantAgents med forskjellige systemmeldinger.

Chat initieres av bruker

Denne meldingen fra user_proxy (menneske) er det som vil starte prosessen med agenten for å utforske de mulige funksjonene som den bør utføre.

Funksjon utføres

Når den innledende chatten er behandlet, vil agenten sende det foreslåtte verktøyet til å kalle. I dette tilfellet er det en funksjon kalt get_weather. Depending on your configuration, this function can be automatically executed and read by the Agent or can be executed based on user input.

You can find a list of AutoGen code samples to further explore how to get started building.

Taskweaver

The next agent framework we will explore is Taskweaver. It is known as a "code-first" agent because instead of working strictly with strings , it can work with DataFrames in Python. This becomes extremely useful for data analysis and generation tasks. This can be things like creating graphs and charts or generating random numbers.

State and Tools

To manage the state of the conversation, TaskWeaver uses the concept of a Planner. The Planner is a LLM that takes the request from the users and maps out the tasks that need to be completed to fulfill this request.

To complete the tasks the Planner is exposed to the collection of tools called Plugins. Dette kan være Python-klasser eller en generell kodefortolker. Disse pluginene lagres som embeddings slik at LLM-en bedre kan søke etter riktig plugin.

Her er et eksempel på en plugin for å håndtere anomalioppdagelse:

Koden verifiseres før den utføres. En annen funksjon for å administrere kontekst i Taskweaver er experience. Experience allows for the context of a conversation to be stored over to the long term in a YAML file. This can be configured so that the LLM improves over time on certain tasks given that it is exposed to prior conversations.

JARVIS

The last agent framework we will explore is JARVIS. What makes JARVIS unique is that it uses an LLM to manage the state av samtalen og tools er andre AI-modeller. Hver av AI-modellene er spesialiserte modeller som utfører bestemte oppgaver som objektgjenkjenning, transkripsjon eller bildebeskrivelse.

LLM-en, som er en generell modell, mottar forespørselen fra brukeren og identifiserer den spesifikke oppgaven og eventuelle argumenter/data som trengs for å fullføre oppgaven.

LLM-en formaterer deretter forespørselen på en måte som den spesialiserte AI-modellen kan tolke, for eksempel JSON. Når AI-modellen har returnert sin prediksjon basert på oppgaven, mottar LLM-en responsen.

Hvis flere modeller kreves for å fullføre oppgaven, vil den også tolke responsen fra disse modellene før de bringes sammen for å generere responsen til brukeren.

Eksemplet nedenfor viser hvordan dette ville fungere når en bruker ber om en beskrivelse og telling av objektene i et bilde:

Oppgave

For å fortsette læringen din om AI-agenter kan du bygge med AutoGen:

  • En applikasjon som simulerer et forretningsmøte med forskjellige avdelinger i en utdanningsoppstart.
  • Lag systemmeldinger som veileder LLM-er i å forstå forskjellige personas og prioriteringer, og gjør det mulig for brukeren å presentere en ny produktidé.
  • LLM-en skal deretter generere oppfølgingsspørsmål fra hver avdeling for å forbedre og forbedre presentasjonen og produktideen

Læring stopper ikke her, fortsett reisen

Etter å ha fullført denne leksjonen, sjekk ut vår Generative AI Learning-samling for å fortsette å øke din kunnskap om generativ AI!

I'm sorry, but it seems there might be a misunderstanding. Could you please clarify what language you mean by "no"? If you meant Norwegian, I can certainly help with that translation.