Sedang mengikuti modul ini?0 daripada 17 selesai
Modul 17 · Halaman 18 daripada 20 · 9 bahagian

Chain, Agent dan Alat LangChain

Pandangan bersebelahan chain, agent dan alat, dengan LLMChain, RetrievalQA chain dan agent dengan alat carian, serta alat terbina dalam yang popular.

17.1

Apa itu Chain?

  • Chain dalam LangChain ialah urutan komponen yang bekerjasama untuk melaksanakan satu tugas.
  • Ia membolehkan anda menggabungkan LLM, prompt, retriever dan komponen lain dalam satu saluran paip.
  • Chain memudahkan pembinaan aliran kerja kompleks seperti RAG, ringkasan dan menjawab soalan.
  • LangChain menyediakan chain terbina dalam seperti LLMChain, RetrievalQA, ConversationalChain, dsb.
17.2

Apa itu Agent?

  • Agent menggunakan LLM untuk memutuskan alat mana untuk digunakan, bila dan bagaimana menggunakannya.
  • Ia boleh berinteraksi dengan sistem luar (API, pangkalan data, kalkulator, carian, dsb.) untuk menyiapkan tugas.
  • Agent boleh merancang, bertindak, memerhati hasil dan mengulang sehingga mendapat jawapan akhir.
  • Berguna untuk tugas dinamik di mana LLM perlu memilih alat yang betul berdasarkan pertanyaan pengguna.
17.3

Chain berbanding Agent berbanding Alat

AspekChainsAgentsAlat
TujuanMelaksanakan urutan langkah yang tetapMemutuskan dan menggunakan alat secara dinamikFungsi atau API luar yang digunakan agent
Aliran KawalanDitetapkan lebih awalDinamik (LLM memutuskan)Dilaksanakan apabila dipanggil oleh agent
Kes PenggunaanRAG, ringkasan, saluran paip soal jawabTugas kompleks, penaakulan berbilang langkahCarian, pertanyaan pangkalan data, kalkulator, panggilan API, dsb.
FleksibilitiKurang fleksibelLebih fleksibel dan autonomiBoleh dikembangkan (alat tersuai)
ContohLLMChain, RetrievalQAZeroShotAgent, OpenAIAgentSearchTool, PythonREPLTool, Custom Tools
17.4

Contoh Chain Mudah (LLMChain)

python
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 1. Define LLM
llm = OpenAI(model="gpt-3.5-turbo", temperature=0.7)

# 2. Define prompt template
prompt = PromptTemplate(
    input_variables=["topic"],
    template="Explain {topic} in simple words."
)

# 3. Create chain
chain = LLMChain(llm=llm, prompt=prompt)

# 4. Run chain
result = chain.invoke({"topic": "Microservices"})
print(result["text"])
17.5

Contoh Retrieval QA Chain

python
from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.llms import OpenAI

# Load and split document
loader = PyPDFLoader("data/tech_document.pdf")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1000,
    chunk_overlap=200)
chunks = splitter.split_documents(docs)

# Create vector store
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(chunks, embeddings)
retriever = vectorstore.as_retriever()

# Create RetrievalQA chain
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(),
    chain_type="stuff", retriever=retriever)

result = qa_chain.invoke({"query": "What is the main topic of this document?"})
print(result["result"])
17.6

Seni Bina Agent

Pertanyaan PenggunaCari berita terkini dan ringkaskan
AgentLLM memutuskan alat yang digunakan
AlatCarian web, pangkalan data, alat tersuai
PemerhatianHasil alat
Output AkhirLLM menjana jawapan
17.7

Contoh Agent (Menggunakan Alat)

python
from langchain.agents import initialize_agent, Tool
from langchain.tools import DuckDuckGoSearchRun
from langchain.llms import OpenAI

# Define tools
search = DuckDuckGoSearchRun()
tools = [
    Tool(
        name="Search",
        func=search.run,
        description="Useful for searching information on the internet"
    )
]

# Create agent
llm = OpenAI(model="gpt-3.5-turbo", temperature=0.7)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description",
                         verbose=True)

# Run agent
response = agent.invoke({"input": "Find latest news about AU Small Finance Bank"})
print(response["output"])
17.8

Alat Terbina dalam yang Popular

AlatPenerangan
DuckDuckGoSearchRunCari maklumat daripada internet
SerpAPIWrapperCari menggunakan Google SerpAPI
WikipediaQueryRunCari daripada Wikipedia
PythonREPLToolLaksanakan kod Python
SQLDatabaseToolkitBuat pertanyaan pada pangkalan data menggunakan bahasa semula jadi
RequestsToolBuat permintaan API HTTP
Custom ToolCipta alat anda sendiri (cth. panggil API dalaman)
17.9

Pengajaran Utama

  • Chain melaksanakan urutan langkah yang tetap.
  • Agent memutuskan alat mana untuk digunakan secara dinamik.
  • Alat melanjutkan keupayaan agent dengan API dan fungsi luar.
  • Gunakan alat terbina dalam atau cipta alat tersuai.
  • Agent berguna untuk tugas dunia sebenar yang kompleks dan berbilang langkah.
  • Gabungkan Chain + Agent + Alat untuk aplikasi LLM yang berkuasa.