LangChain / RAG / vektoritietokannat · Oppitunti

LangChain Agents ja työkalujen käsitteet

Ymmärtäkää, miten LangChain Agents voivat päätellä ja käyttää työkaluja monimutkaisten tehtävien suorittamiseen yksinkertaista kysymyksiin vastaamista laajemmin.

Oppitunti 1/412 vaihetta

LangChain Agents ja työkalujen käsitteet on ilmainen LangChain / RAG / vektoritietokannat-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu LangChain / RAG / vektoritietokannat-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. LangChain / RAG / vektoritietokannat-kurssilla on yhteensä 4 oppituntia.

Mitä LangChain Agents ovat?

Tervetuloa käsittelemään agentteja! Tähän mennessä olet oppinut rakentamaan ketjuja, jotka suorittavat ennalta määrätyn sarjan vaiheita. Mutta entä jos tarvitset enemmän joustavuutta?

LangChain Agents ovat järjestelmiä, joiden avulla LLM voi päättää dynaamisesti, mitä toimia suoritetaan, tarkkailla niiden tuloksia ja päättää sitten seuraavasta toimesta. Niitä voi ajatella tapana antaa LLM:lle ”aivot” päättelyä varten ja ”kädet” maailman kanssa toimimiseen.

Agentin päättelysilmukka

Agentit toimivat jatkuvassa Havainnoi–ajattele–toimi-silmukassa:

  • Havainnoi: Agentti vastaanottaa syötteen (kyselysi) ja edellisen toimensa tulokset.
  • Ajattele: LLM päättelee nykytilanteen perusteella, mitä pitäisi tehdä seuraavaksi.
  • Toimi: Agentti suorittaa toiminnon, usein työkalua käyttämällä.

Silmukka jatkuu, kunnes agentti päättelee, että sillä on riittävästi tietoa vastata kysymykseesi tai suorittaa tehtävänsä.

Työkalujen esittely

LLM voi yksin käyttää vain tietoa, jolla se on koulutettu. Voidakseen suorittaa toimia todellisessa maailmassa tai käyttää ajantasaista tietoa se tarvitsee työkaluja.

Työkalut ovat funktioita tai API-rajapintoja, joita agentti voi kutsua. Ne laajentavat LLM:n kykyjä ja mahdollistavat muun muassa seuraavat toiminnot:

  • Ajankohtaisten tapahtumien etsiminen internetistä.
  • Laskutoimitusten suorittaminen.
  • Tietokantojen kysely.
  • Muiden sovellusten kanssa toimiminen.

Työkalun rakenne

Jokainen työkalu tarvitsee muutamia keskeisiä tietoja, jotta agentti voi käyttää sitä tehokkaasti:

  • Nimi: Yksilöllinen tunniste (esimerkiksi ”Google Search”).
  • Kuvaus: Selkeä selitys siitä, mitä työkalu tekee ja milloin sitä pitäisi käyttää. Tämä on ratkaisevan tärkeää LLM:n päättelyn kannalta.
  • Syöteskeema: Millaisen syötteen työkalu odottaa (esimerkiksi hakulausekkeen merkkijonon tai kaksi lukua).

LLM lukee kuvaukset päättääkseen, mikä työkalu sopii kulloiseenkin vaiheeseen.

Yleisiä sisäänrakennettuja työkaluja

LangChain tarjoaa monia valmiita työkaluja. Tässä on kaksi suosittua esimerkkiä:

  • SerpAPIWrapper: Mahdollistaa Google-hakujen tekemisen agentin avulla. Hyödyllinen ajantasaisen tiedon tai tiettyjen tietojen etsimiseen.
  • LLMMathChain: Mahdollistaa matemaattisten laskutoimitusten suorittamisen agentin avulla. Se on luotettavampi vaihtoehto kuin pyytää LLM:ää tekemään monimutkaisia laskuja suoraan.

Nämä työkalut ovat kuin liitännäisiä, jotka antavat agentillesi supervoimia!

Yksinkertaisen agentin määrittäminen

Agentin luomiseen tarvitaan yleensä:

  1. LLM (esimerkiksi ChatOpenAI).
  2. Luettelo työkaluista, joita agentti voi käyttää.
  3. Agenttityyppi tai kehote, joka määrittää, miten agentin pitäisi päätellä (esimerkiksi ReAct-kehys).

Valmistellaan nämä komponentit matematiikkaa osaavan agentin rakentamista varten!

Agentti toiminnassa: laskin

Tässä on Python-esimerkki agentista, joka käyttää mukautettua ”Calculator”-työkalua. LLM päättää kysymyksen perusteella, milloin työkalua käytetään.

Huomautus: Korvaa oikeassa sovelluksessa eval() turvallisella matematiikan jäsentimellä.

import os
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_react_agent, Tool
from langchain import hub

# Ensure OPENAI_API_KEY is set in your environment variables

def get_calculator_tool():
    """A simple calculator tool."""
    def calculate(expression: str) -> str:
        try:
            # DANGER: In real apps, use safer math parsers!
            return str(eval(expression))
        except Exception as e:
            return f"Error: {e}"

    return Tool(
        name="Calculator",
        func=calculate,
        description="Useful for when you need to answer questions about math. Input should be a mathematical expression."
    )

def main():
    llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
    tools = [get_calculator_tool()]
    prompt = hub.pull("hwchase17/react") # ReAct agent prompt

    agent = create_react_agent(llm, tools, prompt)
    agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

    print("--- Agent Running ---")
    result = agent_executor.invoke({"input": "What is 123 + 456?"})
    print("\n--- Agent Result ---")
    print(result["output"])

if __name__ == "__main__":
    main()

Agentin päättelyprosessin jäljittäminen

Kun suoritat agentin asetuksella verbose=True, LangChain näyttää agentin sisäisen monologin:

  • Thought: LLM:n päättely nykytilanteesta.
  • Action: Työkalu, jota se päättää käyttää, sekä työkalulle annettava syöte.
  • Observation: Työkalun palauttama tulos.

Tämän jäljityksen avulla ymmärrät, miten agentti päätyi vastaukseensa, ja voit selvittää sen toiminnassa olevia virheitä.

Erilaiset agenttityypit

LangChain tukee erilaisia agenttityyppejä, joista jokaisella on oma päättelystrategiansa:

  • zero-shot-react-description: Yleiskäyttöinen agentti, joka käyttää ReAct-kehystä. Se tukeutuu vahvasti työkalujen kuvauksiin.
  • OpenAIFunctionsAgent: Hyödyntää OpenAI:n natiiveja funktiokutsujen ominaisuuksia, mikä johtaa usein vankempaan ja tiiviimpään työkalujen käyttöön.
  • Muita agenttityyppejä on olemassa tiettyihin käyttötapauksiin tai malleihin.

Sopivan agenttityypin valinta riippuu LLM:stäsi ja tehtävän monimutkaisuudesta.

Agenttien rajoitukset ja huomioitavat seikat

Tehokkuudestaan huolimatta agenteilla on rajoituksia:

  • Kustannukset ja viive: Useat LLM-kutsut ja työkalujen kutsut voivat kasvattaa kustannuksia ja pidentää vastausaikaa.
  • Luotettavuus: Agentit voivat edelleen ”hallusinoida” tai käyttää työkaluja väärin, jos kuvaukset eivät ole täsmällisiä tai LLM:llä on vaikeuksia monimutkaisessa päättelyssä.
  • Turvallisuus: Ulkoisten järjestelmien kanssa toimivia työkaluja, kuten eval() tai API-rajapintoja, on käsiteltävä huolellisesti haavoittuvuuksien estämiseksi.

Suunnittele työkalut ja kehotteet huolellisesti!

Agenttikäsitteiden testi

Mitkä seuraavista LangChain Agents- ja Tools-ominaisuuksia koskevista väitteistä ovat TOSIA?

Kertaus: agenttien voima

Olet oppinut, että LangChain Agents antaa LLM:ille mahdollisuuden siirtyä yksinkertaista kysymyksiin vastaamista pidemmälle ja:

  • Päätellä dynaamisesti ”Havainnoi–ajattele–toimi”-silmukan avulla.
  • Hyödyntää työkaluja ulkoisten tietojen ja palvelujen kanssa toimimiseen.
  • Suorittaa monimutkaisia tehtäviä, jotka edellyttävät useita vaiheita ja vuorovaikutusta ulkoisten järjestelmien kanssa.

Tämän yhdistelmän ansiosta agentit ovat erittäin monipuolisia älykkäiden sovellusten rakentamisessa!

Aloita maksutta

Opi LangChain / RAG / vektoritietokannat tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”LangChain Agents ja työkalujen käsitteet” ilmainen?

Kyllä – oppitunnin ”LangChain Agents ja työkalujen käsitteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko LangChain / RAG / vektoritietokannat-kurssin, päivitä CoddyKit PROhon. LangChain / RAG / vektoritietokannat-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”LangChain Agents ja työkalujen käsitteet”?

Ymmärtäkää, miten LangChain Agents voivat päätellä ja käyttää työkaluja monimutkaisten tehtävien suorittamiseen yksinkertaista kysymyksiin vastaamista laajemmin. Harjoittelet LangChain / RAG / vektoritietokannat-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni LangChain / RAG / vektoritietokannat-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin LangChain / RAG / vektoritietokannat-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”LangChain Agents ja työkalujen käsitteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä LangChain / RAG / vektoritietokannat-oppitunnilla?

Kyllä. Jokainen LangChain / RAG / vektoritietokannat-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. LangChain Agents ja työkalujen käsitteet
  2. Moniagenttisten RAG-työnkulkujen rakentaminen
  3. Ulkoisten APIen integrointi työkaluiksi
  4. Muisti ja tila agenttisessa RAGissa
← Takaisin: LangChain / RAG / vektoritietokannat