Akıllı uygulamalar ve yapay zeka

Şunlar için geçerlidir:Azure SQL VeritabanıFabric'deki SQL veritabanı

Bu makalede, Azure SQL Database ve Fabric SQL veritabanı'de SQL Database Engine ile akıllı uygulamalar oluşturmak için OpenAI ve vektörler gibi yapay zeka (AI) seçeneklerinin kullanımına genel bir bakış sağlanmaktadır.

Yapay zekaya hazır bir uygulama oluşturmaya kısa bir genel bakış için bu videoyu Azure SQL Database essentials serisinde izleyin:

Örnekler ve örnekler için SQL AI Örnekleri deposunu ziyaret edin.

Genel bakış

Büyük dil modelleri (LLM' ler), geliştiricilerin tanıdık bir kullanıcı deneyimiyle yapay zeka destekli uygulamalar oluşturmasını sağlar.

Uygulamalarda LLM'lerin kullanılması, modellerin uygulamanızın veritabanından doğru verilere doğru zamanda erişebildiği durumlarda daha fazla değer ve geliştirilmiş bir kullanıcı deneyimi sağlar. Bu işlem, Retrieval Augmented Generation (RAG) olarak bilinir. Azure SQL Database ve Fabric SQL veritabanı, bu yeni düzeni destekleyen birçok özelliğe sahiptir ve bu da onları akıllı uygulamalar oluşturmak için harika veritabanları haline getirir.

Aşağıdaki bağlantılar, akıllı uygulamalar oluşturmak için çeşitli seçeneklerin örnek kodunu sağlar:

AI Seçeneği Açıklama
SQL MCP Server Veritabanınız için bir dizi araç ve yapılandırma tanımlayan kararlı ve yönetilen bir arabirim.
Azure OpenAI RAG için eklemeler oluşturun ve Azure OpenAI tarafından desteklenen tüm modellerle tümleştirin.
Vektör Vektörleri depolamayı ve vektör işlevlerini veritabanında kullanmayı öğrenin.
Azure AI Arama Hizmeti Verileriniz üzerinde LLM eğitmek için veritabanınızı Azure AI Search ile birlikte kullanın.
Akıllı uygulamalar Herhangi bir senaryoda çoğaltılabilir ortak bir desen kullanarak uçtan uca çözüm oluşturmayı öğrenin.
Azure SQL Database'de Copilot becerileri Azure SQL Database tabanlı uygulamaların tasarımını, çalışmasını, iyileştirmesini ve sistem durumunu kolaylaştırmak için tasarlanan yapay zeka destekli deneyimler kümesi hakkında bilgi edinin.
Fabric SQL veritabanında Copilot becerileri Fabric SQL veritabanı tabanlı uygulamaların tasarımını, çalışmasını, iyileştirmesini ve sistem durumunu kolaylaştırmak için tasarlanan yapay zeka destekli deneyimler kümesi hakkında bilgi edinin.

Yapay zeka uygulamalarında SQL MCP Server

SQL MCP Server, yapay zeka aracıları için veri yolunda doğrudan yer alır.

  • Modeller istek oluşturdukçe, sunucu veritabanınıza kararlı ve yönetilen bir arabirim sağlar.
  • Ham şemayı ortaya çıkarmak veya oluşturulan SQL'e güvenmek yerine, tüm erişimi yapılandırmanızın desteklediği tanımlı bir araç kümesi aracılığıyla yönlendirir.

Bu yaklaşım etkileşimleri tahmin edilebilir tutar ve her işlemin tanımladığınız izinlere ve yapıya uygun olmasını sağlar. Daha fazla bilgi için bkz. aka.ms/sql/mcp.

Mantık yürütmeden ayırarak modeller amaca odaklanırken SQL MCP Server bu amacın geçerli sorgulara nasıl dönüştüğüyle ilgilenir. Aracılar kullanılabilir özellikleri keşfedebildiği, girişleri ve çıkışları anlayabileceği ve tahminde bulunmadan çalışabildiği için yüzey alanı kısıtlı kalır. Bu tasarım hataları azaltır ve şema belirsizliğini telafi etmek için karmaşık istem mühendisliği gereksinimini ortadan kaldırır.

Geliştiriciler için bu yaklaşım yapay zekanın gerçek iş yüklerine güvenle katılabileceği anlamına gelir.

Şunları yapabilirsiniz:

  • Varlıkları bir kez tanımlama
  • Rolleri ve kısıtlamaları uygulama

Ardından platform:

  • Varlıkları, rolleri ve kısıtlamaları tutarlı bir şekilde uygular
  • SQL verileri üzerinden aracı temelli uygulamalar için güvenilir bir temel oluşturur.

REST ve GraphQL'i destekleyen aynı yapılandırma MCP'yi de yönetir, bu nedenle kuralların veya mantığın yinelenmesi yoktur. Daha fazla bilgi için bkz. aka.ms/dab/docs.

Azure OpenAI ile RAG uygulamak için temel kavramlar

Bu bölüm, AZURE SQL DATABASE veya Fabric SQL veritabanında Azure OpenAI ile RAG uygulama açısından kritik öneme sahip temel kavramları içerir.

Bilgi Getirme ile Artırılmış Üretim (RAG)

RAG, LLM'nin dış kaynaklardan ek veri alarak ilgili ve bilgilendirici yanıtlar üretme becerisini geliştiren bir tekniktir. Örneğin RAG, kullanıcının sorusu veya istemiyle ilgili etki alanına özgü bilgiler içeren makaleleri veya belgeleri sorgulayabilir. LLM daha sonra yanıtını oluştururken bu alınan verileri başvuru olarak kullanabilir. Örneğin, Azure SQL Database kullanan basit bir RAG deseni şöyle olabilir:

  1. Tabloya veri ekleyin.
  2. Azure SQL Database'ı Azure AI Search'e bağlayın.
  3. bir Azure OpenAI GPT-4 modeli oluşturun ve Azure AI Search bağlayın.
  4. Uygulamanızdaki ve Azure SQL Database eğitilmiş Azure OpenAI modelini kullanarak verilerinizle ilgili sohbet edin ve sorular sorun.

RAG deseni, istem mühendisliğiyle birlikte modele daha bağlamsal bilgiler sunarak yanıt kalitesini artırır. RAG, modelin, ilgili dış kaynakları oluşturma sürecine ekleyerek daha geniş bir bilgi bankası uygulamasına olanak sağlayarak daha kapsamlı ve bilinçli yanıtlar elde eder. grounding LLM'leri hakkında daha fazla bilgi için bkz. Grounding LLMs - Microsoft Community Hub.

İstemler ve istem mühendisliği

İstem, büyük bir dil modeline (LLM) yönerge olarak ya da LLM'nin üzerinde işlem yapabileceği bağlamsal veriler olarak hizmet veren belirli metin veya bilgilerdir. İstem, soru, deyim ve hatta kod parçacığı gibi çeşitli formlar alabilir.

LLM'den yanıt oluşturmak için kullanabileceğiniz örnek istemler şunlardır:

  • Yönergeler: LLM'ye yönergeler sağlama
  • Birincil içerik: İşlenmek üzere LLM'ye bilgi verir
  • Örnekler: modeli belirli bir göreve veya işleme göre koşula yardımcı olun
  • İpuçları: LLM'nin çıktısını doğru yöne yönlendirin
  • Destekleyici içerik: LLM'nin çıkış oluşturmak için kullanabileceği ek bilgileri temsil eder

Senaryo için iyi istemler oluşturma işlemine istem mühendisliği adı verilir. istemler ve istem mühendisliği için en iyi yöntemler hakkında daha fazla bilgi için bkz. Azure OpenAI Service.

Jetonlar

Belirteçler, giriş metni daha küçük parçalara bölünerek oluşturulan küçük metin öbekleridir. Bu segmentler, tek bir karakterden sözcüğün tamamına kadar değişen sözcükler veya karakter grupları olabilir. Örneğin, hamburger kelimesi ham, bur ve ger gibi belirteçlere bölünürken, pear gibi kısa ve yaygın bir kelime tek bir belirteç olarak kabul edilir.

Azure OpenAI'de API, giriş metnini belirteçleştirir. Her API isteğinde işlenen belirteçlerin sayısı giriş, çıkış ve istek parametrelerinin uzunluğu gibi faktörlere bağlıdır. İşlenen belirteçlerin miktarı, modellerin yanıt süresini ve aktarım hızını da etkiler. Her modelin, Azure OpenAI'den tek bir istek ve yanıt için alabileceği belirteç sayısında sınırları vardır. Daha fazla bilgi edinmek için bkz. Azure OpenAI Service kotaları ve sınırları.

Vektör

Vektörler, bazı veriler hakkındaki bilgileri temsil eden sıralı sayı dizileridir (genellikle kayan sayılar). Örneğin, bir görüntü piksel değerlerinin vektöru olarak gösterilebilir veya bir metin dizesi ASCII değerlerinin vektöru olarak gösterilebilir. Verileri vektöre dönüştürme işlemine vektörleştirme adı verilir. Daha fazla bilgi için bkz . Vektör örnekleri.

Vektör veri türü ve vektör işlevlerinin kullanıma sunulmasıyla vektör verileriyle çalışmak daha kolaydır.

Eklemeler

Eklemeler, verilerin önemli özelliklerini temsil eden vektörlerdir. Ekleme işlemleri genellikle derin öğrenme modeli kullanılarak öğrenilir ve makine öğrenmesi ve yapay zeka modelleri bunları özellik olarak kullanır. Eklemeler, benzer kavramlar arasındaki anlamsal benzerliği de yakalayabilir. Örneğin, person ve human sözcükleri için bir gömme oluştururken, bu sözcükler anlamsal olarak da benzer olduğundan, gömmelerinin (vektör gösterimi) değer olarak benzer olmasını bekleyebilirsiniz.

Azure OpenAI, metin verilerinden eklemeler oluşturmak için modeller sunar. Hizmet, metni belirteçlere böler ve OpenAI tarafından önceden eğitilen modelleri kullanarak eklemeler oluşturur. Daha fazla bilgi edinmek için bkz. Azure OpenAI ile ekleme oluşturma.

Vektörler ve eklemeler hakkında sık sorulan soruların yanıtlarının listesi için bkz:

Vektör arama, bir veri kümesindeki belirli bir sorgu vektörine benzer tüm vektörleri bulma işlemidir. Bu nedenle, sözcüğün human sorgu vektörleri sözlüğün tamamında benzer sözcükler arar ve sözcüğü person yakın bir eşleşme olarak bulmalıdır. Kosinüs benzerliği gibi bir benzerlik ölçümü bu yakınlığı veya uzaklığı ölçer. Vektörler ne kadar yakın olursa aralarındaki mesafe o kadar küçük olur.

Verilerinizdeki en benzer belgeleri bulmak için milyonlarca belge üzerinde sorgu çalıştırdığınız bir senaryo düşünün. Azure OpenAI kullanarak verileriniz için eklemeler oluşturabilir ve belgeleri sorgulayabilirsiniz. Ardından, veri kümenizdeki en benzer belgeleri bulmak için bir vektör araması gerçekleştirebilirsiniz. Ancak, birkaç örnek arasında vektör araması yapmak basit bir işlemdir. Aynı aramayı binlerce veya milyonlarca veri noktasında gerçekleştirmek zorlaşır. Ayrıca, gecikme süresi, aktarım hızı, doğruluk ve maliyet gibi kapsamlı arama ve yaklaşık en yakın komşu (ANN) arama yöntemleri arasında da dengeler vardır. Bu dengelerin tümü uygulamanızın gereksinimlerine bağlıdır.

Vektörleri verimli bir şekilde Azure SQL Database depolayabilir ve sorgulayabilirsiniz. Bu sayede harika bir performansla en yakın komşu araması yapabilirsiniz. Doğruluk ve hız arasında karar vermeniz gerekmez: her ikisine de sahip olabilirsiniz. Vektör ekleme işlemlerinin verilerin yanı sıra tümleşik bir çözümde depolanması, veri eşitlemesini yönetme gereksinimini en aza indirir ve yapay zeka uygulaması geliştirme için pazara çıkış sürenizi hızlandırır.

Vektörler ve eklemeler hakkında daha fazla ayrıntı için bkz:

  • Vector arama ve vektör indisleri SQL Database Engine'de

Azure OpenAI

Ekleme, gerçek dünyayı veri olarak temsil etme işlemidir. Metinleri, resimleri veya sesleri eklemelere dönüştürebilirsiniz. Azure OpenAI modelleri gerçek dünyadaki bilgileri eklemelere dönüştürebilir. Modellere REST uç noktaları olarak erişebilir, böylece sp_invoke_external_rest_endpoint sistem saklı yordamını kullanarak bunları Azure SQL Database'dan kolayca kullanabilirsiniz:

DECLARE @retval INT, @response NVARCHAR(MAX);
DECLARE @payload NVARCHAR(MAX);

SET @payload = JSON_OBJECT('input': @text);

EXEC @retval = sp_invoke_external_rest_endpoint @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version=2023-03-15-preview',
    @method = 'POST',
    @credential = [https://<openai-url>/openai/deployments/<model-name>],
    @payload = @payload,
    @response = @response OUTPUT;

SELECT CAST([key] AS INT) AS [vector_value_id],
    CAST([value] AS FLOAT) AS [vector_value]
FROM OPENJSON(JSON_QUERY(@response, '$.result.data[0].embedding'));

Eklemeleri almak için REST hizmetine çağrı kullanmak, SQL Veritabanı ve OpenAI ile çalışırken sahip olduğunuz tümleştirme seçeneklerinden yalnızca biridir. available modellerinden herhangi birinin kullanıcılarınızın verilerle etkileşim kurabileceği çözümler oluşturmak için Azure SQL Database'de depolanan verilere erişmesine izin vekleyebilirsiniz. Örneğin, aşağıdaki örnek.

Azure SQL Veritabanı'nda depolanan verileri kullanarak soruyu yanıtlayan bir yapay zeka botunun ekran görüntüsü.

SQL Veritabanı ve OpenAI kullanma hakkında ek örnekler için aşağıdaki makalelere bakın:

Vektör örnekleri

Ayrılmış vektör veri türü , vektör verilerinin verimli ve iyileştirilmiş depolanmasını sağlar. Geliştiricilerin vektör ve benzerlik arama uygulamasını kolaylaştırmalarına yardımcı olan bir dizi işlevle birlikte gelir. işlevini kullanarak VECTOR_DISTANCE bir kod satırındaki iki vektör arasındaki uzaklığı hesaplayabilirsiniz. Daha fazla bilgi ve örnek için bkz. SQL Veritabanı Motorunda Vektör arama ve vektör dizinleri.

Örneğin:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [embedding] [vector](1536) NOT NULL,    
)
GO

SELECT TOP(10) 
    * 
FROM 
    [dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
    VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)

Azure SQL Database ve Azure AI Search ile RAG desenleri uygulayın. Azure AI Search ile Azure OpenAI ve Azure SQL Database entegrasyonu sayesinde, modelleri eğitmek veya ince ayarlamak zorunda kalmadan desteklenen sohbet modellerini Azure SQL Database'de depolanan veriler üzerinde çalıştırabilirsiniz. Verilerinizde modelleri çalıştırarak verilerinizi daha yüksek doğruluk ve hız ile sohbet edebilir ve analiz edebilirsiniz.

  • Verileriniz üzerinde Azure OpenAI
  • Azure AI Search'te Retrieval Augmented Generation (RAG)
  • Azure SQL Veritabanı ve Azure AI Arama ile Vektör Araması

Akıllı uygulamalar

Aşağıdaki diyagramda gösterildiği gibi, Azure SQL Database kullanarak önerilenler ve Alma Artırılmış Nesli (RAG) gibi yapay zeka özelliklerini içeren akıllı uygulamalar oluşturabilirsiniz:

Azure SQL Veritabanı ile akıllı uygulamalar oluşturmak için farklı yapay zeka özelliklerinin diyagramı.

Örnek veri kümesi olarak oturum soyutlamalarını kullanarak yapay zeka özellikli bir uygulama oluşturmak için uçtan uca örneği görmek için bakın:

Akıllı uygulamalar hakkında daha fazla ayrıntı için bkz:

LangChain tümleştirmesi

LangChain, dil modelleri tarafından desteklenen uygulamalar geliştirmeye yönelik iyi bilinen bir çerçevedir. LangChain'in kendi verileriniz üzerinde sohbet botu oluşturmak için nasıl kullanılabileceğini gösteren örnekler için bkz:

LangChain ile Azure SQL kullanmayla ilgili birkaç örnek:

Uçtan uca örnekler:

  • Azure SQL, Langchain ve Chainlit: LLM çağrılarını düzenlemeye yönelik Langchain'i ve kullanıcı arabirimi için Chainlit'i kullanarak kendi verilerinizde RAG desenini kullanarak bir sohbet botu oluşturun.

Semantic Kernel entegrasyonu

Semantic Kernel, mevcut kodunuzu çağıran aracıları kolayca oluşturmak için kullanabileceğiniz bir açık kaynak SDKdir. Son derece genişletilebilir bir SDK olarak, Semantic Kernel'i OpenAI, Azure OpenAI, Hugging Face ve daha fazlasının modelleriyle kullanabilirsiniz. Mevcut C# Python ve Java kodunuzu bu modellerle birleştirerek, soruları yanıtlayan aracılar oluşturabilir ve süreçleri otomatikleştirebilirsiniz.

Semantic Kernel'in yapay zeka özellikli bir çözüm oluşturmanıza ne kadar kolay yardımcı olduğunu gösteren bir örnek aşağıda verilmiştir:

  • En üst düzey sohbet botu mu?: Nihai kullanıcı deneyimi için hem NL2SQL hem de RAG desenlerini kullanarak kendi verileriniz üzerinde bir sohbet botu oluşturun.

Azure SQL Database'da Microsoft Copilot becerileri

Azure SQL Database'deki (önizleme) Microsoft Copilot, Azure SQL Database tabanlı uygulamaların tasarımını, işletimini, optimizasyonunu ve sistem sağlığını kolaylaştırmak için tasarlanmış yapay zeka destekli deneyimler kümesidir.

Copilot kullanıcı sorularına uygun yanıtlar sağlayarak veritabanı bağlamı, belgeler, dinamik yönetim görünümleri, Query Store ve diğer bilgi kaynaklarını kullanarak veritabanı yönetimini basitleştirir. Örneğin:

  • Veritabanı yöneticileri veritabanlarını bağımsız olarak yönetebilir ve sorunları çözebilir veya veritabanınızın performansı ve özellikleri hakkında daha fazla bilgi edinebilir.
  • Geliştiriciler, T-SQL sorgusu oluşturmak için metin veya konuşmada olduğu gibi verileri hakkında sorular sorabilir. Geliştiriciler, oluşturulan sorgunun ayrıntılı açıklamaları aracılığıyla sorguları daha hızlı yazmayı da öğrenebilir.

Not

Azure SQL Database'daki Microsoft Copilot becerileri şu anda sınırlı sayıda erken benimseyen için önizleme aşamasındadır. Bu programa kaydolmak için Azure SQL Database: Preview Request Access to Copilot adresini ziyaret edin.

Fabric SQL veritabanında Microsoft Copilot (önizleme)

Microsoft Fabric içindeki SQL veritabanı için Copilot aşağıdaki özelliklerle tümleşik yapay zeka yardımı içerir:

  • Kod tamamlama: SQL sorgu düzenleyicisinde T-SQL yazmaya başlayın ve Copilot sorgunuzu tamamlamaya yardımcı olmak için otomatik olarak bir kod önerisi oluşturur. Kod önerisini kabul etmek için Tab tuşuna basın veya yoksaymak için yazmaya devam edin.

  • Hızlı işlemler: SQL sorgu düzenleyicisinin şeridinde , Düzelt ve Açıkla seçenekleri hızlı eylemlerdir. Bir SQL sorgusunu vurgulayın ve sorgunuzda seçili eylemi gerçekleştirmek için hızlı işlem düğmelerinden birini seçin.

    • Fix: Copilot hata iletileri oluştuğunda kodunuzdaki hataları düzeltir. Hata senaryoları yanlış veya desteklenmeyen T-SQL kodu, yanlış yazımlar ve daha fazlasını içerebilir. Copilot ayrıca değişiklikleri açıklayan ve SQL için en iyi yöntemleri öneren açıklamalar da sağlar.

    • Explain: Copilot, AÇıKLAMA biçiminde SQL sorgunuzun ve veritabanı şemanızın doğal dil açıklamalarını sağlar.

  • Chat bölmesi: Doğal dil aracılığıyla Copilot soru sormak için sohbet bölmesini kullanın. Copilot, sorulan soruya göre oluşturulan bir SQL sorgusu veya doğal dil ile yanıt verir.

    • SQL'e Doğal Dil: Düz metin isteklerinden T-SQL kodu oluşturun ve iş akışınızı hızlandırmak için sorulacak sorulara yönelik öneriler alın.

    • Belgeler Üzerinden Soru-Cevap: Copilot'tan genel SQL veritabanı özellikleri hakkında sorular sorun ve doğal dilde yanıtlar alın. Copilot ayrıca isteğinizle ilgili belgelerin bulunmasına da yardımcı olur.

SQL veritabanı için Copilot tablo ve görünüm adlarını, sütun adlarını, birincil anahtarı ve yabancı anahtar meta verilerini kullanarak T-SQL kodu oluşturur. SQL veritabanı için Copilot T-SQL önerileri oluşturmak için tablolardaki verileri kullanmaz.