SQL QnA
Yapılandırılmış verilerin nasıl sorgulanacağını öğrenin
Web Scrape QnA ve Multiple Documents QnA gibi önceki örneklerin aksine, yapılandırılmış verilerin sorgulanması bir vektör veritabanı gerektirmez. Üst düzeyde, bu aşağıdaki adımlarla gerçekleştirilebilir:
LLM'nin Sağlanması:
SQL veritabanı şemasına genel bakış
Örnek Satır Verileri
Birkaç sorgu ile bir SQL sorgusu döndürür
Bir If Else düğümü kullanarak SQL sorgusunu doğrulayın
SQL sorgusunu çalıştırmak ve yanıtı almak için özel bir işlev oluşturun
Yürütülen SQL yanıtından doğal bir yanıt döndürür

Bu örnekte, SingleStore'da depolanan bir SQL veritabanı ile etkileşime girebilen bir QnA sohbet robotu oluşturacağız

TL; DR
Chatflow şablonunu bulabilirsiniz:
JSON LİNKİ DOSYASI EKLENECEK
1. SQL Database Schema + Example Rows
SingleStore'a bağlanmak, veritabanı şemasını ve ilk 3 satırı almak için bir Custom JS Function node'u kullanın.
Research paperın, aşağıdaki örnek formatta bir istem oluşturulması önerilir:

HOST, USER, PASSWORD'ün nasıl alınacağı hakkında daha fazla bilgiyi bu kılavuzda bulabilirsiniz. Bitirdiğinizde Execute'a tıklayın:

Şimdi doğru formatın oluşturulduğunu görebiliriz. Bir sonraki adım bunu Prompt Template'e getirmektir.
2. Birkaç atış prompt'u ile bir SQL sorgusu döndürün
Yeni bir Chat Modeli + Prompt Şablonu + LLMChain oluşturun

Prompt Template (İstem Şablonu) içinde aşağıdaki prompt'u belirtin:
{şema}ve {soru} değişkenlerini kullandığımız için, bunların değerlerini Format Prompt Values bölümünde belirtin:

3. If Else düğümünü kullanarak SQL sorgusunu doğrulayın
Bazen SQL sorgusu geçersizdir ve geçersiz bir SQL sorgusunu yürütmek için kaynakları boşa harcamak istemeyiz. Örneğin, bir kullanıcı SQL veritabanıyla ilgisi olmayan genel bir soru soruyorsa. Farklı bir yola yönlendirmek için bir If Else düğümü kullanabiliriz.
Örneğin, SELECT ve WHERE'in LLM tarafından verilen SQL sorgusuna dahil edilip edilmediğini görmek için temel bir kontrol gerçekleştirebiliriz.

Else Function'da, temel olarak LLM'ye kullanıcı sorgusuna cevap veremediğini söyleyen bir Prompt Template + LLMChain'e yönlendireceğiz:

4. SQL sorgusunu çalıştırmak ve yanıtı almak için özel işlev
Eğer geçerli bir SQL sorgusu ise, sorguyu çalıştırmamız gerekir. If Else düğümünden gelen True çıktısını bir Custom JS Function düğümüne bağlayın:

5. Yürütülen SQL yanıtından doğal bir yanıt döndürün
Yeni bir Chat Model + Prompt Template + LLMChain oluşturun

Prompt Template'e aşağıdaki prompt'u yazın:
Format Prompt Values bölümünde değişkenleri belirtin:

Voila! SQL sohbet botunuz artık test için hazır!
Query
Öncelikle veri tabanı ile ilgili bir şey soralım.

Günlüklere baktığımızda, ilk LLMChain'in bize bir SQL sorgusu verebildiğini görebiliriz:
Girdi:
Çıktı
SQL sorgusu yürütüldükten sonra sonuç 2. LLMChain'e aktarılır:
Girdi
Çıktı
Şimdi, SQL veritabanıyla ilgisi olmayan bir şey sorarsak, Else yolu izlenir.

İlk LLMChain için aşağıdaki gibi bir SQL sorgusu oluşturulur:
Ancak, hem SELECT hem de WHERE içermediği için If Else kontrolünde başarısız olur, bu nedenle şöyle diyen bir istem içeren Else rotasına girilir:
Ve son çıktı şudur:
Sonuç
Bu örnekte, veritabanınızla etkileşime girebilen ve veritabanıyla ilgisi olmayan soruları da ele alabilen bir SQL sohbet robotunu başarıyla oluşturduk. Daha fazla iyileştirme, konuşma geçmişi sağlamak için bellek eklemeyi içerir.
Sohbet akışını aşağıda bulabilirsiniz:
JSON DOSYASI LİNK
Last updated