Yapay zeka çerçeveleri ile akıllı uygulamalar geliştirme
Üretime hazır yapay zeka uygulamaları oluşturmak için yapay zeka özelliklerinden fazlası gerekir; gerçek zamanlı veri akışını, doğal dil arabirimlerini, geliştirici üretkenlik araçlarını ve bulut tümleştirmesini kapsayan bir yaklaşım gerektirir. SQL Server 2025 , şirket içi dağıtımlardan buluta özel mimarilere ölçeklendirilen uygulamalar geliştirmeye yönelik bir platform sağlar.
Bu tümleşik yaklaşım, güvenlik, performans ve güvenilirlik için kurumsal özellikleri kullanırken araçları ve çerçeveleri kullanarak yapay zeka uygulamaları oluşturabileceğiniz anlamına gelir. gerçek zamanlı öneri altyapıları, konuşma yapay zeka yardımcıları veya yapay zeka içgörüleri tarafından desteklenen analiz panoları oluştururken, SQL Server 2025 ihtiyacınız olan temeli sağlar.
Konuşma yapay zekası arabirimleri oluşturma
Doğal dil arabirimleri, SQL bilgisi veya teknik uzmanlık gerektirmeden kurumsal verileri kullanıcılar için erişilebilir hale getirir.
Konuşma sorgusu desenlerini tasarlama
Konuşma sorgusu desenleri, kullanıcıların GPT-4 gibi yapay zeka modellerini kullanarak sorgularını SQL'e çevirerek doğal dilde sorular sormasını ve veri temelli yanıtlar almasını sağlar.
SQL (NL2SQL) özelliklerine doğal dil uygulama:
-- Create a stored procedure that interprets natural language queries
CREATE PROCEDURE sp_ConversationalQuery
@user_question NVARCHAR(MAX),
@context NVARCHAR(MAX) OUTPUT,
@sql_query NVARCHAR(MAX) OUTPUT
AS
BEGIN
-- Build a prompt for the AI model to generate SQL
DECLARE @prompt NVARCHAR(MAX) = CONCAT(
'You are a SQL expert. Given the following database schema and user question, generate a SQL query.',
CHAR(10), CHAR(10),
'Schema:', CHAR(10),
'products (product_id INT, product_name NVARCHAR(100), price DECIMAL(10,2), category NVARCHAR(50))',
CHAR(10),
'sales (sale_id INT, product_id INT, quantity INT, sale_date DATE)',
CHAR(10), CHAR(10),
'Question: ', @user_question,
CHAR(10),
'Generate only the SQL query, no explanations.'
);
-- Call GPT-4 to generate SQL
DECLARE @request NVARCHAR(MAX) = JSON_OBJECT(
'messages': JSON_ARRAY(
JSON_OBJECT('role': 'system', 'content': 'You are a SQL query generator.'),
JSON_OBJECT('role': 'user', 'content': @prompt)
),
'max_tokens': 500
);
DECLARE @response NVARCHAR(MAX);
EXEC sp_invoke_external_rest_endpoint
@url = N'https://myopenai.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview',
@method = 'POST',
@credential = [MyAzureOpenAICredential],
@payload = @request,
@response = @response OUTPUT;
-- Extract the generated SQL
SET @sql_query = JSON_VALUE(@response, '$.result.choices[0].message.content');
SET @context = 'Query generated successfully';
END;
Bu saklı yordam , doğal dil sorularını SQL sorgularına çevirmek için GPT-4 kullanır ve verilerinize konuşma erişimi sağlar.
Güvenlik koruyucuları uygulama
Güvenlik korumaları, yapay zeka tarafından oluşturulan SQL sorgularının verileri silme veya değiştirme gibi yanlış işlemler gerçekleştirmesini önler ve veritabanınıza yalnızca salt okunur erişim sağlar.
Oluşturulan SQL'in güvenli olduğundan emin olmak için doğrulama ekleyin:
CREATE PROCEDURE sp_SafeConversationalQuery
@user_question NVARCHAR(MAX),
@results NVARCHAR(MAX) OUTPUT
AS
BEGIN
DECLARE @sql_query NVARCHAR(MAX);
DECLARE @context NVARCHAR(MAX);
-- Generate SQL from natural language
EXEC sp_ConversationalQuery @user_question, @context OUTPUT, @sql_query OUTPUT;
-- Validate the generated SQL
IF @sql_query LIKE '%DROP%'
OR @sql_query LIKE '%DELETE%'
OR @sql_query LIKE '%UPDATE%'
OR @sql_query LIKE '%INSERT%'
OR @sql_query LIKE '%ALTER%'
OR @sql_query LIKE '%CREATE%'
BEGIN
SET @results = JSON_OBJECT('error': 'Generated query contains potentially unsafe operations');
RETURN;
END;
-- Execute the query safely (read-only)
BEGIN TRY
EXEC sp_executesql @sql_query;
END TRY
BEGIN CATCH
SET @results = JSON_OBJECT(
'error': ERROR_MESSAGE(),
'query': @sql_query
);
END CATCH;
END;
Bu sarmalayıcı, yıkıcı işlemleri önlemek için güvenlik denetimleri ekler ve kullanıcıların verileri yalnızca sorgulayabileceğinden emin olur, değişiklik yapmasına izin vermez.
Çok aşamalı konuşmalar oluşturma
Çok yönlü konuşmalar, kullanıcıların konuşma geçmişini koruyarak ve bağlamı yinelemeden takip sorularını etkinleştirerek verilerinizle doğal, bağlamsal diyaloglar kurmasına olanak tanır.
Aşağıdaki örnek, birden çok etkileşimde bağlamı koruyan ve takip sorularına ve verilerinizle doğal diyaloga olanak tanıyan bir konuşma yapay zekası oluşturur:
CREATE TABLE conversation_history (
conversation_id UNIQUEIDENTIFIER DEFAULT NEWID(),
user_id NVARCHAR(100),
turn_number INT,
user_message NVARCHAR(MAX),
assistant_message NVARCHAR(MAX),
timestamp DATETIME2 DEFAULT GETDATE(),
PRIMARY KEY (conversation_id, turn_number)
);
CREATE PROCEDURE sp_ConversationalChat
@conversation_id UNIQUEIDENTIFIER,
@user_id NVARCHAR(100),
@user_message NVARCHAR(MAX),
@response NVARCHAR(MAX) OUTPUT
AS
BEGIN
-- Get conversation history
DECLARE @history NVARCHAR(MAX);
SELECT @history = STRING_AGG(
JSON_OBJECT(
'role': CASE WHEN turn_number % 2 = 1 THEN 'user' ELSE 'assistant' END,
'content': CASE WHEN turn_number % 2 = 1 THEN user_message ELSE assistant_message END
),
','
)
FROM conversation_history
WHERE conversation_id = @conversation_id
ORDER BY turn_number;
-- Build messages array with history
DECLARE @messages NVARCHAR(MAX) = CONCAT('[', @history, ',',
JSON_OBJECT('role': 'user', 'content': @user_message), ']');
-- Call GPT-4 with conversation context
DECLARE @chat_request NVARCHAR(MAX) = JSON_OBJECT('messages': @messages);
EXEC sp_invoke_external_rest_endpoint
@url = N'https://myopenai.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview',
@method = 'POST',
@credential = [MyAzureOpenAICredential],
@payload = @chat_request,
@response = @response OUTPUT;
-- Extract and store the response
DECLARE @assistant_response NVARCHAR(MAX) = JSON_VALUE(@response, '$.result.choices[0].message.content');
-- Save to conversation history
DECLARE @next_turn INT = (SELECT ISNULL(MAX(turn_number), 0) + 1 FROM conversation_history WHERE conversation_id = @conversation_id);
INSERT INTO conversation_history (conversation_id, user_id, turn_number, user_message, assistant_message)
VALUES (@conversation_id, @user_id, @next_turn, @user_message, @assistant_response);
SET @response = @assistant_response;
END;
Yapay zeka araçlarıyla geliştirici üretkenliğini geliştirme
SQL Server 2025, yapay zeka uygulaması geliştirmeyi hızlandırmak için modern geliştirme araçlarıyla tümleştirilir.
GitHub Copilot ile Visual Studio Code için MSSQL uzantısını kullanma
Visual Studio Code için MSSQL uzantısıGitHub Copilot tümleştirmesini içerir ve veritabanı geliştirme için yapay zeka destekli yardım sağlar.
Uyarı
MSSQL uzantısıyla GitHub Copilot tümleştirmesi şu anda önizleme aşamasındadır. Özellikler ve işlevler değişebilir. En son bilgiler için MSSQL uzantısı belgelerine bakın.
GitHub Copilot tümleştirmesi, veritabanı geliştirme görevleri için kod yardımı sağlar:
- Sorgu oluşturma: Doğal dilde ne istediğinizi açıklayın, T-SQL kodu alın
- Sorgu iyileştirme: Sorgu performansını geliştirmek için öneriler alma
- Şema keşfi: Veritabanı şemanız hakkında sorular sorun
- Geçiş yardımı: Şema değişiklikleri ve veri geçişleri için betik oluşturma
- Açıklama: Yapay zeka tarafından oluşturulan açıklamalarla karmaşık sorguları anlama
Aşağıdaki örnekte GitHub Copilot'ın doğal dil açıklamasından nasıl eksiksiz bir saklı yordam oluşturabileceği gösterilmektedir:
-- Type a comment describing what you want
-- Generate a stored procedure that finds products similar to a given product using vector search
-- GitHub Copilot suggests:
CREATE PROCEDURE sp_FindSimilarProducts
@product_id INT,
@top_n INT = 5
AS
BEGIN
DECLARE @query_embedding VECTOR(1536);
-- Get the embedding of the reference product
SELECT @query_embedding = embedding
FROM products
WHERE product_id = @product_id;
-- Find similar products
SELECT TOP (@top_n)
product_id,
product_name,
category,
price,
VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS similarity_score
FROM products
WHERE product_id != @product_id
ORDER BY similarity_score;
END;
Entity Framework Core'un yapay zeka özellikleriyle kullanılması
Entity Framework Core , SQL Server ile yapay zeka uygulamaları oluşturmak için kullanılabilir. SQL Server'ın VECTOR veri türü ve AI işlevleriyle çalışmak için ham SQL sorgularını kullanabilirsiniz:
Entity Framework Core VECTOR veri türünü yerel olarak desteklemediğinden, bu örnek EF Core'un zaman uyumsuz işlemlerinden ve nesne eşlemesinden yararlanırken T-SQL'i doğrudan yürütmek için kullanır FromSqlRaw . yöntemi, JSON'a bir sorgu katıştırma işlemini seri hale getirir, kullanarak VECTOR_DISTANCEbir vektör benzerlik araması yürütür ve benzer eklemelere sahip ürünleri döndürür; öneri sistemleri ve anlamsal arama için idealdir.
using Microsoft.EntityFrameworkCore;
using System.Text.Json;
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
public class AppDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
// Query with vector similarity using raw SQL
public async Task<List<Product>> FindSimilarProducts(float[] queryEmbedding, int topN = 5)
{
var embeddingJson = JsonSerializer.Serialize(queryEmbedding);
var similarProducts = await _context.Products
.FromSqlRaw(@"
SELECT TOP {0}
product_id,
product_name,
description,
price
FROM products
WHERE VECTOR_DISTANCE('cosine', CAST({1} AS VECTOR(1536)), embedding) < 0.5
ORDER BY VECTOR_DISTANCE('cosine', CAST({1} AS VECTOR(1536)), embedding)
", topN, embeddingJson)
.ToListAsync();
return similarProducts;
}
Microsoft Fabric ile tümleştirme
Microsoft Fabric , SQL Server'ın yapay zeka özelliklerini tamamlayan birleşik bir analiz platformu sağlar. SQL Server 2025, geleneksel ETL işlem hatlarının karmaşıklığı olmadan işletimsel veriler üzerinde neredeyse gerçek zamanlı analiz yapılmasını sağlayarak veritabanı yansıtmasını Microsoft Fabric'e destekler.
SQL Server 2025 veritabanı aynalamasını Microsoft Fabric'e gösteren diyagram. Sol tarafta bir SQL Server 2025 veritabanı, verileri sürekli olarak Microsoft Fabric OneLake'e çoğaltır. Diyagram, işletimsel verilerin analiz platformuna aktığı sıfır ETL mimarisini gösterir.
Kumaş Yansıtmayı Yapılandırma
Fabric Yansıtma, görsel bir arabirim kullanılarak Microsoft Fabric portalı üzerinden yapılandırılır. Yansıtma özelliği, verilerinizi Delta Lake biçimindeki Fabric'in OneLake'ine sürekli olarak çoğaltır ve operasyonel iş yüklerinizi etkilemeden analiz için kullanılabilir hale getirir.
Uyarı
Adım adım yapılandırma yönergeleri için bkz. Kılavuz: SQL Server'dan Microsoft Fabric eşlenen veritabanlarını yapılandırma.
Fabric yansıtmanın avantajlarından bazıları şunlardır:
- Neredeyse gerçek zamanlı analiz: Veri değişiklikleri en düşük gecikme süresiyle sürekli çoğaltılır
- Zero-ETL mimarisi: Karmaşık veri işlem hatlarını derlemeye ve sürdürmeye gerek yoktur
- Açık veri biçimi: Veriler, geniş araç uyumluluğu için OneLake'te Delta Lake biçiminde depolanır
- Yapay zekaya hazır analiz: Fabric'in yapay zeka ve makine öğrenmesi özellikleriyle doğrudan tümleştirme
- SQL analiz uç noktası: Tanıdık T-SQL söz dizimlerini kullanarak yansıtılmış verileri sorgulama
- İşletimsel etkisi yok: Yansıtma, üretim iş yüklerini etkilemeden değişiklik izlemeyi kullanır
Yansıtma performansını iyileştirme
Yansıtma yapılandırıldıktan sonra SQL Server'ın Resource Governor'ını kullanarak işletimsel iş yükleriniz üzerindeki performans etkisini yönetebilirsiniz:
Aşağıdaki kod örneği, Fabric yansıtma işlemleri tarafından kullanılan CPU ve bellek kaynaklarını sınırlayan bir Kaynak Yöneticisi yapılandırması oluşturur.
-- Create resource pool for mirroring
CREATE RESOURCE POOL FabricMirrorPool
WITH (
MIN_CPU_PERCENT = 5,
MAX_CPU_PERCENT = 20,
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 20
);
-- Create workload group for mirroring
CREATE WORKLOAD GROUP FabricMirrorGroup
WITH (
IMPORTANCE = MEDIUM
)
USING FabricMirrorPool;
-- Apply classifier function
CREATE FUNCTION dbo.FabricMirrorClassifier()
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @workload_group SYSNAME = 'default';
IF APP_NAME() LIKE '%Fabric Mirror%'
SET @workload_group = 'FabricMirrorGroup';
RETURN @workload_group;
END;
-- Enable resource governor
ALTER RESOURCE GOVERNOR
WITH (CLASSIFIER_FUNCTION = dbo.FabricMirrorClassifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Örnekte, kaynak havuzu FabricMirrorPool yansıtmayı, CPU ve bellek kullanımını %5-20 arasında sınırlayarak üretim iş yüklerini etkilememesini sağlar. Sınıflandırıcı işlevi, yansıtma oturumlarını uygulama adına göre tanımlar ve bunları ayrılmış iş yükü grubuna yönlendirerek hem operasyonel hem de analiz iş yükleri için tutarlı kaynak ayırma ve öngörülebilir performans sağlar.
Resource Governor, Doku yansıtmanın işletimsel iş yüklerinizi etkilememesini sağlar.
Yapay zeka uygulama performansını iyileştirme
Performans, üretim yapay zeka uygulamaları için kritik öneme sahiptir.
Vektör arama sorgularını iyileştirme
Sorgu ipuçlarını ve dizin iyileştirmeyi kullanın:
Vektör arama performansını iyileştirmek, yanıt süresinin kullanıcı deneyimini doğrudan etkilediği üretim yapay zeka uygulamaları için kritik öneme sahiptir.
Aşağıdaki örnekte iki temel iyileştirme tekniği gösterilmektedir: belirli veri alt kümelerini (ürün kategorileri gibi) hedefleyen filtrelenmiş vektör dizinleri oluşturma ve yürütme davranışını denetlemek için sorgu ipuçlarını kullanma.
Filtrelenen dizin idx_electronics_embedding , yalnızca ilgili vektörleri dizinleyerek, arama alanını azaltarak ve sorgu hızını iyileştirerek Elektronik kategorisindeki aramaları hızlandırır. İpucu MAXDOP 4 , vektör aramalarının sunucu kaynaklarını tekeline almasını ve diğer iş yüklerini etkilemesini önlemek için gerekli olan paralel işlemeyi dört iş parçacığıyla sınırlar ve performansı kaynak tüketimiyle dengeler.
-- Create filtered vector index for specific categories
CREATE VECTOR INDEX idx_electronics_embedding
ON products(embedding)
WHERE category = 'Electronics';
-- Use query hints for better performance
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);
SELECT TOP 10
product_id,
product_name,
VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS score
FROM products WITH (INDEX(idx_electronics_embedding))
WHERE category = 'Electronics'
ORDER BY score
OPTION (MAXDOP 4);
Dizinleri ve sorgu ipuçlarını kullanarak vektör aramasını belirli senaryolar için iyileştirebilirsiniz.
Bu uygulamaları izleyerek ve SQL Server 2025'in yapay zeka özelliklerini kullanarak, güvenlik, performans ve güvenilirlik için kurumsal standartları korurken gerçek iş değeri sunan üretime hazır uygulamalar oluşturabilir, dağıtabilir ve çalıştırabilirsiniz.