Skip to content

LangExtract 開發者手冊Google AI 資料擷取完全指南

非官方社群指南。教你如何使用 LangExtract 結合 Gemini、OpenAI 與 Ollama 本地模型,從非結構化文本中精準擷取資料。

非官方指南

這是一個由開發者維護的社群指南 (Unofficial Guide),與 Google 官方無關。

為什麼需要這份指南?

官方文件雖然全面,但在本地模型適配(如 Llama 3/Mistral)以及實際場景落地上往往不夠詳細。

這份指南源於真實專案經驗,涵蓋了API 成本優化長文檔處理技巧以及企業級安全配置


快速開始 (Quick Start)

30秒內執行你的第一個擷取任務。

1. 安裝 (Install)

透過 pip 安裝。需要 Python 3.9+。

bash
pip install langextract

2. 設定 API Key

預設使用 Google Gemini。你需要從 Google AI Studio 獲取 Key。

bash
export LANGEXTRACT_API_KEY="your-api-key-here"

3. 第一個擷取範例 (Demo)

從一段簡單的文本中擷取角色資訊。需要提供 Few-shot Example。

python
import langextract as lx

# 定義擷取 prompt
prompt = "擷取文本中的角色及其情緒。"

# 提供 Few-shot Example 來引導模型
examples = [
    lx.data.ExampleData(
        text="羅密歐: 噓!那邊窗戶透過來的是什麼光?",
        extractions=[
            lx.data.Extraction(
                extraction_class="角色",
                extraction_text="羅密歐",
                attributes={"情緒狀態": "驚奇"}
            ),
        ]
    )
]

# 輸入文本
text = "茱麗葉望著星空,思念著羅密歐。"

# 執行擷取 (預設使用 Gemini Flash 模型)
result = lx.extract(
    text_or_documents=text,
    prompt_description=prompt,
    examples=examples,
    model_id="gemini-2.5-flash",
)

print(result.extractions)

LLM 設定指南

如何接入不同的模型?

本地模型 (Ollama) 🏠

隱私安全、零成本。推薦開發測試使用。

  1. 安裝 Ollama: 訪問 ollama.com 下載。
  2. 下載模型: ollama pull gemma2:2b
  3. 啟動伺服器: ollama serve
  4. 程式碼設定:
python
import langextract as lx

result = lx.extract(
    text_or_documents=text,
    prompt_description=prompt,
    examples=examples,
    model_id="gemma2:2b",  # 自動選擇 Ollama provider
    model_url="http://localhost:11434",
    fence_output=False,
    use_schema_constraints=False
)

OpenAI GPT-4 🧠

適合複雜推理任務。需要安裝依賴:pip install langextract[openai]

bash
export OPENAI_API_KEY="sk-..."
python
import os
import langextract as lx

result = lx.extract(
    text_or_documents=text,
    prompt_description=prompt,
    examples=examples,
    model_id="gpt-4o",  # 自動選擇 OpenAI provider
    api_key=os.environ.get('OPENAI_API_KEY'),
    fence_output=True,
    use_schema_constraints=False
)

注意

OpenAI 模型需要 fence_output=Trueuse_schema_constraints=False,因為 LangExtract 尚未為 OpenAI 實現 Schema 約束。

OpenAI 相容 API 🔌

LangExtract 支援所有 OpenAI 相容 API,包括 DeepSeek (V3/R1)通義千問 (Qwen)豆包 (Doubao) 等。

python
import langextract as lx

result = lx.extract(
    text_or_documents=text,
    prompt_description=prompt,
    examples=examples,
    model_id="deepseek-chat",
    api_key="your-api-key",
    language_model_params={
        "base_url": "https://api.deepseek.com/v1"  # 替換為供應商 URL
    },
    fence_output=True,
    use_schema_constraints=False
)

實戰案例

🏥 醫療病歷擷取

從病歷文本中擷取藥品名稱劑量服用頻率查看完整範例

📚 長文檔分塊處理

處理超過 token 限制的長文(如 PDF、書籍)。 查看完整範例

🇹🇼 多語言處理

處理中文、日文等非英語文本。 查看完整範例


常見問題 (FAQ)

Q: LangExtract 是免費的嗎? A: 函式庫本身是開源免費的(Apache 2.0 授權)。如果你使用 Gemini/OpenAI 的 API,需要支付 API 費用。使用本地 Ollama 則完全免費。

Q: 支援 Azure OpenAI 嗎? A: 支援。對於企業用戶,可以透過配置 Azure Endpoint 來確保資料合規性。

Q: 如何與 RAG (檢索增強生成) 結合? A: LangExtract 非常適合作為 RAG 流程的前處理工具。您可以將擷取出的是結構化資料存入 MilvusPinecone 向量資料庫,提升檢索精準度。

非官方指南。與 Google 無關。