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 Database
SQL database in Microsoft Fabric
AI_GENERATE_EMBEDDINGS , veritabanında depolanan önceden oluşturulmuş bir yapay zeka modeli tanımı kullanarak eklemeler (vektör dizileri) oluşturan yerleşik bir işlevdir.
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 türünün 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
Ek parametrelerin geçerli bir JSON biçimli listesi. Bu parametreler, harici modelin uç nokta konumuna gönderilmeden önce REST isteği mesaj gövdesine eklenir. 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
Önkoşullar
Kullanmak AI_GENERATE_EMBEDDINGSiçin aşağıdaki ön koşulları karşılamanız gerekir:
Veritabanında aşağıdaki komutla etkinleştirin
sp_invoke_external_endpoint:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Doğru hibeler, roller ve/veya izinlerle erişilebilen bu tipin harici bir modelini
EMBEDDINGSoluşturun.
İsteğe bağlı parametreler
parametresi optional_json_request_body_parametersAI_GENERATE_EMBEDDINGS , ekleme istekleri iletisinin gövdesine bir uç nokta parametresi eklenmesi gerektiğinde kullanılır. İsteğe bağlı bir parametre eklemek, model tanımında tanımlanmışsa çalışma zamanında değeri geçersiz kılar.
Örneğin, harici model 1536 olarak ayarlanmış için dimensions parametreyi içeriyorsa, bu parametreyi optional_json_request_body_parameters at çalışma zamanında yeni bir değerle geçirerek burada görülen yeni bir değer ile aktarılır: json_object("dimensions":755), modeldeki dimensions parametre geçersiz hale getirilir.
geçirilen optional_json_request_body_parameters değer geçerli bir JSON olmalıdır.
Ekleme uç noktaları oluşturma
Gömülü uç noktaları oluşturma hakkında daha fazla bilgi için, Azure AI Foundry Models, OpenAI veya Ollama'da Azure OpenAI sürecini inceleyin.
Genişletilmiş Olaylar (XEvent)
AI_GENERATE_EMBEDDINGS sorun giderme için etkinleştirilebilen genişletilmiş bir olayı (ai_generate_embeddings_summary) vardır. REST talebi ve yanıtı hakkında durum kodu, karşılaşılan hatalar ve kullanılan model adı gibi bilgiler içerir. Genişletilmiş olay external_rest_endpoint_summary , REST isteklerinin sorunlarını gidermeye ve hata ayıklamaya yönelik 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.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"dimensions":768}'))
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.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"retry_count":10}'))
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 kaydedin ve gömülü modelinizi 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üler oluşturularak
AI_GENERATE_EMBEDDINGS.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
Bir anahtar kullanarak Azure OpenAI'ye erişim credentialları oluşturun:
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ömülmelerini text_embeddings tablosuna ve AI_GENERATE_CHUNKSAI_GENERATE_EMBEDDINGSkullanarak ekleyin:
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;