LangChain 安裝與環境設定
單元:安裝與環境設定
主題:安裝 LangChain 與相依套件
簡介
在 LLM(大型語言模型) 與 RAG(檢索增強生成) 的應用日益普及的今天,LangChain 成為了串接模型、工具與資料的核心框架。無論是要快速打造聊天機器人、文件問答系統,還是建置企業內部的知識庫,LangChain 都提供了高度模組化且可擴充的介面。
然而,許多開發者在第一步「安裝」時往往會碰到相依套件版本衝突、環境隔離不足等問題,導致後續開發卡關。本文將從 Python 虛擬環境的建立、LangChain 本體與常用外掛的安裝,一步步帶領讀者完成安全、可重現的開發環境,為後續的應用奠定穩固基礎。
核心概念
1. 為什麼要使用虛擬環境?
- 相依管理:不同專案可能需要不同版本的
openai、torch等套件,虛擬環境可以避免全域衝突。 - 可重現性:將套件版本寫入
requirements.txt,團隊成員或 CI/CD 都能還原完全相同的環境。 - 安全性:隔離的環境不會影響系統其他程式,降低意外升級造成的破壞。
常用工具:
venv(Python 內建)或conda(Anaconda/Miniconda)。本文以venv為例,亦提供conda的備註說明。
2. LangChain 的核心套件結構
| 套件 | 功能說明 | 常見使用情境 |
|---|---|---|
langchain |
主框架,提供 LLM、Prompt、Chain、Agent 等抽象層 | 基本的聊天或問答流程 |
langchain-community |
社群貢獻的工具與整合(向量資料庫、工具插件) | 使用 Pinecone、Weaviate、SerpAPI 等 |
langchain-openai |
OpenAI API 的專屬封裝 | 使用 gpt-4、gpt-3.5-turbo |
langchain-aws |
AWS Bedrock、SageMaker 等服務的整合 | 企業雲端部署 |
langchain-experimental |
尚在測試階段的功能(如自訂工具) | 前沿功能探索 |
建議:在專案初期先安裝
langchain與langchain-community,之後根據需求再加入特定服務的套件。
3. 安裝流程總覽
- 建立與啟用 虛擬環境。
- 更新
pip、setuptools、wheel。 - 安裝 LangChain 主套件。
- 安裝 相依的 LLM 客戶端(如
openai、anthropic)。 - 如需向量資料庫,安裝對應的 client 套件(例如
chromadb、pinecone-client)。 - 使用
requirements.txt/pip freeze鎖定版本。
程式碼範例
以下範例均假設使用 Python 3.10+,並在 Windows/macOS/Linux 通用的命令列環境執行。
3.1 建立虛擬環境(venv)
# 1. 建立資料夾
mkdir langchain-demo && cd langchain-demo
# 2. 建立虛擬環境 (名稱可自行取)
python -m venv .venv
# 3. 啟動虛擬環境
# Windows
.\.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
# 4. 確認 Python 與 pip 版本
python --version
pip --version
提示:若使用
conda,可改為conda create -n lc_demo python=3.11,再conda activate lc_demo。
3.2 更新 pip 相關工具
pip install --upgrade pip setuptools wheel
為什麼要升級?
pip舊版在處理許多二進位套件(如torch)時可能會失敗,升級後可取得最新的相依解決機制。
3.3 安裝 LangChain 主套件
pip install langchain
安裝完成後,你可以在 REPL 中簡單驗證:
>>> import langchain
>>> print(langchain.__version__) # 例如: 0.2.5
3.4 安裝 OpenAI 客戶端與 LangChain OpenAI 整合
pip install openai langchain-openai
環境變數設定
為了安全起見,API 金鑰不應硬編碼在程式碼裡。可於終端機設定:
# Windows PowerShell
$env:OPENAI_API_KEY="sk-xxxx..."
# macOS / Linux
export OPENAI_API_KEY="sk-xxxx..."
3.5 安裝向量資料庫(以 Chroma 為例)
Chroma 是一個輕量級、純 Python 的向量資料庫,適合本機測試。
pip install chromadb
3.6 完整範例:建立一個簡易的問答 Chain
# file: simple_qa.py
import os
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
# 取得 API 金鑰(若未設定環境變數,會拋出錯誤)
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("請先設定 OPENAI_API_KEY 環境變數")
# 建立 LLM 實例
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.2)
# 定義 Prompt
prompt = ChatPromptTemplate.from_messages([
("system", "你是一個專業的程式設計教學助理。"),
("human", "{question}")
])
# 組合成 Chain
qa_chain = LLMChain(llm=llm, prompt=prompt)
# 測試問答
if __name__ == "__main__":
while True:
q = input("\n請輸入問題 (或輸入 exit 結束):")
if q.strip().lower() == "exit":
break
answer = qa_chain.run({"question": q})
print("\n🤖 回答:", answer)
執行 python simple_qa.py,即可與模型互動。
3.7 安裝需求檔與版本鎖定
# 產生 requirements.txt
pip freeze > requirements.txt
requirements.txt 內容示例:
langchain==0.2.5
langchain-openai==0.0.5
openai==1.30.0
chromadb==0.4.22
將此檔案放入版本控制,其他開發者只要:
pip install -r requirements.txt
即可得到完全相同的環境。
常見陷阱與最佳實踐
| 陷阱 | 說明 | 最佳實踐 |
|---|---|---|
| API 金鑰寫死在程式碼 | 會導致金鑰外洩、CI/CD 無法安全執行 | 使用環境變數或 .env 檔(python-dotenv) |
| 全域安裝套件 | 版本衝突、升級時破壞其他專案 | 只在虛擬環境內安裝 |
| pip 版本過舊 | 部分套件(如 torch)無法編譯 |
pip install --upgrade pip |
| 忽略相依套件的 GPU/CPU 需求 | 安裝錯誤的 torch 版會導致程式無法執行 |
若需要 GPU,先安裝官方提供的 torch wheel(參考 https://pytorch.org) |
| 未鎖定套件版本 | 隨時間升級可能出現不相容的變更 | 使用 requirements.txt 或 pip-tools 產生 requirements.in / requirements.txt |
| 忘記啟動虛擬環境 | 直接在全域環境執行,容易找不到安裝的套件 | 每次開發前先 source .venv/bin/activate(或 conda activate …) |
額外工具
pre-commit:在提交前自動檢查格式與安全性。ruff或flake8:靜態程式碼分析,避免常見錯誤。black:統一程式碼風格,降低團隊摩擦。
實際應用場景
企業內部文件問答
- 使用 LangChain 讀取公司手冊、PDF,透過向量搜尋(Chroma / Pinecone)取得相關段落,再交給 LLM 產生自然語言答案。
多模態聊天機器人
- 結合
langchain-aws呼叫 Bedrock 多模型(文字、圖像),提供客戶支援或產品導覽。
- 結合
自動化程式碼生成工具
- 以
langchain的Agent功能串接 IDE 插件,根據開發者的自然語言需求即時產生程式碼片段。
- 以
教育平台的互動教學
- 透過
LLMChain建立課程引導流程,結合Tool(如搜尋 API)即時提供參考資料與練習解答。
- 透過
資料分析自動化
- 使用
langchain將分析需求轉換為 Python Pandas / SQL 指令,並回傳結果給使用者。
- 使用
總結
LangChain 為 LLM 應用提供了統一、可組合的開發介面,而正確的安裝與環境設定則是所有後續功能得以順利運作的基礎。本文從虛擬環境的建立、套件的升級與安裝、到範例程式碼與最佳實踐,提供了完整的上手流程。只要遵循以下三個要點,就能在專案中穩定使用 LangChain:
- 使用虛擬環境,確保相依管理與安全性。
- 明確鎖定套件版本,避免未來升級帶來的相容性問題。
- 將 API 金鑰與機密資訊抽離程式碼,使用環境變數或
.env檔管理。
完成環境設定後,你即可根據前述的 問答 Chain、向量搜尋、Agent 等功能,快速構建出符合業務需求的 AI 應用。祝你在 LangChain 的旅程中玩得開心、開發順利!