Snowflake Cortex AI ile Nasıl Chatbot Oluşturulur (Adım Adım Kılavuz)
Snowflake Cortex AI ile nasıl bir chatbot oluşturacağınızı öğrenin. Verileri hazırlama, Cortex Search kullanma ve Streamlit ile dağıtma için adım adım kılavuz.
Snowflake’in Cortex AI’ı, güçlü yapay zeka yeteneklerini doğrudan Snowflake ortamınıza getirir. Örneğin, Cortex’in sektörde lider Büyük Dil Modellerine (LLM) erişimini kullanarak, hassas verilerin güvenliğini tehlikeye atmadan kurumsal iç verileri kullanan yapay zeka sohbet botları gibi araçlar geliştirebiliriz.
Bu entegrasyonlar, geleneksel kural tabanlı sohbetlerden ve otomasyonlardan, kullanıcı girdilerini daha iyi anlayıp daha kapsamlı ve eksiksiz yanıtlar verebilen daha esnek, yapay zeka destekli sohbetlere geçişi tetikledi.
Bu öğreticide, Snowflake Cortex kullanarak nasıl bir sohbet botu oluşturacağınızı üst düzey adımlarla anlatacağım. Verileri nasıl hazırlayacağınızı, Cortex Search’ü nasıl yapılandıracağınızı, yapılandırılmamış veriler için Document AI’ı nasıl kullanacağınızı, Streamlit ile bir sohbet botu arayüzü nasıl kuracağınızı öğrenecek ve bunu harici uygulamalarla nasıl entegre edebileceğinize dair fikirler paylaşacağım. Sonunda Snowflake üzerinde konuşmaya dayalı yapay zekayı tasarlamak için hem pratik becerilere hem de kavramsal bir anlayışa sahip olacaksınız.
Özünde Snowflake Cortex, yapay zeka ve LLM destekli hizmetleri Snowflake ekosistemine taşır. Bu öğretici, Cortex’in Arama Hizmeti (Search Service) ve belge dosyalarını ayrıştırmak için Document AI’ı kullanarak verilerinizi Snowflake ile entegre edip, Cortex’in bilgi getirimini artırılmış üretim (RAG) modeli sayesinde mevcut LLM modellerine ek bağlam sağlayan basit bir Streamlit sohbet botu uygulaması oluşturmayı kapsar.
Bu öğretici şunları kapsar:
Bir Cortex Search sohbet botu oluşturmaya hazırlık için genel Snowflake ortamınızı kurma
Belgelerden içgörü çıkarmak için Cortex LLM işlevlerini ve Document AI’ı kullanma.
Snowflake içinde Streamlit ile bir sohbet botu ve analitik uygulaması geliştirme
Cortex kullanırken maliyet yapısı ve dikkat edilmesi gerekenler
Cortex kullanmanın avantajı, vektör, anahtar sözcük ve anlamsal yeniden sıralamaya yönelik yerel hibrit yaklaşımı ile RAG tabanlı yanıt üretimi sayesinde doğruluk ve özgüllüğü artırmasıdır.
Snowflake içinde Streamlit ile sohbet botları ve analitik uygulamalar geliştirmek, Python geliştirme esnekliğinden yararlanırken, hassas verileri güvenli Snowflake ortamınızın içinde tutarak veri güvenliği ve yönetişim düzenlemelerine vurgu yapar.
İnşa etmeye başlamadan önce Snowflake hesabınızı hazırlayalım. Bu hesapta aşağıdaki izinlere ihtiyacınız olacak:
Ambarlar oluşturma ve USAGE izni
Veritabanı İzinleri: USAGE
Şema izinleri: USAGE, CREATE STREAMLIT, CREATE STAGE, CREATE CORTEX SEARCH SERVICE veya OWNERSHIP
Uygun hesap düzeyi izinlerle Document AI kullanabilme. Çoğu durumda Snowflake’in yerleşik rollerini (ör. ACCOUNTADMIN, SYSADMIN) veya şu yetkilere sahip özel bir rol kullanırsınız:
USAGE veritabanında ve şemada
CREATE CORTEX SEARCH SERVICE
OPERATE arama hizmeti nesnesi oluşturulduktan sonra
Cortex için genellikle hizmetlerle etkileşim kurmak üzere nesne düzeyi yetkilendirmelerle (USAGE, OPERATE) birleştirilmiş CORTEX_USER rolüne ihtiyaç duyarsınız.
İdeal olarak SQL, Python ve temel yapay zeka kavramlarına biraz aşina olmalısınız. Snowflake ortamında ve verilerde gezinmek için SQL bilmeniz gerekir. Streamlit uygulamasını oluşturmak için Python bilgisine ihtiyacınız olacak. Yapay zeka kavramlarına temel düzeyde hakim olmak, Cortex Search Service bileşenlerini anlamamıza yardımcı olur.
Araçlar açısından, Snowflake’in web tarayıcısı olan Snowsight’a odaklanacağız. Bunu yerelde oluşturmak isterseniz, kendi IDE’nize/yazı düzenleyicinize ihtiyacınız olacaktır.
Bazı veri örnekleri sağlamaya çalışacağız; ideal olarak, üzerinde çalışmak istediğiniz bir test korpusu ve veri kümeniz olur. Yoksa, bu öğretici için Federal Açık Piyasa Komitesi toplantı tutanaklarını öneririm (Snowflake’ten temin edilmiştir): FOMC tutanak örneği.
Snowflake Cortex’te Nasıl Chatbot Oluşturulur
Tamam, başlayalım! Bu talimatların bazıları, çok çeşitli seçeneklere uyum sağlayabilmek için biraz daha genel olabilir.
Adım 1: Snowflake Veritabanı, Şema ve Ambarı Kurulumu
İlk olarak, sohbet botu projemiz için gerekli ortamı oluşturacağız.
-- Create a dedicated warehouseCREATEORREPLACE WAREHOUSE cortex_wh
WITH WAREHOUSE_SIZE ='XSMALL'
AUTO_SUSPEND =60
AUTO_RESUME =TRUE;-- Create a database and stageCREATEORREPLACEDATABASE cortex_chatbot_db;CREATEORREPLACE STAGE cortex_chatbot_db.public.chatbot_stage;-- Switch contextUSEDATABASE cortex_chatbot_db;USE WAREHOUSE cortex_wh;Altyapı:
Bu, tüm kaynakların izole edilmesini ve maliyetin yönetilmesini sağlar.
Adım 2: Verileri Yükleme ve Hazırlama
Sohbet botunuzun sorgulara yanıt verebilmesi için verilere ihtiyacı vardır. Bunlar şunlar olabilir:
Yapılandırılmış veriler: müşteri bilgileri, işlem günlükleri, ürün katalogları.
Yapılandırılmamış veriler: PDF’ler, SSS’ler, politikalar, bilgi tabanları.
Veri alımı ve verileri Snowflake’e nasıl taşıdığımız hakkında daha fazla bilgiye ihtiyacınız olursa, şu veri alımı rehberine göz atın.
Örnek: bir CSV dosyasını hazırlama ve yükleme.
-- Upload data (done via Snowsight UI or SnowSQL)-- Example: product_faq.csv-- Load into a tableCREATEORREPLACETABLE cortex_chatbot_db.public.chatbot_stage.product_faq (
question STRING,
answer STRING
);
COPY INTO product_faq
FROM@chatbot_stage/product_faq.csv
FILE_FORMAT =(TYPE= CSV FIELD_OPTIONALLY_ENCLOSED_BY='"');Altyapı:
Yapılandırılmamış veriler (ör. PDF’ler) için Cortex Document AI’ı kullanarak işlem yapabilirsiniz. Bir sonraki adımda, Cortex Document AI kullanarak yapılandırılmamış veri kaynaklarından nasıl veri çıkaracağımızı konuşacağız.
Hem yapılandırılmış hem de yapılandırılmamış verilerimizi parçalara (chunk) ayırmak ve RAG’in daha verimli olması için gerektiğinde bazı meta veriler eklemek istiyoruz.
Adım 3: Document AI Eğitimi ve Belge Ayrıştırma
Belgeleri ayrıştırmak için ayarlı bir model oluşturmak üzere Document AI kullanarak bir model inşa etmeyi ele alalım. Bunun isteğe bağlı olduğunu ve ayrıştırma için varsayılan Snowflake modellerini denemenizi teşvik ettiğimi unutmayın; bunlar üretime hazırdır ve OCR, yerleşim çıkarımı ve tablo tespitini halleder. Bugün Cortex Document AI içinde özel modelleri doğrudan “eğitmezsiniz”, ancak verinize uygun olacak şekilde çıkarım modlarını (ör. varlık çıkarımı, tablo çıkarımı) yapılandırabilirsiniz.
Varsayılan ayrıştırıcıyla basit başlayın ve yalnızca belgeleriniz karmaşık veya düzensiz biçimlendirmeye sahipse daha gelişmiş yapılandırmalar ekleyin.
Snowsight’ta gezinme menüsünü açın ve AI & ML’e gidin. cortex_wh‘yi seçin ve ardından “Build” düğmesine tıklayın. Buradan “Create” seçeneğini seçiyoruz.
Yapıyı (build) oluşturduktan sonra, belgelerimizi bu yapıya yüklüyoruz. İşleme tamamlandığında, varlık çıkarımı veya tablo çıkarımı kullanarak veri çıkarmaya başlayabiliriz. Varlık çıkarımı, belgenize sorular sorarak veri almanızı sağlar; tablo çıkarımı ise belgenizde tanımlı alanlara göre veriyi ayrıştırır.
Model oluşturulduktan sonra doğruluğunu değerlendirmek ve gerekirse modeli eğitmek isteriz. Modeli eğitmek, onu belgenizin yapısına göre ince ayarlarla özelleştirir. Artık bu modeli veya varsayılan modeli belge ayrıştırma için kullanabiliriz. Şimdilik Snowflake’in varsayılan AI ayrıştırıcısına bağlı kalacağız.
CREATEORREPLACETABLE cortex_chatbot_db.public.chatbot_stage.doc_data AS--create the tableSELECT
RELATIVE_PATH,
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (--using default cortex parser'@cortex_chatbot.public.chatbot_stage',
RELATIVE_PATH,
{'mode': 'LAYOUT'} ):content
)AS EXTRACTED_LAYOUT
FROM
DIRECTORY('@cortex_chatbot.public.chatbot_stage')--pull the files from the stageWHERE
RELATIVE_PATH LIKE'%.pdf';--specifically just PDFsAltyapı:
Artık verilerimiz bir tabloda ve dönüştürülmeye hazır.
Adım 4: Veri Dönüşümü ve Özellik Çıkarımı
Sohbet botu etkileşimlerine verileri hazırlamak için belgelerin parçalara ayrılması ve meta verilerle zenginleştirilmesi gerekir. Parçalara ayırma, Cortex Search’ün doğruluğunu artırır.
Bu SQL çok şey yapıyor; kısaca özetleyeyim. Her dosyayı alıp metni 2000 karakterlik parçalara düzleştiriyor.
Daha küçük parçalara ayırmak arama verimliliğine yardımcı olur. Ardından modele bu verinin nereden geldiğine dair bağlam sunmak için parça içindeki verilere bazı başlık bilgileri (örneğin başlıklar) ekler.
Bu, verilerinizi aranabilir ve bilgi getirimini artırılmış üretime (RAG) hazır hale getirir.
Adım 5: Cortex Search veya Agent Oluşturma ve Yapılandırma
Yanıt için bağlamı çekmek üzere parçalar arasında arama yapacak ana hizmet olan Cortex Search Agent’ımızı oluşturalım.
CREATEORREPLACE CORTEX SEARCH SERVICE cortex_chatbot_db.public.chatbot_stage.cortex_serv
ON chunk
ATTRIBUTES category
WAREHOUSE = cortex_wh
TARGET_LAG ='1 hour'AS(SELECT
chunk,
relative_path,
file_url,
category
FROM cortex_chatbot_db.public.chatbot_stage.doc_chunks
);Altyapı:
Bu, ayrıca attributes alanını tanımlayan ve arama sonucu filtrelemesi için kullanmak istediğiniz sütunları seçen ilk hizmeti oluşturur. Burada, teorik olarak farklı ürün kategorilerinde filtreleme yapabilmek için “category”yi seçtim. Bunun için, parçalara ayrılmış metnimizi içermesi gereken chunk sütununu seçtim.
Cortex Search, sohbet botu doğruluğunu artıran hibrit vektör + anahtar sözcük aramasını varsayılan olarak kullanır. Bununla birlikte anlamsal bir model kullanarak daha fazla bağlam ekleyebiliriz. Benzersiz ifadeler veya teknik kısaltmalar bekliyorsanız, Cortex Analyst anlamsal model oluşturucusunu kullanarak bir anlamsal model YAML dosyası yapılandırabilirsiniz. Bu, modele bağlam ve eş anlamlar sağlayarak “CUST” ifadesinin “customer” (müşteri) anlamına gelebileceğini fark etmesini sağlar.
Bu, sohbet botunun yanıt üretmeden önce ilgili bağlamı getirdiği RAG iş akışlarını etkinleştirir.
Adım 6: Streamlit ile Sohbet Botu Uygulamasını Geliştirme
Şimdi Streamlit kullanarak Snowflake içinde basit bir sohbet botu ön yüzü oluşturalım. Sohbet botu uygulamanızı oluşturmak için Snowsight’ta “Streamlit in Snowflake” uygulamasını bulmak isteyeceksiniz. Bu, Snowflake’inize bağlanmak için Snowpark kullanır.
Önce kullanıcının Session.builder kullanarak Snowflake’e bağlanmasına izin veriyoruz. Ardından, belirli bir girdiyi SNOWFLAKE.CORTEX.SEARCH’e bir sorgu olarak iletiyoruz.
import streamlit as st
import snowflake.connector
from snowflake.snowpark import Session
# Connect to Snowflake
session = Session.builder.configs({"account":"<account_id>","user":"<username>","password":"<password>","role":"SYSADMIN","warehouse":"CORTEX_WH","database":"CORTEX_CHATBOT","schema":"PUBLIC"}).create()
st.title("Snowflake Cortex Chatbot")
user_input = st.text_input("Ask me a question:")if user_input:# Query Cortex Search
result = session.sql(f"""
SELECT PARSE_JSON(
SNOWFLAKE.CORTEX.SEARCH(
chatbot_serv',
'{"query":"{user_input}","columns":["col1","col2"],"filter":{"@eq":{"col1":"filter value"}}}'
)
)[‘results’] AS results
""").collect()
st.write("**Chatbot:**", result[0]['RESPONSE'])Altyapı:
Bu temel sohbet botu, Cortex Search indeksinden ilgili bilgileri alır ve gerçek zamanlı yanıtlar döndürür. Oturum sohbet geçmişini bellekte tutma özelliği eklenerek çok turlu (konuşmaya dayalı) bir sohbet botu da oluşturulabilir. Bu, mevcut arama hizmeti kullanılarak Streamlit içinde yerel olarak yapılabilir.
Adım 7: REST API Uç Noktalarıyla Uygulama
Sohbet botunu harici uygulamalarla (ör. web siteleri, Slack botları) entegre etmek için Snowflake REST API’yi kullanın. Genel olarak URL şu biçimde olacaktır: https://<account_url>/api/v2/databases/<db_name>/schemas/<schema_name>/cortex-search-services/<service_name>:query.
Bu API’ler güvenlik amacıyla kimlik doğrulaması gerektirir; bu da bunu Snowflake ortamınıza erişimi olan kullanıcılarla sınırlar. Ancak bu API-öncelikli yaklaşım, sohbet botu yeteneklerinin daha esnek bir şekilde gömülmesine ve daha geniş bir kitleye ulaşmasına olanak tanır.
Buna yönelik bir kullanım durumu, kullanıcıların üç aylık finansal raporlar veya toplantı notları gibi belgelere ilişkin sorular sorabilmesini sağlayan ve bir web sunucusunda barındırılabilen bir iç araç oluşturmaktır. Bu entegrasyonlar, API istekleri yapabilen araçların geliştirilmesini gerektirir.
Adım 8: Test ve Doğrulama
Geniş çapta dağıtmadan önce, sohbet botunu şu açılardan test edin:
Doğruluk – doğru yanıtları getiriyor mu?
Hız – gecikme kabul edilebilir mi?
Kullanılabilirlik – arayüz sezgisel mi?
Sorguları kaydedebilir ve çıktıları bilinen doğru yanıtlarla karşılaştırarak kıyaslama yapabilirsiniz. Önceden belirlenmiş yanıtlara sahip bir soru setine sahip olmak ve doğruluk için karşılaştırmalar yapmak üzere diğer modelleri kullanmak yaygındır.
Adım 9: Temizlik (İsteğe Bağlı)
Maliyetleri yönetmek ve yönetişimi sürdürmek için kullanılmayan kaynakları bırakın.
DROP WAREHOUSE IFEXISTS cortex_wh;DROPDATABASEIFEXISTS cortex_chatbot;DROP STAGE IFEXISTS chatbot_stage;Altyapı:
Ek Kavramlar ve En İyi Uygulamalar
Sohbet botumuzun işlevine biraz bağlam ve bazı en iyi uygulamalar ekleyelim.
Snowflake Cortex’te Bilgi Getirimini Artırılmış Üretim (RAG)
RAG, birçok büyük dil modeli tarafından, orijinal verilerini harici bilgilerle zenginleştirmek için kullanılan bir tekniktir.
Snowflake Cortex, kurumsal verilerinizi sohbet botunuzun bağlamına ekleyerek, ek bağlamdan yararlanarak yanıtlar verebilir. Vektör ve anahtar sözcük aramasının karışımını kullanarak bir istemi bağlam verileriyle ayrıştırır ve anlamsal yeniden sıralama ile en alakalı belgeleri seçerek bağlamsallaştırılmış bir yanıt sağlar.
Bu aynı zamanda, kullanıcının manuel olarak vektörler, benzerlik işlevleri ve gömlemeler oluşturmasına gerek kalmadan tek bir Cortex Search motoru üzerinden RAG’in uygulanmasını basitleştirir. RAG’in gücü, teknik dokümantasyona yönelik sohbet botları gibi çözümler oluşturmamıza olanak tanır.
Snowflake Sohbet Botları için İstem (Prompt) Mühendisliği
İstem mühendisliği, herhangi bir sohbet botunun kullanıcı sorularına uygun yanıtlar vermesini sağlamak için önemlidir. İstem mühendisliğini iyi anlamak, sohbet hizmetinizin iyi yanıtlar döndürmesini sağlamak için kritik önemdedir.
Daha iyi yanıtlar sağlamaya yardımcı olan bir şey de, kullanıcılara daha iyi sorular oluşturmalarına yardımcı olacak bir kullanım kılavuzu sunmaktır.
Ayrıca, kullanıcı sorgularını Cortex hizmetine göndermeden önce istem şablonları ekleyebilirsiniz. İstem şablonları, modele yanıt sağlamak için doğru bilgileri kullanması adına tutarlı bağlam sağlar.
Kurumsal veriler için faydalı olabilecek örnek bir şablon: "Şirketin tarihsel verileri için yardımcı bir asistansınız. Yalnızca şirket bilgi tabanına dayanarak yanıt verin." Bu, modelin yanıtlarda kurumsal verileri kullanmaya odaklanmasını sağlar.
Zaman zaman belirsiz sorular veya kullanıcı girdileriyle de karşılaşırsınız. Modeli yanıt vermeye zorlamak yerine, şablonunuza şu gibi bir ifade ekleyebilirsiniz: "Kullanıcı belirsiz bir soru sorarsa şu yanıtı verin: Bunu bilmiyorum.” Bu, daha spesifik bir soru sormalarını teşvik edebilir.
Uygulamada Esneklik ve Seçim
Snowflake Cortex, önceden oluşturulmuş LLM’leri (hızlı, üretime hazır) ve özel modelleri (alanlara göre ince ayar yapılmış) destekler. Bunlar hizmet oluşturulurken tanımlanabilir. Ayrıca kendi özel anlamsal modellerinizi eklemek, büyük bir metin korpusu beslemek zorunda kalmadan modele sektöre/kuruma özgü bir dil bağlamı kazandırır. Bu esneklik, gelecekte model entegrasyonuna olanak tanır.
Güvenlik, Yönetişim ve Uyumluluk
Cortex, Snowflake’in sunduğu rol tabanlı erişim kontrolü, denetim kaydı ve şifrelemeyle aynı standartları izler. Bu, HIPAA, GDPR ve diğer düzenlemelerle uyumluluğu sağlar. Sizin tarafınızdaki temel sorumluluk, doğru kişilerin doğru rollere sahip olmasını sağlamaktır.
Maliyet Yapısı
Snowflake Cortex tüketime dayalı bir fiyatlandırma modeli kullanır. Diğer Snowflake ürünlerinde olduğu gibi, hesaplama ve depolama için ücretlendirilirsiniz; ancak Cortex Search’e özgü birkaç ek katman vardır. Ödeme yaptığınız kalemler:
Sanal Ambar Hesaplaması: Bu, Snowflake verilerine karşı sorguları işleyen ve kredi tüketen ana hesaplama kullanımınızdır
EMBED_TEXT Jeton kullanımı: Belgelerin veri işleme aşamasında, Snowflake Cortex belirteç gömme işlemini yönetir ve belgeler eklendiğinde veya değiştirildiğinde ücretlendirilirsiniz
Sunum (Serving) Hesaplaması: Cortex Search Service, kullanıcıya düşük gecikme ve yüksek aktarım hızına sahip bir hizmet sunmak için bir sunum hesaplaması kullanır. Bu, sanal ambar hesabından ayrıdır ve hizmet kullanıma hazır olduğu her an için, sadece kullanıldığında değil, ücretlendirir
Semantik indeksler ve aşama verileri için Depolama.
Bulut Hizmeti Hesaplaması: Bunlar, Snowflake’in temel nesnelerdeki değişiklikleri tespit etmesini sağlayan Snowflake düzeyinde bir maliyettir. Yalnızca bu maliyet günlük ambar maliyetinin %10’unu aşarsa faturalandırılır.
Maliyetleri yönetmek için şu teknikleri deneyin:
Snowflake, MEDIUM veya daha küçük ambarların kullanılmasını önerir
Belirteç kullanımını izleyin ve kullanım kotaları belirleyin.
Kullanılmayan indeksleri arşivleyin veya en yeni belgeler gerekmiyorsa daha uzun veri tazelik gecikmesine izin verin
Hizmetinize ihtiyaç olmadığında askıya alın. Kullanılmadığında açılıp/kapanmasını sağlayan bir zamanlayıcı ayarlamak faydalı olabilir.
Sonuç
Snowflake Cortex ile bir sohbet botu oluşturmak, kuruma özgü konuşmaya dayalı yapay zekayı doğrudan Veri Bulutu üzerinde mümkün kılar. Alımdan getirim ve dağıtıma kadar tamamen Snowflake’in yönetilen ortamında çalışabilirsiniz. Bu sohbet botları; işe alıştırma süreçlerini kolaylaştırmaya, derinlemesine analitik soruları yanıtlamaya ve teknik dokümantasyon oluşturmaya yardımcı olabilir.
Cortex, LLM’leri kendi verilerinizle birleştiren RAG destekli sohbet botlarını mümkün kılar. Snowflake içinde Streamlit ile sohbet botu oluşturmak, kullanıcı dostu arayüzleri Snowflake içinde dağıtmayı kolaylaştırır. Güvenlik, yönetişim ve maliyet yönetimi iş akışına gömülüdür. Cortex ile kuruluşlar, geleneksel BI panolarından verilerle konuşarak etkileşime geçen akıllı asistanlara evrilebilir.
Snowflake ve yapay zeka yetenekleri hakkında daha fazla bilgi için şu kaynaklara göz atın:
Snowflake Cortex’i iş zekâsı için kullanmanın başlıca faydaları nelerdir?⌄
Cortex, teknik olmayan kullanıcıların doğal dilde sorular sorup SQL ile yönlendirilen yanıtlar almasını sağlayarak analitiği basitleştirir. Manuel sorgu yazımını ortadan kaldırır, BI darboğazlarını azaltır ve daha hızlı içgörü elde edilmesini mümkün kılar. Ayrıca tüm sonuçlar Snowflake’in güvenlik, köken (lineage) ve erişim kontrollerini devralır.
Snowflake Cortex Analyst, karmaşık çoklu tablo sorgularını yönetebilir mi?⌄
Evet. Cortex Analyst, ilişkiler net ve meta veriler iyi tanımlanmış olduğu sürece çoklu tablo birleştirmelerini destekler ve şemalar arasında akıl yürütebilir. Doğru dokümantasyon, anlamsal modeller ve veri yönetişimi uygulamaları, karmaşık sorguların doğruluğunu artırır.
Snowflake, Cortex Analyst tarafından kullanılan verilerin güvenliğini ve yönetişimini nasıl sağlar?⌄
Cortex Analyst, Snowflake ortamında çalışır ve böylece hassas verilerin platformu terk etmemesini sağlar. Rol tabanlı erişim kontrolü (RBAC), nesne etiketleme, maskeleme politikaları ve denetim günlüklerine uyar; böylece yapay zeka destekli içgörüler, geleneksel sorgularla aynı uyumluluk kurallarını izler.
Snowflake Cortex Analyst’in takip sorularını yönetme konusundaki sınırlamaları nelerdir?⌄
Cortex Analyst, tek seferlik sorgularda güçlüdür ancak tam kapsamlı sohbet botu çerçevelerine kıyasla çok turlu konuşmalar için sınırlı bir belleğe sahiptir. Gelişmiş diyalog veya bağlamsal takipler için Cortex Analyst’i Cortex Search ile eşleştirmek ya da Streamlit üzerinde özel bir sohbet botu kurmak daha iyi sonuçlar verir.
İşletmeler, Snowflake Cortex’in arkasındaki modelleri özelleştirebilir veya ince ayar yapabilir mi?⌄
Cortex ağırlıklı olarak Snowflake tarafından yönetilen LLM’leri kullanır, ancak anlamsal modeller, istem şablonları ve getirim hatları aracılığıyla yapılandırmaya izin verir. Daha derin özelleştirme için, kurumsal ihtiyaçlara bağlı olarak Cortex, Snowpark Python veya API’ler aracılığıyla harici modellerle entegre edilebilir.
Mekânsal analiz, makine öğrenimi ve veri hatları konusunda deneyime sahip bir veri bilimciyim. GCP, Hadoop, Hive, Snowflake, Airflow ve diğer veri bilimi/mühendisliği süreçleriyle çalıştım.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Snowflake ile uygulamalı deneyim kazanın! Veri mühendisleri, analistler ve BI uzmanlarına yönelik bu etkileşimli başlangıç eğitiminde verileri sorgulamayı, modellemeyi ve yönetmeyi öğrenin.
İşe hazır bir Veri Mühendisi olun: Snowflake'te tasarım yapmayı, sorgular yazmayı ve çözümler geliştirmeyi öğrenin; dönüşüm ve modelleme için Snowflake SQL'de ustalaşın.
Snowflake’in Cortex AI’ı, güçlü yapay zeka yeteneklerini doğrudan Snowflake ortamınıza getirir. Örneğin, Cortex’in sektörde lider Büyük Dil Modellerine (LLM) erişimini kullanarak, hassas verilerin güvenliğini tehlikeye atmadan kurumsal iç verileri kullanan yapay zeka sohbet botları gibi araçlar geliştirebiliriz.
Bu entegrasyonlar, geleneksel kural tabanlı sohbetlerden ve otomasyonlardan, kullanıcı girdilerini daha iyi anlayıp daha kapsamlı ve eksiksiz yanıtlar verebilen daha esnek, yapay zeka destekli sohbetlere geçişi tetikledi.
Bu öğreticide, Snowflake Cortex kullanarak nasıl bir sohbet botu oluşturacağınızı üst düzey adımlarla anlatacağım. Verileri nasıl hazırlayacağınızı, Cortex Search’ü nasıl yapılandıracağınızı, yapılandırılmamış veriler için Document AI’ı nasıl kullanacağınızı, Streamlit ile bir sohbet botu arayüzü nasıl kuracağınızı öğrenecek ve bunu harici uygulamalarla nasıl entegre edebileceğinize dair fikirler paylaşacağım. Sonunda Snowflake üzerinde konuşmaya dayalı yapay zekayı tasarlamak için hem pratik becerilere hem de kavramsal bir anlayışa sahip olacaksınız.
Snowflake’e yeniyseniz, hız kazanmak için Snowflake Foundations beceri yolunu takip etmenizi öneririm. Ayrıca, öğrendiklerinizi uygulamak için Snowflake’i ücretsiz deneyebilirsiniz.
Snowflake Cortex nedir?
Özünde Snowflake Cortex, yapay zeka ve LLM destekli hizmetleri Snowflake ekosistemine taşır. Bu öğretici, Cortex’in Arama Hizmeti (Search Service) ve belge dosyalarını ayrıştırmak için Document AI’ı kullanarak verilerinizi Snowflake ile entegre edip, Cortex’in bilgi getirimini artırılmış üretim (RAG) modeli sayesinde mevcut LLM modellerine ek bağlam sağlayan basit bir Streamlit sohbet botu uygulaması oluşturmayı kapsar.
Bu öğretici şunları kapsar:
Cortex kullanmanın avantajı, vektör, anahtar sözcük ve anlamsal yeniden sıralamaya yönelik yerel hibrit yaklaşımı ile RAG tabanlı yanıt üretimi sayesinde doğruluk ve özgüllüğü artırmasıdır.
Snowflake içinde Streamlit ile sohbet botları ve analitik uygulamalar geliştirmek, Python geliştirme esnekliğinden yararlanırken, hassas verileri güvenli Snowflake ortamınızın içinde tutarak veri güvenliği ve yönetişim düzenlemelerine vurgu yapar.
Snowflake Cortex AI’ın yeteneklerine dair bir fikir edinmek isterseniz, özetleme ve duygu analizi gibi temel NLP görevleri için Cortex AI kullanımına ilişkin bu öğreticiye bakın.
Önkoşullar
İnşa etmeye başlamadan önce Snowflake hesabınızı hazırlayalım. Bu hesapta aşağıdaki izinlere ihtiyacınız olacak:
USAGEizniUSAGEUSAGE,CREATE STREAMLIT,CREATE STAGE,CREATE CORTEX SEARCH SERVICEveyaOWNERSHIPACCOUNTADMIN,SYSADMIN) veya şu yetkilere sahip özel bir rol kullanırsınız:USAGEveritabanında ve şemadaCREATE CORTEX SEARCH SERVICEUSAGE,OPERATE) birleştirilmişCORTEX_USERrolüne ihtiyaç duyarsınız.İdeal olarak SQL, Python ve temel yapay zeka kavramlarına biraz aşina olmalısınız. Snowflake ortamında ve verilerde gezinmek için SQL bilmeniz gerekir. Streamlit uygulamasını oluşturmak için Python bilgisine ihtiyacınız olacak. Yapay zeka kavramlarına temel düzeyde hakim olmak, Cortex Search Service bileşenlerini anlamamıza yardımcı olur.
Araçlar açısından, Snowflake’in web tarayıcısı olan Snowsight’a odaklanacağız. Bunu yerelde oluşturmak isterseniz, kendi IDE’nize/yazı düzenleyicinize ihtiyacınız olacaktır.
Bazı veri örnekleri sağlamaya çalışacağız; ideal olarak, üzerinde çalışmak istediğiniz bir test korpusu ve veri kümeniz olur. Yoksa, bu öğretici için Federal Açık Piyasa Komitesi toplantı tutanaklarını öneririm (Snowflake’ten temin edilmiştir): FOMC tutanak örneği.
Snowflake Cortex’te Nasıl Chatbot Oluşturulur
Tamam, başlayalım! Bu talimatların bazıları, çok çeşitli seçeneklere uyum sağlayabilmek için biraz daha genel olabilir.
Adım 1: Snowflake Veritabanı, Şema ve Ambarı Kurulumu
İlk olarak, sohbet botu projemiz için gerekli ortamı oluşturacağız.
Bu, tüm kaynakların izole edilmesini ve maliyetin yönetilmesini sağlar.
Adım 2: Verileri Yükleme ve Hazırlama
Sohbet botunuzun sorgulara yanıt verebilmesi için verilere ihtiyacı vardır. Bunlar şunlar olabilir:
Veri alımı ve verileri Snowflake’e nasıl taşıdığımız hakkında daha fazla bilgiye ihtiyacınız olursa, şu veri alımı rehberine göz atın.
Örnek: bir CSV dosyasını hazırlama ve yükleme.
Yapılandırılmamış veriler (ör. PDF’ler) için Cortex Document AI’ı kullanarak işlem yapabilirsiniz. Bir sonraki adımda, Cortex Document AI kullanarak yapılandırılmamış veri kaynaklarından nasıl veri çıkaracağımızı konuşacağız.
Hem yapılandırılmış hem de yapılandırılmamış verilerimizi parçalara (chunk) ayırmak ve RAG’in daha verimli olması için gerektiğinde bazı meta veriler eklemek istiyoruz.
Adım 3: Document AI Eğitimi ve Belge Ayrıştırma
Belgeleri ayrıştırmak için ayarlı bir model oluşturmak üzere Document AI kullanarak bir model inşa etmeyi ele alalım. Bunun isteğe bağlı olduğunu ve ayrıştırma için varsayılan Snowflake modellerini denemenizi teşvik ettiğimi unutmayın; bunlar üretime hazırdır ve OCR, yerleşim çıkarımı ve tablo tespitini halleder. Bugün Cortex Document AI içinde özel modelleri doğrudan “eğitmezsiniz”, ancak verinize uygun olacak şekilde çıkarım modlarını (ör. varlık çıkarımı, tablo çıkarımı) yapılandırabilirsiniz.
Varsayılan ayrıştırıcıyla basit başlayın ve yalnızca belgeleriniz karmaşık veya düzensiz biçimlendirmeye sahipse daha gelişmiş yapılandırmalar ekleyin.
Snowsight’ta gezinme menüsünü açın ve AI & ML’e gidin.
cortex_wh‘yi seçin ve ardından “Build” düğmesine tıklayın. Buradan “Create” seçeneğini seçiyoruz.Yapıyı (build) oluşturduktan sonra, belgelerimizi bu yapıya yüklüyoruz. İşleme tamamlandığında, varlık çıkarımı veya tablo çıkarımı kullanarak veri çıkarmaya başlayabiliriz. Varlık çıkarımı, belgenize sorular sorarak veri almanızı sağlar; tablo çıkarımı ise belgenizde tanımlı alanlara göre veriyi ayrıştırır.
Model oluşturulduktan sonra doğruluğunu değerlendirmek ve gerekirse modeli eğitmek isteriz. Modeli eğitmek, onu belgenizin yapısına göre ince ayarlarla özelleştirir. Artık bu modeli veya varsayılan modeli belge ayrıştırma için kullanabiliriz. Şimdilik Snowflake’in varsayılan AI ayrıştırıcısına bağlı kalacağız.
Artık verilerimiz bir tabloda ve dönüştürülmeye hazır.
Adım 4: Veri Dönüşümü ve Özellik Çıkarımı
Sohbet botu etkileşimlerine verileri hazırlamak için belgelerin parçalara ayrılması ve meta verilerle zenginleştirilmesi gerekir. Parçalara ayırma, Cortex Search’ün doğruluğunu artırır.
Bu SQL çok şey yapıyor; kısaca özetleyeyim. Her dosyayı alıp metni 2000 karakterlik parçalara düzleştiriyor.
Daha küçük parçalara ayırmak arama verimliliğine yardımcı olur. Ardından modele bu verinin nereden geldiğine dair bağlam sunmak için parça içindeki verilere bazı başlık bilgileri (örneğin başlıklar) ekler.
Bu, verilerinizi aranabilir ve bilgi getirimini artırılmış üretime (RAG) hazır hale getirir.
Adım 5: Cortex Search veya Agent Oluşturma ve Yapılandırma
Yanıt için bağlamı çekmek üzere parçalar arasında arama yapacak ana hizmet olan Cortex Search Agent’ımızı oluşturalım.
Bu, ayrıca
attributesalanını tanımlayan ve arama sonucu filtrelemesi için kullanmak istediğiniz sütunları seçen ilk hizmeti oluşturur. Burada, teorik olarak farklı ürün kategorilerinde filtreleme yapabilmek için “category”yi seçtim. Bunun için, parçalara ayrılmış metnimizi içermesi gerekenchunksütununu seçtim.Cortex Search, sohbet botu doğruluğunu artıran hibrit vektör + anahtar sözcük aramasını varsayılan olarak kullanır. Bununla birlikte anlamsal bir model kullanarak daha fazla bağlam ekleyebiliriz. Benzersiz ifadeler veya teknik kısaltmalar bekliyorsanız, Cortex Analyst anlamsal model oluşturucusunu kullanarak bir anlamsal model YAML dosyası yapılandırabilirsiniz. Bu, modele bağlam ve eş anlamlar sağlayarak “CUST” ifadesinin “customer” (müşteri) anlamına gelebileceğini fark etmesini sağlar.
Bu, sohbet botunun yanıt üretmeden önce ilgili bağlamı getirdiği RAG iş akışlarını etkinleştirir.
Adım 6: Streamlit ile Sohbet Botu Uygulamasını Geliştirme
Şimdi Streamlit kullanarak Snowflake içinde basit bir sohbet botu ön yüzü oluşturalım. Sohbet botu uygulamanızı oluşturmak için Snowsight’ta “Streamlit in Snowflake” uygulamasını bulmak isteyeceksiniz. Bu, Snowflake’inize bağlanmak için Snowpark kullanır.
Genel olarak sohbet botları oluşturmaya dair bilgi isterseniz, önce şu Python ile sohbet botları oluşturma kursunu öneririm.
Önce kullanıcının
Session.builderkullanarak Snowflake’e bağlanmasına izin veriyoruz. Ardından, belirli bir girdiyiSNOWFLAKE.CORTEX.SEARCH’e bir sorgu olarak iletiyoruz.Bu temel sohbet botu, Cortex Search indeksinden ilgili bilgileri alır ve gerçek zamanlı yanıtlar döndürür. Oturum sohbet geçmişini bellekte tutma özelliği eklenerek çok turlu (konuşmaya dayalı) bir sohbet botu da oluşturulabilir. Bu, mevcut arama hizmeti kullanılarak Streamlit içinde yerel olarak yapılabilir.
Adım 7: REST API Uç Noktalarıyla Uygulama
Sohbet botunu harici uygulamalarla (ör. web siteleri, Slack botları) entegre etmek için Snowflake REST API’yi kullanın. Genel olarak URL şu biçimde olacaktır:
https://<account_url>/api/v2/databases/<db_name>/schemas/<schema_name>/cortex-search-services/<service_name>:query.Bu API’ler güvenlik amacıyla kimlik doğrulaması gerektirir; bu da bunu Snowflake ortamınıza erişimi olan kullanıcılarla sınırlar. Ancak bu API-öncelikli yaklaşım, sohbet botu yeteneklerinin daha esnek bir şekilde gömülmesine ve daha geniş bir kitleye ulaşmasına olanak tanır.
Buna yönelik bir kullanım durumu, kullanıcıların üç aylık finansal raporlar veya toplantı notları gibi belgelere ilişkin sorular sorabilmesini sağlayan ve bir web sunucusunda barındırılabilen bir iç araç oluşturmaktır. Bu entegrasyonlar, API istekleri yapabilen araçların geliştirilmesini gerektirir.
Adım 8: Test ve Doğrulama
Geniş çapta dağıtmadan önce, sohbet botunu şu açılardan test edin:
Sorguları kaydedebilir ve çıktıları bilinen doğru yanıtlarla karşılaştırarak kıyaslama yapabilirsiniz. Önceden belirlenmiş yanıtlara sahip bir soru setine sahip olmak ve doğruluk için karşılaştırmalar yapmak üzere diğer modelleri kullanmak yaygındır.
Adım 9: Temizlik (İsteğe Bağlı)
Maliyetleri yönetmek ve yönetişimi sürdürmek için kullanılmayan kaynakları bırakın.
Ek Kavramlar ve En İyi Uygulamalar
Sohbet botumuzun işlevine biraz bağlam ve bazı en iyi uygulamalar ekleyelim.
Snowflake Cortex’te Bilgi Getirimini Artırılmış Üretim (RAG)
RAG, birçok büyük dil modeli tarafından, orijinal verilerini harici bilgilerle zenginleştirmek için kullanılan bir tekniktir.
Snowflake Cortex, kurumsal verilerinizi sohbet botunuzun bağlamına ekleyerek, ek bağlamdan yararlanarak yanıtlar verebilir. Vektör ve anahtar sözcük aramasının karışımını kullanarak bir istemi bağlam verileriyle ayrıştırır ve anlamsal yeniden sıralama ile en alakalı belgeleri seçerek bağlamsallaştırılmış bir yanıt sağlar.
Bu aynı zamanda, kullanıcının manuel olarak vektörler, benzerlik işlevleri ve gömlemeler oluşturmasına gerek kalmadan tek bir Cortex Search motoru üzerinden RAG’in uygulanmasını basitleştirir. RAG’in gücü, teknik dokümantasyona yönelik sohbet botları gibi çözümler oluşturmamıza olanak tanır.
Snowflake Sohbet Botları için İstem (Prompt) Mühendisliği
İstem mühendisliği, herhangi bir sohbet botunun kullanıcı sorularına uygun yanıtlar vermesini sağlamak için önemlidir. İstem mühendisliğini iyi anlamak, sohbet hizmetinizin iyi yanıtlar döndürmesini sağlamak için kritik önemdedir.
Daha iyi yanıtlar sağlamaya yardımcı olan bir şey de, kullanıcılara daha iyi sorular oluşturmalarına yardımcı olacak bir kullanım kılavuzu sunmaktır.
Ayrıca, kullanıcı sorgularını Cortex hizmetine göndermeden önce istem şablonları ekleyebilirsiniz. İstem şablonları, modele yanıt sağlamak için doğru bilgileri kullanması adına tutarlı bağlam sağlar.
Kurumsal veriler için faydalı olabilecek örnek bir şablon: "Şirketin tarihsel verileri için yardımcı bir asistansınız. Yalnızca şirket bilgi tabanına dayanarak yanıt verin." Bu, modelin yanıtlarda kurumsal verileri kullanmaya odaklanmasını sağlar.
Zaman zaman belirsiz sorular veya kullanıcı girdileriyle de karşılaşırsınız. Modeli yanıt vermeye zorlamak yerine, şablonunuza şu gibi bir ifade ekleyebilirsiniz: "Kullanıcı belirsiz bir soru sorarsa şu yanıtı verin: Bunu bilmiyorum.” Bu, daha spesifik bir soru sormalarını teşvik edebilir.
Uygulamada Esneklik ve Seçim
Snowflake Cortex, önceden oluşturulmuş LLM’leri (hızlı, üretime hazır) ve özel modelleri (alanlara göre ince ayar yapılmış) destekler. Bunlar hizmet oluşturulurken tanımlanabilir. Ayrıca kendi özel anlamsal modellerinizi eklemek, büyük bir metin korpusu beslemek zorunda kalmadan modele sektöre/kuruma özgü bir dil bağlamı kazandırır. Bu esneklik, gelecekte model entegrasyonuna olanak tanır.
Güvenlik, Yönetişim ve Uyumluluk
Cortex, Snowflake’in sunduğu rol tabanlı erişim kontrolü, denetim kaydı ve şifrelemeyle aynı standartları izler. Bu, HIPAA, GDPR ve diğer düzenlemelerle uyumluluğu sağlar. Sizin tarafınızdaki temel sorumluluk, doğru kişilerin doğru rollere sahip olmasını sağlamaktır.
Maliyet Yapısı
Snowflake Cortex tüketime dayalı bir fiyatlandırma modeli kullanır. Diğer Snowflake ürünlerinde olduğu gibi, hesaplama ve depolama için ücretlendirilirsiniz; ancak Cortex Search’e özgü birkaç ek katman vardır. Ödeme yaptığınız kalemler:
EMBED_TEXTJeton kullanımı: Belgelerin veri işleme aşamasında, Snowflake Cortex belirteç gömme işlemini yönetir ve belgeler eklendiğinde veya değiştirildiğinde ücretlendirilirsinizMaliyetleri yönetmek için şu teknikleri deneyin:
Sonuç
Snowflake Cortex ile bir sohbet botu oluşturmak, kuruma özgü konuşmaya dayalı yapay zekayı doğrudan Veri Bulutu üzerinde mümkün kılar. Alımdan getirim ve dağıtıma kadar tamamen Snowflake’in yönetilen ortamında çalışabilirsiniz. Bu sohbet botları; işe alıştırma süreçlerini kolaylaştırmaya, derinlemesine analitik soruları yanıtlamaya ve teknik dokümantasyon oluşturmaya yardımcı olabilir.
Cortex, LLM’leri kendi verilerinizle birleştiren RAG destekli sohbet botlarını mümkün kılar. Snowflake içinde Streamlit ile sohbet botu oluşturmak, kullanıcı dostu arayüzleri Snowflake içinde dağıtmayı kolaylaştırır. Güvenlik, yönetişim ve maliyet yönetimi iş akışına gömülüdür. Cortex ile kuruluşlar, geleneksel BI panolarından verilerle konuşarak etkileşime geçen akıllı asistanlara evrilebilir.
Snowflake ve yapay zeka yetenekleri hakkında daha fazla bilgi için şu kaynaklara göz atın: