Sedang mengikuti modul ini?
Modul 09 · Halaman 10 daripada 20 · 10 bahagian
Alat (Tools) dalam LangChain
Apa itu alat, bagaimana panggilan alat mengalir, jenis alat dan alat terbina dalam yang popular, serta cara mencipta alat tersuai dan menggunakan beberapa alat dengan agent.
Apa itu Alat?
- Alat membolehkan LLM berinteraksi dengan sistem luar (API, pangkalan data, enjin carian, dsb.).
- LLM boleh memanggil alat untuk mendapatkan maklumat masa nyata, melakukan tindakan atau melaksanakan kod.
- LangChain menyediakan antara muka piawai untuk mencipta, mengintegrasi dan mengurus alat.
- Alat penting untuk membina agent dan aplikasi dunia sebenar.
Mengapa Menggunakan Alat?
- Mengakses maklumat masa nyata dan luar.
- Melakukan tindakan seperti carian, pengiraan dan panggilan API.
- Melanjutkan keupayaan LLM melangkaui data latihan.
- Berguna untuk membina RAG, agent dan automasi.
- Mudah mencipta alat tersuai.
- Berintegrasi dengan perkhidmatan popular (Google Search, Wikipedia, Python REPL, pangkalan data, dsb.).
Cara Alat Berfungsi dalam LangChain
Pertanyaan Pengguna
LLMMemutuskan untuk menggunakan alat
AlatSistem luar / API / DB
Hasil AlatMemulangkan data kepada LLM
Respons AkhirKepada pengguna
Jenis Alat dalam LangChain
| Jenis Alat | Penerangan | Kes Penggunaan |
|---|---|---|
| Built-in Tools | Alat siap bina yang disediakan LangChain | Carian, Wikipedia, Python REPL, dsb. |
| API Tools | Memanggil API luar | Cuaca, kewangan, API tersuai |
| Database Tools | Berinteraksi dengan pangkalan data | Pertanyaan MySQL, PostgreSQL, dsb. |
| Custom Tools | Cipta alat anda sendiri menggunakan fungsi | Logik perniagaan, perkhidmatan dalaman |
| Toolkits | Koleksi alat berkaitan | SerpAPI toolkit, SQL toolkit, dsb. |
Alat Terbina dalam yang Popular
- SerpAPIWrapper - Google Search
- WikipediaQueryRun - carian Wikipedia
- PythonREPLTool - Laksanakan kod Python
- RequestsToolkit - Buat permintaan HTTP
- SQLDatabaseToolkit - Bekerja dengan pangkalan data SQL
- ArxivQueryRun - Cari kertas penyelidikan
- DuckDuckGoSearchRun - Carian web (sumber terbuka)
- OpenWeatherMap - Maklumat cuaca
- ... dan banyak lagi melalui komuniti LangChain
Mencipta Alat Tersuai
- Tentukan fungsi dengan input dan output.
- Gunakan dekorator
@toolatauBaseTool. - Berikan penerangan yang jelas untuk LLM.
- Ia boleh digunakan dengan agent atau chain.
Contoh 1: Alat Google Search SerpAPI
python
from langchain.agents import initialize_agent, AgentType from langchain_community.utilities import SerpAPIWrapper from langchain.tools import Tool from langchain_openai import ChatOpenAI # Initialize LLM llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7) # Create search tool search = SerpAPIWrapper() tools = [Tool( name="Google Search", func=search.run, description="Search the internet for latest information") ] # Initialize agent agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) response = agent.invoke({"input": "Who won the IPL 2024?"}) print(response["output"])
Contoh 2: Alat Tersuai (Kalkulator)
python
from langchain.tools import tool from langchain.agents import initialize_agent, AgentType from langchain_openai import ChatOpenAI @tool def calculator(expression: str) -> str: """Useful for mathematical calculations. Input should be a valid Python expression.""" try: return str(eval(expression)) except Exception as e: return f"Error: {str(e)}" llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7) tools = [calculator] agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) response = agent.invoke({"input": "What is 25 * 4 + 10?"}) print(response["output"])
Contoh 3: Menggunakan Beberapa Alat dengan Agent
python
from langchain_community.utilities import SerpAPIWrapper from langchain.tools import Tool search_tool = Tool(name="Search", func=SerpAPIWrapper().run, description="Search the internet") calc_tool = calculator # from previous example tools = [search_tool, calc_tool] agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
Pengajaran Utama
- Alat melanjutkan keupayaan LLM kepada aplikasi dunia sebenar.
- Gunakan alat terbina dalam untuk tugas biasa.
- Cipta alat tersuai untuk keperluan khusus perniagaan.
- Alat ialah blok binaan untuk agent yang berkuasa.
- Berikan penerangan yang jelas untuk pemilihan alat yang lebih baik.
- Gabungkan beberapa alat untuk aliran kerja kompleks.
- Cuba pelbagai alat dan kes penggunaan.