技術筆記 / 資料庫

🚀 PGVector 安裝與使用教學|超快懶人包版(含 AWS RDS PostgreSQL)

✨ PGVector 是什麼?


🛠 安裝 PGVector

如果是自架 PostgreSQL

  1. 安裝:

    bash sudo apt install postgresql-server-dev-14 # 依你版本 git clone https://github.com/pgvector/pgvector.git cd pgvector make sudo make install

  2. 在資料庫執行:

    sql CREATE EXTENSION IF NOT EXISTS vector;


如果是 AWS RDS PostgreSQL / Aurora

✅ AWS 已原生支援 pgvector(無需安裝套件)
版本要求:

只需連接資料庫,執行:

CREATE EXTENSION IF NOT EXISTS vector;

📦 建立向量表格範例

CREATE TABLE documents (
    id VARCHAR(50) PRIMARY KEY,
    content TEXT,
    embedding VECTOR(1536)  -- 以 OpenAI Ada 模型為例
);

🔎 查詢向量相似度

以 Cosine 相似度排序:

SELECT id, content
FROM documents
ORDER BY embedding <=> ARRAY[0.1, 0.2, 0.3, ..., 0.1536]
LIMIT 5;

⚡ 加速搜尋(建立 HNSW Index)

建議加速大資料集搜尋:

CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);

🐍 Python 快速串接範例(psycopg3)

import psycopg
import openai

openai.api_key = "your-api-key"

def generate_embedding(text):
    response = openai.embeddings.create(
        input=text,
        model="text-embedding-ada-002"
    )
    return response.data[0].embedding

with psycopg.connect("postgresql://user:password@host:5432/dbname") as conn:
    with conn.cursor() as cur:
        embedding = generate_embedding("這是一段測試文字")
        cur.execute(
            "INSERT INTO documents (id, content, embedding) VALUES (%s, %s, %s)",
            ("your_id", "這是一段測試文字", embedding)
        )
    conn.commit()

🎯 小結

特色 說明
整合性高 在原有 PostgreSQL 資料庫直接操作
相容性好 支援標準 SQL 語法
雲端友善 AWS RDS / Aurora PostgreSQL 完美支援
效能擴充 可用 HNSW Index 加速近似最近鄰搜尋

📚 延伸應用


在 GitHub 看原文