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.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Fonksiyon, AI_GENERATE_EMBEDDINGS veritabanında saklanan önceden oluşturulmuş yapay zekâ model tanımını kullanarak gömülemeler (vektör dizileri) oluşturur.
Sözdizimi
Transact-SQL söz dizimi kuralları
AI_GENERATE_EMBEDDINGS ( source USE MODEL model_identifier [ PARAMETERS optional_json_request_body_parameters ] )
Tartışmalar
kaynak
Herhangi bir karakter tipinin ifadesi, örneğin nvarchar, varchar, nchar veya char.
model_identifier
Gömülü vektör dizisi oluşturmak için kullanılan bir tür olarak tanımlanan harici modelinEMBEDDINGS adı.
Daha fazla bilgi için bkz. CREATE EXTERNAL MODEL.
optional_json_request_body_parameters
Geçerli bir JSON formatlı ek parametreler listesi. Fonksiyon, bu parametreleri harici modelin uç nokta konumuna göndermeden önce REST isteği mesaj gövdesine ekler. Bu parametreler, harici modelin uç noktasının desteklediği ve kabul ettiği özelliklere bağlıdır.
Dönüş türleri
AI_GENERATE_EMBEDDINGS , satırları JSON olarak döndürülen, oluşturulan ekleme vektör dizileri olan tek sütunlu bir tablo döndürür.
Dönüş biçimi
Döndürülen JSON'un biçimi aşağıdaki gibidir:
[
0.0023929428,
0.00034713413,
-0.0023142276,
-0.025654867,
-0.011492423,
0.0010358924,
-0.014836246,
0.0035484824,
0.000045630233,
-0.027581815,
0.023816079,
0.005012586,
-0.027732948,
-0.010088143,
...
-0.014571763
]
Açıklamalar
AI_GENERATE_EMBEDDINGS , Azure SQL Yönetilen Örneği'nde Always-up-to-dategüncelleştirme ilkesiyle kullanılabilir.
Önkoşullar
Kullanabilmek AI_GENERATE_EMBEDDINGSiçin, aşağıdaki ön koşulları karşıladığınızdan emin olun:
Veritabanında aşağıdaki komutla etkinleştirin
sp_invoke_external_endpoint:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Uyarı
Azure SQL Veritabanı ve Fabric'teki SQL veritabanında sistem
external rest endpoint enabledyapılandırma seçeneği varsayılan olarak etkinleştirilmiştir.
Gömülü uç noktaları oluşturma hakkında daha fazla bilgi için, Azure Yapay Zeka Atölyesi Models, OpenAI veya Ollama'da Azure OpenAI sürecini inceleyin.
- Doğru hibeler, roller ve izinler aracılığıyla erişilebilen türden
EMBEDDINGSharici bir model oluşturun.
İsteğe bağlı parametreler
Embeddings isteği mesajının gövdesine bir endpoint parametresi eklemeniz gerektiğinde parametreyi optional_json_request_body_parameters kullanın AI_GENERATE_EMBEDDINGS . Isteğe bağlı bir parametre eklemek, model tanımı o parametreyi içeriyorsa çalışma zamanında değeri geçersiz kılar.
Örneğin, harici model 1.536 dimensions olarak ayarlanmış parametreyi içeriyorsa, bu parametreyi çalışma zamanında yeni bir değerle iletebilirsiniz optional_json_request_body_parameters .
Aşağıdaki örnekte, modeldeki dimensions parametre geçersiz kılınmış:
json_object("dimensions":755)
Geçtiğiniz optional_json_request_body_parameters değer geçerli JSON olmalıdır.
Genişletilmiş Olaylar (XEvent)
AI_GENERATE_EMBEDDINGS sorun giderme için etkinleştirebileceğiniz genişletilmiş bir olay (ai_generate_embeddings_summary) var. REST talebi ve yanıtıyla ilgili durum kodu, karşılaşılan hatalar ve kullanılan model adı gibi bilgiler içerir. Genişletilmiş olay external_rest_endpoint_summary , REST isteklerinde sorun giderme ve hata ayıklama konusunda yardımcı olabilecek ek bilgiler içerir.
Örnekler
A. SELECT deyimiyle ekleme oluşturma
Aşağıdaki örnek, bir select ifadesi ile fonksiyonun nasıl kullanılacağını ve sonuç veren bir JSON dizisi elde edileceğini gösterir AI_GENERATE_EMBEDDINGS .
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel)
FROM myTable;
B. AI_GENERATE_CHUNKS kullanarak SELECT deyimiyle eklemeler oluşturma
Aşağıdaki örnek, fonksiyonun AI_GENERATE_EMBEDDINGSAI_GENERATE_CHUNKS fonksiyonuyla nasıl kullanılacağını, belirli parça boyutlarında bölünmüş metni vektör dizisi sonuçlarını döndüren bir select ifadesi ile nasıl iletebileceğinizi gösterir.
SELECT id,
title,
large_text,
AI_GENERATE_EMBEDDINGS(c.chunk_text USE MODEL MyAzureOpenAIModel)
FROM myTable
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = large_text,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 10
) AS c;
C. Tablo güncelleştirmesi ile ekleme oluşturma
Aşağıdaki örnekte, vektör dizisi sonuçlarını bir vektör veri türü sütununa döndürmek için işlevin tablo güncelleştirme deyimiyle nasıl kullanılacağı AI_GENERATE_EMBEDDINGS gösterilmektedir.
UPDATE t
SET myEmbeddings = AI_GENERATE_EMBEDDINGS(t.text USE MODEL MyAzureOpenAIModel)
FROM myTable AS t;
D. SELECT deyimi ve PARAMETERS ile eklemeler oluşturma
Aşağıdaki örnekte işlevin AI_GENERATE_EMBEDDINGS select deyimiyle nasıl kullanılacağı ve isteğe bağlı parametrelerin uç noktaya nasıl geçirildiği gösterilmektedir ve bu da vektör dizisi sonuçlarını döndürür.
DECLARE @params JSON = N'{"dimensions":768}'
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS @params)
FROM myTable;
E. PARAMETRELER seçeneğiyle retry_count yeniden göme üretimi
Ekleme çağrısı geçici sorunları belirten HTTP durum kodlarıyla karşılaşırsa, isteği otomatik olarak yeniden deneyecek şekilde yapılandırabilirsiniz.
Deneme sayısını belirtmek için, seçeneğe aşağıdaki JSON PARAMETERS ekleyin. Bu değer, sıfır (0) ile on (10) arasında pozitif tam sayı olmalı ve NULLolamaz.
Uyarı
Sorguda retry_count bir AI_GENERATE_EMBEDDINGS değer belirtilirse, harici modelin yapılandırmasında (tanımlanmışsa) değeri retry_count geçersiz kılar.
DECLARE @params JSON = N'{"sql_rest_options":{"retry_count":10}} '
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS @params)
FROM myTable;
F. Model oluşturma, parçalama ve göme oluşturma ile tam bir örnek
Aşağıdaki örnek, Azure OpenAI API Anahtarı kullanarak verilerinizi yapay zekaya hazır hale getirmek için uçtan uca bir süreci göstermektedir:
HARICI MODEL OLUŞTUR kullanarak gömülü modelinizi kaydedin ve erişilebilir hale getirin.
Veri setini AI_GENERATE_CHUNKS ile daha küçük parçalara ayırın, böylece veri modelin bağlam penceresine uyur ve geri alma doğruluğunu artırır.
Gömütmeleri kullanarak
AI_GENERATE_EMBEDDINGSüretin.Sonuçları vektör veri tipiyle bir tabloya ekleyin.
Uyarı
<password> geçerli bir parolayla değiştirin.
Veritabanı sunucusunda harici REST uç noktası çağrısını etkinleştirin:
EXECUTE sp_configure 'external rest endpoint enabled', 1;
RECONFIGURE WITH OVERRIDE;
GO
Bir veritabanı ana anahtarı oluşturun:
IF NOT EXISTS (SELECT *
FROM sys.symmetric_keys
WHERE [name] = '##MS_DatabaseMasterKey##')
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<password>';
END
GO
Azure OpenAI'ye erişim kimlik bilgileri oluşturun ve bir anahtar kullanın:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'HTTPEndpointHeaders', secret = '{"api-key":"YOUR_AZURE_OPENAI_KEY"}';
GO
Azure OpenAI embeddings REST endpoint'i çağırmak için bir dış model oluştur:
CREATE EXTERNAL MODEL MyAzureOpenAIModel
WITH (
LOCATION = 'https://my-azure-openai-endpoint.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2023-05-15',
API_FORMAT = 'Azure OpenAI',
MODEL_TYPE = EMBEDDINGS,
MODEL = 'text-embedding-ada-002',
CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);
Metin içeren bir tablo oluşturun ve veri ekleyin:
CREATE TABLE textchunk
(
text_id INT IDENTITY (1, 1) PRIMARY KEY,
text_to_chunk NVARCHAR (MAX)
);
GO
INSERT INTO textchunk (text_to_chunk)
VALUES ('All day long we seemed to dawdle through a land which was full of beauty of every kind. Sometimes we saw little towns or castles on the top of steep hills such as we see in old missals; sometimes we ran by rivers and streams which seemed from the wide stony margin on each side of them to be subject to great floods.'),
('My Friend, Welcome to the Carpathians. I am anxiously expecting you. Sleep well to-night. At three to-morrow the diligence will start for Bukovina; a place on it is kept for you. At the Borgo Pass my carriage will await you and will bring you to me. I trust that your journey from London has been a happy one, and that you will enjoy your stay in my beautiful land. Your friend, DRACULA')
GO
Parçalanmış metin ve vektör gömmelerini tutmak için yeni bir tablo oluşturun:
CREATE TABLE text_embeddings
(
embeddings_id INT IDENTITY (1, 1) PRIMARY KEY,
chunked_text NVARCHAR (MAX),
vector_embeddings VECTOR(1536)
);
Parçalanmış metin ve vektör gömmelerini text_embeddings tablosuna ve kullanarak AI_GENERATE_CHUNKSAI_GENERATE_EMBEDDINGSekleyin:
INSERT INTO text_embeddings (chunked_text, vector_embeddings)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyAzureOpenAIModel)
FROM textchunk AS t
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = t.text_to_chunk,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 100
) AS c;
Sonuçları görüntüleme
SELECT *
FROM text_embeddings;