本文 AI 產出,尚未審核

LangChain 安裝與環境設定

單元:安裝與環境設定
主題:安裝 LangChain 與相依套件


簡介

LLM(大型語言模型)RAG(檢索增強生成) 的應用日益普及的今天,LangChain 成為了串接模型、工具與資料的核心框架。無論是要快速打造聊天機器人、文件問答系統,還是建置企業內部的知識庫,LangChain 都提供了高度模組化且可擴充的介面。

然而,許多開發者在第一步「安裝」時往往會碰到相依套件版本衝突、環境隔離不足等問題,導致後續開發卡關。本文將從 Python 虛擬環境的建立LangChain 本體與常用外掛的安裝,一步步帶領讀者完成安全、可重現的開發環境,為後續的應用奠定穩固基礎。


核心概念

1. 為什麼要使用虛擬環境?

  • 相依管理:不同專案可能需要不同版本的 openaitorch 等套件,虛擬環境可以避免全域衝突。
  • 可重現性:將套件版本寫入 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-4gpt-3.5-turbo
langchain-aws AWS Bedrock、SageMaker 等服務的整合 企業雲端部署
langchain-experimental 尚在測試階段的功能(如自訂工具) 前沿功能探索

建議:在專案初期先安裝 langchainlangchain-community,之後根據需求再加入特定服務的套件。

3. 安裝流程總覽

  1. 建立與啟用 虛擬環境
  2. 更新 pipsetuptoolswheel
  3. 安裝 LangChain 主套件
  4. 安裝 相依的 LLM 客戶端(如 openaianthropic)。
  5. 如需向量資料庫,安裝對應的 client 套件(例如 chromadbpinecone-client)。
  6. 使用 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.txtpip-tools 產生 requirements.in / requirements.txt
忘記啟動虛擬環境 直接在全域環境執行,容易找不到安裝的套件 每次開發前先 source .venv/bin/activate(或 conda activate …

額外工具

  • pre-commit:在提交前自動檢查格式與安全性。
  • ruffflake8:靜態程式碼分析,避免常見錯誤。
  • black:統一程式碼風格,降低團隊摩擦。

實際應用場景

  1. 企業內部文件問答

    • 使用 LangChain 讀取公司手冊、PDF,透過向量搜尋(Chroma / Pinecone)取得相關段落,再交給 LLM 產生自然語言答案。
  2. 多模態聊天機器人

    • 結合 langchain-aws 呼叫 Bedrock 多模型(文字、圖像),提供客戶支援或產品導覽。
  3. 自動化程式碼生成工具

    • langchainAgent 功能串接 IDE 插件,根據開發者的自然語言需求即時產生程式碼片段。
  4. 教育平台的互動教學

    • 透過 LLMChain 建立課程引導流程,結合 Tool(如搜尋 API)即時提供參考資料與練習解答。
  5. 資料分析自動化

    • 使用 langchain 將分析需求轉換為 Python Pandas / SQL 指令,並回傳結果給使用者。

總結

LangChain 為 LLM 應用提供了統一、可組合的開發介面,而正確的安裝與環境設定則是所有後續功能得以順利運作的基礎。本文從虛擬環境的建立、套件的升級與安裝、到範例程式碼與最佳實踐,提供了完整的上手流程。只要遵循以下三個要點,就能在專案中穩定使用 LangChain:

  1. 使用虛擬環境,確保相依管理與安全性。
  2. 明確鎖定套件版本,避免未來升級帶來的相容性問題。
  3. 將 API 金鑰與機密資訊抽離程式碼,使用環境變數或 .env 檔管理。

完成環境設定後,你即可根據前述的 問答 Chain向量搜尋Agent 等功能,快速構建出符合業務需求的 AI 應用。祝你在 LangChain 的旅程中玩得開心、開發順利!