跳轉至

建立 2026-09-15 更新 2026-09-15

Pinecone

Pinecone 是託管型向量資料庫:你負責 embedding 與資料模型,它負責索引、擴展與低延遲查詢。適合不想自架叢集、想把 RAG 儘快接到正式環境的團隊。

本頁只講上手時一定會碰到的 20%。示範與影片見 Pinecone 影音

什麼時候選它

  • 要雲端託管、少碰基礎設施。
  • 查詢要帶 metadata filter(例如語言、租戶、時間)。
  • 與 LangChain、LlamaIndex 等框架整合。

相對地,本機離線試作通常會先用 ChromaFAISS;已有 PostgreSQL 則看 pgvector

核心物件

名稱 作用
API key 連線憑證,放環境變數 PINECONE_API_KEY,不要寫進程式庫。
Index 一組同維度、同度量的向量集合。建立後 dimension/metric 不能改。
Namespace 同一個 index 裡的邏輯分區,常見用法是依租戶或資料來源切開。
Record id + 向量 + metadata。upsert 是「有則更新、無則插入」。

目前預設走 serverless index(指定 cloud/region 即可),不必自己管 replica。

最小流程

建立 index 時,dimension 必須等於嵌入模型輸出長度,metric 建議文字任務用 cosine

from pinecone import Pinecone, ServerlessSpec

pc = Pinecone(api_key="YOUR_API_KEY")

pc.create_index(
    name="quickstart",
    dimension=1536,
    metric="cosine",
    spec=ServerlessSpec(cloud="aws", region="us-east-1"),
)
index = pc.Index("quickstart")

index.upsert(
    vectors=[
        {"id": "1", "values": [0.1, 0.2, 0.3], "metadata": {"topic": "refund"}},
    ],
    namespace="docs",
)

result = index.query(
    vector=[0.1, 0.2, 0.3],
    top_k=3,
    include_metadata=True,
    namespace="docs",
    filter={"topic": {"$eq": "refund"}},
)

實際專案會先呼叫嵌入 API,再把回傳的 list 當 values。官方新版也支援在 Pinecone 端做 embedding 與 rerank,細節以 Quickstart 為準。

實務注意

  • Metadata 過濾發生在向量搜尋過程中,不是搜完再砍。filter 太嚴可能讓 top-k 變空,要在應用層處理。
  • Namespace 不會改變維度,只是隔離資料;計費與 index 設定仍共用。
  • SDK 版本更新快。若範例裡的 create_index 與你安裝的套件不符,以官方 Python SDK 文件為準。

官方學習資源

官方 YouTube

Pinecone 頻道 有 serverless 入門與 Quickstart 走讀。彙整見 Pinecone 影音

官方文件與 Learn

文件 QuickstartPinecone Learn(含 LangChain/RAG 系列)。目前沒有獨立的原廠證照考試,Learn 與官方影片就是主要路徑。