Vector Databases

Weaviate Çok Kiracılı RAG: Satır Düzeyli Güvenlik ve İzole Endeksler

Kurumsal SaaS platformları için Geri Getirme Destekli Üretim (RAG) sistemleri oluşturmak benzersiz bir zorluk sunar: veri izolasyonu. Tek kiracılı uygulamaların aksine, çok kiracılı ortamlar müşteriler arasında sıkı sınırlar gerektirir. Weaviate yerel çok kiracılık sunsa da, basitçe parçaları kiracıya göre ayırmak çoğu zaman kurumsal düzeyde güvenlik için yeterli değildir. Bu yazı, Weaviate'ın izole endekslerini uygulama düzeyindeki Satır Düzeyli Güvenlik (RLS) ile nasıl birleştirerek güvenli ve ölçeklenebilir bir RAG mimarisi oluşturulacağını inceliyor.

Weaviate Çok Kiracılığını Anlama

Weaviate'ın çok kiracılık özelliği, farklı kiracıların verilerini tek bir koleksiyonda saklamanıza, ancak fiziksel veya mantıksal izolasyonu korumanıza olanak tanır. Her kiracının kendi vektör seti vardır, bu da etkili olarak alt koleksiyonlar oluşturur. Bu, her müşteri için ayrı bir koleksiyon oluşturmaya kıyasla kaynak yükünü azaltır ancak erişim kontrolünün dikkatli yönetilmesini gerektirir.

Temel avantaj performansın artmasıdır. Sorgular belirli kiracılara daraltılır, bu da arama işlemlerinin yalnızca ilgili veri dilimini taramasını sağlar. Ancak bu, bir kiracının içindeki kullanıcı düzeyindeki izinleri otomatik olarak ele almaz. İşte Satır Düzeyli Güvenlik devreye girer.

Meta Veri Filtreleme ile Satır Düzeyli Güvenlik Uygulama

Weaviate'ta RLS genellikle meta veri filtreleme yoluyla uygulanır. Her vektöre bölüm, rol veya proje_id gibi ek öznitelikler ekleyerek, bir kullanıcının hangi belgeleri geri getirebileceğini sınırlayabilirsiniz. Örneğin, bir "Finans Müdürü" yalnızca bölüm: finans etiketli belgeleri görebilirken, bir "Mühendis" bölüm: mühendislik etiketli belgeleri görür.

RLS'yi desteklemek için verilerinizi nasıl yapılandırabileceğiniz aşağıda gösterilmektedir:

import weaviate
import json

client = weaviate.Client("http://localhost:8080")

# RLS ile ilgili meta verilere sahip bir belge tanımlayın
document = {
    "title": "Q3 Financial Report",
    "content": "Detailed analysis of Q3 earnings...",
    "tenant": "acme-corp",
    "department": "finance",
    "clearance_level": "senior"
}

# Uygun kiracı bağlamıyla Weaviate'a ekleyin
client.data_object.create(
    data=doc,
    collection="RAG_Documents",
    tenant="acme-corp"
)

Güvenli Sorgu Hattını Oluşturma

Bir RAG sorgusu gerçekleştirirken, iki katman filtreleme uygulamalısınız: kiracı izolasyonu ve satır düzeyli güvenlik. Uygulama katmanı, kullanıcının bağlamını kesmeli ve filtre sorgusunu dinamik olarak oluşturmalıdır.

def secure_rag_query(client, user_context, query_text):
    tenant = user_context["tenant"]
    department = user_context["department"]
    
    # RLS için filtreyi oluşturun
    rls_filter = {
        "where": {
            "path": ["department"],
            "operator": "Equal",
            "valueText": department
        }
    }

    # Kiracı ve filtre ile hibrit aramayı gerçekleştirin
    results = client.query.get(
        collection="RAG_Documents",
        properties=["title", "content"],
        limit=5
    ).with_tenant(tenant).with_where_filter(rls_filter).with_nearest_neighbor(
        query_text
    ).do()

    return results

Kurumsal Dağıtım İçin En İyi Uygulamalar

Öncelikle, istemci tarafı filtrelerine asla güvenmeyin. RLS'yi her zaman Weaviate Python veya Go istemcisi kullanarak sunucu tarafında uygulayın. İkincisi, çakışmaları önlemek için kiracı kimliklerinde tutarlı adlandırma kuralları kullanın. Üçüncüsü, karmaşık filtrelerin performansı etkileyebileceğinden sorgu gecikmesini izleyin; gerekirse filtrelenmiş alt kümeler için gömme (embedding) değerlerini önceden hesaplamayı düşünün. Son olarak, denetim uyumluluğu için hangi belgelerin hangi kullanıcılar tarafından erişildiğini izlemek için günlük kaydı (logging) uygulayın.

Sonuç

Weaviate'ın çok kiracılık özelliğini sağlam Satır Düzeyli Güvenlik ile birleştirmek, kurumsal RAG sistemleri için güçlü bir temel sağlar. Endeksleri kiracı başına izole ederek ve meta veriler aracılığıyla ince tanimli erişim kontrolü uygulayarak, işinizle birlikte ölçeklenen kişiselleştirilmiş ve güvenli bilgi geri getirme sunabilirsiniz. Yapay zeka uygulamaları kurumsal operasyonların merkezine daha fazla yerleştikçe, bu güvenlik kalıplarını ustalaşmak artık isteğe bağlı değil—temel bir zorunluluktur.

Share: