Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Semantik Çekirdek Vektör Deposu işlevselliği önizleme aşamasındadır ve mevcut sistemi bozabilecek değişiklikler gerektiren iyileştirmeler, sürümden önce sınırlı koşullarda ortaya çıkabilir.
Şu anda desteklenmiyor
Genel bakış
Faiss Vector Store bağlayıcısı, dış veritabanı kullanmadan verileri bellekte ve vektörlerde faiss dizininde depolayan Anlam Çekirdeği tarafından sağlanan bir Vektör Deposu uygulamasıdır. Arama için Faiss dizinlerini kullanırken kayıtların diğer bölümleri için InMemoryVectorCollection
kullanır.
Bu Vektör Deposu, prototip oluşturma senaryoları veya yüksek hızlı bellek içi işlemlerin gerekli olduğu durumlarda kullanışlıdır.
Bağlayıcı aşağıdaki özelliklere sahiptir.
Özellik Alanı | Destek |
---|---|
Koleksiyon şu öğeleri haritalıyor | Bellek içi ve Faiss indeksleri sözlüğü |
Desteklenen anahtar özellik türleri | Python belgelerindeki ayrıntılar için herhangi bir dict anahtarı olarak kabul edilebilecek öğeye bakın burada |
Desteklenen veri özelliği türleri | Herhangi bir tür |
Desteklenen vektör özelliği türleri |
|
Desteklenen dizin türleri | Düz (bkz. özel dizinler) |
Desteklenen uzaklık işlevleri |
|
Bir kayıtta birden çok vektör destekler | Evet |
is_filterable özelliği destekleniyor mu? | Evet |
is_full_text_searchable destekleniyor mu? | Evet |
Başlarken
Semantik Çekirdek paketini projenize ekleyin.
pip install semantic-kernel[faiss]
Aşağıdaki kod parçacıklarında, 'DataModel' adlı bir veri modeli sınıfı tanımladığınız varsayılır.
from semantic_kernel.connectors.faiss import FaissStore
vector_store = FaissStore()
vector_collection = vector_store.get_collection("collection_name", DataModel)
Adlandırılmış bir koleksiyona doğrudan başvuru oluşturmak mümkündür.
from semantic_kernel.connectors.faiss import FaissCollection
vector_collection = FaissCollection(DataModel, collection_name="collection_name")
Özel dizinler
Faiss bağlayıcısı Düz dizin türüyle sınırlıdır.
Faiss dizinlerinin karmaşıklığı göz önüne alındığında, faiss-gpu paketini oluşturma ve bu paketten dizinleri kullanma dahil olmak üzere kendi dizininizi (es) oluşturabilirsiniz. Bunu yaparken, vektör alanında tanımlanan tüm ölçümler yoksayılır. Veri modelinizde birden çok vektör varsa, yalnızca istediğiniz vektörler için özel dizinleri belirtebilir ve diğerleri için yerleşik dizinlerin otomatik olarak oluşturulmasına izin verebilirsiniz. Bu işlem, düz bir dizinle ve modelde tanımlanan ölçümle gerçekleştirilir.
Unutmayın, dizin eğitim gerektiriyorsa bunu da yaptığınızdan emin olun. Dizini her kullandığımızda dizinin is_trained
özniteliğinde bir denetim yapılır.
Dizin, koleksiyonun indexes
özelliğinde her zaman kullanılabilir (özel veya yerleşik). Dizin indeksini almak ve üzerinde istediğiniz işlemleri yapmak için bunu kullanabilirsiniz; böylece daha sonra eğitim gerçekleştirebilirsiniz. Sadece, herhangi bir CRUD işlemleri gerçekleştirmeden önce bunu yaptığınızdan emin olun.
Özel indeksinizi kullanmak için aşağıdakilerden birini kullanın:
import faiss
from semantic_kernel.connectors.faiss import FaissCollection
index = faiss.IndexHNSW(d=768, M=16, efConstruction=200) # or some other index
vector_collection = FaissCollection(
record_type=DataModel,
collection_name="collection_name",
indexes={"vector_field_name": index}
)
veya:
import faiss
from semantic_kernel.connectors.faiss import FaissCollection
index = faiss.IndexHNSW(d=768, M=16, efConstruction=200) # or some other index
vector_collection = FaissCollection(
record_type=DataModel,
collection_name="collection_name",
)
await vector_collection.ensure_collection_exists(
indexes={"vector_field_name": index}
)
# or when you have only one vector field:
await vector_collection.ensure_collection_exists(
index=index
)