iT邦幫忙

2025 iThome 鐵人賽

DAY 5
2

今天來簡單介紹一下langchain

什麼是 LangChain?

LangChain 是一個專門用來開發 由語言模型驅動的應用程式 的框架。

它讓 AI 不只是聊天的夥伴,還能真正 使用工具完成任務,像是開啟應用程式、生成內容或自動化排程。


從程式碼看 LangChain 的核心組件

1. LLM (Large Language Model) — 大腦

class GeminiLLM(LLM):
    """自定義 Gemini LLM 包裝器"""
    def _call(self, prompt: str) -> str:
        response = self._chat.send_message(prompt)
        return self.opencc_converter.convert(response.text)

👉 作用:LLM 就像 AI 的「大腦」,負責理解使用者輸入,並決定接下來該怎麼做。


2. Tools (工具) — LangChain 的超能力

LangChain 最大的特色是:AI 不只會說話,還會做事!

每個 Tool 就是一個「功能模組」,能讓 AI 呼叫來完成任務。

tools = [
    Tool(
        name="開啟小畫家",
        func=self.system_tools.open_paint_tool,
        description="開啟 Windows 小畫家應用程式"
    ),
    Tool(
        name="內容生成工具",
        func=self.system_tools.generate_content_tool,
        description="生成創意內容,如文章、心得、故事等"
    ),
    # ... 更多工具
]


3. Agent (代理) — 決策中心

Agent 是 LangChain 的核心大腦,它會根據 LLM 的判斷,自動選擇並執行合適的工具

self.agent = initialize_agent(
    tools,                               # 可用工具
    self.gemini_llm,                     # 語言模型
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,  # 代理模式
    verbose=True,                        # 顯示思考過程
    handle_parsing_errors=custom_error_handler    # 錯誤處理
)

👉 運作流程:

  1. 接收使用者請求 → 「請開啟小畫家」
  2. 思考 (Think) → 「有一個工具能開啟小畫家」
  3. 行動 (Act) → 呼叫 open_paint_tool
  4. 觀察 (Observe) → 「小畫家已成功開啟」
  5. 回應 (Respond) → 「小畫家已為您開啟!」

LangChain 的運作模式:REACT

REACT (Reasoning + Acting) 結合「推理」與「行動」,讓 AI 具備完整的決策流程。

範例:

Thought: 使用者想要生成一篇文章並寫入Word
Action: 內容生成工具
Action Input: 關於人工智慧的未來發展
Observation: 已成功生成2000字的文章內容
Thought: 現在需要將生成的內容寫入Word
Action: 將已生成內容寫入Word
Action Input: 
Observation: 內容已成功寫入Word文件
Final Answer: 我已為您生成了一篇關於人工智慧未來發展的文章,並寫入Word文件中!


錯誤處理與容錯機制

LangChain 提供自訂錯誤處理,確保 AI 即使「想錯了」,也能自我修正。

def custom_error_handler(error) -> str:
    # 當 LLM 輸出格式錯誤時,自動修正
    if "Action: 開啟小畫家" in error_msg:
        result = self.system_tools.open_paint_tool("")
        return f"小畫家應用程式已成功開啟"


LangChain 的優勢

  1. 工具生態系統

    • 不需要重新訓練模型
    • 可串接任何 API 或系統
    • 隨時擴充新工具
    Tool(
        name="新功能",
        func=my_new_function,
        description="描述這個工具的功能"
    )
    
    
  2. 靈活架構

    • 容易擴展功能
    • 支援多步驟工作流程
  3. 智能決策

    • AI 會根據情境自動選擇最合適的工具
    • 支援複雜任務處理

實際應用場景

  • 文件處理流程:AI 幫你讀取、整理、分析檔案

總結

LangChain = 語言模型 + 工具生態 + 智能代理

  • 語言模型:理解與生成文字
  • 工具系統:執行實際操作
  • 代理機制:決策與任務流程管理

上一篇
DAY 4
下一篇
DAY 6
系列文
我的 AI 助手開發8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言