今天來簡單介紹一下langchain
LangChain 是一個專門用來開發 由語言模型驅動的應用程式 的框架。
它讓 AI 不只是聊天的夥伴,還能真正 使用工具完成任務,像是開啟應用程式、生成內容或自動化排程。
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 的「大腦」,負責理解使用者輸入,並決定接下來該怎麼做。
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="生成創意內容,如文章、心得、故事等"
),
# ... 更多工具
]
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 # 錯誤處理
)
👉 運作流程:
open_paint_tool
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"小畫家應用程式已成功開啟"
工具生態系統
Tool(
name="新功能",
func=my_new_function,
description="描述這個工具的功能"
)
靈活架構
智能決策
LangChain = 語言模型 + 工具生態 + 智能代理