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.
Uygulamalarınızda anlamsal aramayı ve benzerlik tabanlı almayı etkinleştirmek için AI Search dizinlerini Databricks Apps kaynakları olarak ekleyin. AI Search indeksleri, yüksek boyutlu vektör gömmelerini depolar ve sorgular; erişim destekli üretim (RAG), anlamsal arama ve öneri sistemleri gibi kullanım senaryolarını destekler.
Databricks AI Search eskiden Databricks Vektör Arama olarak biliniyordu.
Yetki gereksinimleri
Bir Yapay Zekâ Arama dizinine erişmek için uygulamanın hizmet sorumlusu kimliğinin üst katalog üzerinde USE CATALOG ayrıcalığına, üst şema üzerinde USE SCHEMA ayrıcalığına ve dizin üzerinde SELECT ayrıcalığına sahip olması gerekir. Dizin kaynağını eklediğinizde, Azure Databricks uygulamanın hizmet sorumlusuna otomatik olarak bu ayrıcalıkları verir.
Bu otomatik verme işleminin başarılı olması için her ayrıcalık için aşağıdakilerden birinin geçerli olması gerekir:
-
İçin
USE CATALOG: Ya tüm hesap kullanıcılarının katalog üzerindeUSE CATALOGayrıcalıkları vardır ya da sizin katalog üzerindeMANAGEayrıcalığınız vardır. -
için
USE SCHEMA: Ya tüm hesap kullanıcılarının şema üzerindeUSE SCHEMAyetkisi vardır, ya da sizin şema üzerindeMANAGEyetkiniz vardır. -
için
SELECT: Ya tüm hesap kullanıcılarının dizindeSELECTayrıcalığı vardır ya da sizin dizindeMANAGEayrıcalığınız vardır.
Eğer indeks, sağlanan aktarım hızında veya özel sunum uç noktasında Databricks tarafından yönetilen bir gömme modeli kullanıyorsa, bu uç noktayı Can query izniyle bir uygulama kaynağı olarak ekleyin ve ayrıca ayrı bir sorgu gömme uç noktası varsa onu da ekleyin (model_endpoint_name_for_query).
get_index() bu uç noktaları okur ve erişim olmadan başarısız olur. Token başına ödeme Foundation Model API'lerinin uç noktaları, örneğin databricks-gte-large-en, hesabınız foundation modellerini Unity Catalog izinleriyle kısıtlamıyorsa uygulama kaynağına ihtiyaç duymaz; bu durumda hizmet yöneticisi model üzerinde EXECUTE iznine ihtiyaç duyar.
Bkz. Hizmet sorumlusu kurma.
Bu izinlerle AI Search dizinlerini sorgulama hakkında daha fazla bilgi için bkz. AI Search dizinini sorgulama.
Bkz Unity Kataloğu ayrıcalıkları referansı.
AI Search dizin kaynağı ekleme
AI Search dizinini kaynak olarak eklemeden önce uygulama kaynağı önkoşullarını gözden geçirin.
- Uygulama oluştururken veya düzenlerken Uygulama kaynakları bölümünde + Kaynak> ekleVektör arama dizini'ne tıklayın.
- Çalışma alanınızdaki kullanılabilir dizinlerden bir Yapay Zeka Arama dizini seçin. Dizin Unity Kataloğu'nda zaten mevcut olmalıdır.
- Uygulamanız için izin düzeyini seçin:
- Şu seçeneği belirleyebilirsiniz: Uygulama, benzerlik aramaları için yapay zeka arama dizinini sorgulama izni verir. Ayrıcalığına SELECT karşılık gelir.
- (İsteğe bağlı) Uygulama yapılandırmanızda dizine nasıl başvuracağınız için özel bir kaynak anahtarı belirtin. Varsayılan anahtardır
vector-search-index.
Uyarı
AI Arama dizinleri, TABLE_ONLINE_VECTOR_INDEX_REPLICA veya TABLE_ONLINE_VECTOR_INDEX_DIRECT türündeki Unity Catalog tablolarıdır. Bir Yapay Zeka Arama dizini seçtiğinizde, semantik arama işlemlerini destekleyen özel olarak yapılandırılmış bir tablo seçersiniz.
Ortam değişkenleri
Bir uygulamayı bir AI Search dizin kaynağıyla dağıttığınızda Azure Databricks, valueFrom alanını kullanarak başvurabileceğiniz ortam değişkenleri aracılığıyla üç düzeyli tam adı sunar.
Örnek yapılandırma:
env:
- name: VECTOR_SEARCH_INDEX
valueFrom: vector-search-index # Use your custom resource key if different
Uygulamanızda dizini kullanma:
Python SDK ve uygulamanın hizmet sorumlusu kimlik bilgileriyle dizini databricks-ai-search sorgulayın. Çalışma alanı indeks URL gereksinimlerini karşıladığında, SDK sorguları indeks URL'sine gönderir; bu URL, hedef saniye başına sorgu sayısı (QPS) olan bir uç noktanın ekstra kapasitesini kullanabilir.
WorkspaceClient().vector_search_indexes.query_index ile gönderilen sorgular, birkaç on QPS ile sınırlandırılan workspace sorgu URL'sini kullanır.
Uygulamanızın bağımlılıklarına databricks-ai-search sürüm 0.81 veya üzerini ekleyin. Bkz. Databricks uygulaması için bağımlılıkları yönetme.
import os
from databricks.ai_search.client import AISearchClient
# DATABRICKS_HOST can be set without a scheme, and the SDK requires one.
host = os.environ["DATABRICKS_HOST"]
if not host.startswith(("https://", "http://")):
host = f"https://{host}"
# Pass the app's service principal credentials so queries use the index URL.
client = AISearchClient(
workspace_url=host,
service_principal_client_id=os.environ["DATABRICKS_CLIENT_ID"],
service_principal_client_secret=os.environ["DATABRICKS_CLIENT_SECRET"],
)
# Create the index object when the app starts and reuse it for every query.
index = client.get_index(index_name=os.environ["VECTOR_SEARCH_INDEX"])
results = index.similarity_search(
query_text="What is machine learning?", # Or pass query_vector for self-managed embeddings.
columns=["id", "text"],
num_results=10,
)
# Each row lists values in the same order as the manifest columns.
column_names = [column["name"] for column in results["manifest"]["columns"]]
for row in results["result"]["data_array"]:
print(dict(zip(column_names, row)))
columns öğesini indeksinizin sütunlarıyla değiştirin. Daha yüksek verimliliğe ulaşmak için, standart bir uç noktada hedef QPS ayarlayın.
Daha fazla bilgi için bkz. Kaynaklara erişmek için ortam değişkenlerini kullanma.
AI Search dizin kaynağını kaldırma
Bir uygulamadan yapay zeka arama dizini kaynağını kaldırdığınızda, uygulamanın hizmet sorumlusu dizine erişimi kaybeder. Dizinin kendisi değişmeden kalır ve uygun izinlere sahip diğer kullanıcılar ve uygulamalar için kullanılabilir olmaya devam eder.
En iyi yöntemler
AI Search dizin kaynaklarıyla çalışırken aşağıdakileri göz önünde bulundurun:
- Dizin diğer tablolara başvuruyorsa uygulamanın hizmet sorumlusunun temel veri kaynaklarına erişimi olduğundan emin olun.
- Yanıt sürelerinin düşmesi durumunda sorgu performansını izleyin ve dizin yapılandırmasını veya ekleme modellerini ayarlayın.
- Eklemeleri kaynak verilerle eşitlenmiş olarak tutmak için dizin yenileme zamanlamalarını göz önünde bulundurun.
- Ekleme modelinize göre uygun benzerlik ölçümlerini (kosinüs, öklid, noktalı ürün) kullanın.
- Bir uç nokta, indeksleri sorgulamaya hazır olmadan önce çevrimiçi olabilir. Bir indeksi engellemeden denetlemek için,
status'ün döndürdüğüreadyalanındaindex.describe()vedetailed_state'i okuyun. Bir indeksi beklemek için, her 30 saniyede bir yoklama yapan ve indeks çevrimdışı olursa veya zaman aşımı dolarsa hata verenindex.wait_until_ready()çağırın.