Weaviate: Database Vektor dengan AI Modules Terintegrasi

# Weaviate: Database Vektor dengan AI Modules Terintegrasi Weaviate adalah database vektor open-source yang dirancang untuk menyimpan objek data beserta vektor embeddingnya. Yang membuat Weaviate uni...

By Ruby Abdullah · · tutorial
WeaviateVector DatabaseSemantic SearchGraphQLPython

Weaviate: Database Vektor dengan AI Modules Terintegrasi

Weaviate adalah database vektor open-source yang dirancang untuk menyimpan objek data beserta vektor embeddingnya. Yang membuat Weaviate unik adalah kemampuannya mengintegrasikan AI modules langsung ke dalam database, memungkinkan auto-vectorization, pencarian semantik, dan bahkan generative AI tanpa infrastruktur tambahan.

Dalam tutorial ini, kita akan mempelajari cara menggunakan Weaviate mulai dari instalasi, definisi schema, pencarian vektor dan hybrid, hingga membangun mesin pencari produk semantik dengan auto-vectorization dan jawaban generatif.

Mengapa Weaviate?

Weaviate menawarkan beberapa keunggulan dibanding database vektor lainnya:

  • AI Modules Terintegrasi: Vectorizer dan generative modules langsung di dalam database
  • Auto-Vectorization: Data otomatis di-vektorisasi saat dimasukkan tanpa preprocessing manual
  • Hybrid Search: Kombinasi pencarian vektor (semantic) dan keyword (BM25)
  • GraphQL API: Interface query yang fleksibel dan powerful
  • Multi-Tenancy: Isolasi data untuk aplikasi multi-tenant
  • Skalabilitas: Mendukung horizontal scaling untuk dataset besar
  • Ekosistem Integrasi: Kompatibel dengan LangChain, LlamaIndex, dan framework AI lainnya

Instalasi

Menggunakan Docker (Rekomendasi untuk Development)

Buat file docker-compose.yml:

version: '3.4'

services:

weaviate:

image: cr.weaviate.io/semitechnologies/weaviate:1.25.0

restart: on-failure:0

ports:

  • "8080:8080"
  • "50051:50051"
environment:

QUERYDEFAULTSLIMIT: 25

AUTHENTICATIONANONYMOUSACCESSENABLED: 'true'

PERSISTENCEDATAPATH: '/var/lib/weaviate'

DEFAULTVECTORIZERMODULE: 'text2vec-openai'

ENABLEMODULES: 'text2vec-openai,generative-openai'

OPENAIAPIKEY: 'sk-your-openai-api-key'

CLUSTERHOSTNAME: 'node1'

volumes:

  • weaviatedata:/var/lib/weaviate

volumes:

weaviatedata:

Jalankan Weaviate:

docker-compose up -d

Menggunakan Weaviate Cloud (WCD)

Untuk deployment produksi, Anda bisa menggunakan Weaviate Cloud:

  • Buat akun di console.weaviate.cloud
  • Buat cluster baru
  • Salin URL cluster dan API key
  • Instalasi Python Client

    pip install weaviate-client
    

    Koneksi ke Weaviate

    import weaviate
    

    from weaviate.classes.init import Auth

    Koneksi ke instance lokal (Docker)

    client = weaviate.connecttolocal()

    Koneksi ke Weaviate Cloud

    client = weaviate.connecttoweaviatecloud(

    clusterurl="https://your-cluster.weaviate.network",

    authcredentials=Auth.apikey("your-wcd-api-key"),

    headers={

    "X-OpenAI-Api-Key": "sk-your-openai-api-key"

    }

    )

    Verifikasi koneksi

    print(client.isready()) # True jika berhasil

    Schema Definition

    Schema di Weaviate mendefinisikan struktur data, termasuk properti dan konfigurasi vectorizer.

    Membuat Collection (Class)

    import weaviate
    

    import weaviate.classes.config as wc

    client = weaviate.connecttolocal()

    Membuat collection sederhana

    client.collections.create(

    name="Article",

    description="Koleksi artikel blog",

    vectorizerconfig=wc.Configure.Vectorizer.text2vecopenai(

    model="text-embedding-3-small",

    ),

    generativeconfig=wc.Configure.Generative.openai(

    model="gpt-4",

    ),

    properties=[

    wc.Property(

    name="title",

    datatype=wc.DataType.TEXT,

    description="Judul artikel",

    ),

    wc.Property(

    name="content",

    datatype=wc.DataType.TEXT,

    description="Isi artikel",

    ),

    wc.Property(

    name="author",

    datatype=wc.DataType.TEXT,

    description="Nama penulis",

    Artikel Terkait

    Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI

    Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI Qdrant adalah vector database performa tinggi yang dirancang ...

    Tutorial Sentence Transformers: Embeddings, Similarity, dan Reranker

    Sentence Transformers: Embedding, Kemiripan Semantik, dan Reranker Sentence Transformers (sering disebut SBERT) adalah p...

    LanceDB: Database Vektor Serverless untuk Aplikasi AI Multimodal

    LanceDB: Database Vektor Serverless untuk Aplikasi AI Multimodal Database vektor telah menjadi komponen fundamental dala...

    Tutorial Milvus: Distributed Vector Database untuk AI

    Tutorial 10: Milvus - Database Vektor Terdistribusi untuk AI Daftar Isi Pendahuluan Prasyarat Arsitektur Milvus [Instala...