Gemini ile AI veri keşif aracısı oluşturma

İş sistemi programlama arayüzleriniz için yapay zeka (AI) destekli bir sohbet arayüzü oluşturun ve iş arkadaşlarınızın iş verilerinizle ilgili sorular sormasına izin verin. Kuruluşunuzun verileriyle ilgili analiz ve raporlama yapmak, iş çalışma şeklinizi iyileştirmek için olmazsa olmazdır. Sorunları bulmak, trendleri keşfetmek ve sonuçları araştırmak doğru verilerle gerçekleştirilebilir; ancak bir geliştirici olarak kod yazmayan iş arkadaşlarınızın doğru verileri keşfetmesine yardımcı olmak zor olabilir.

SQL Talk projesi, iş verileri hakkındaki soruları yanıtlamak için üretken yapay zeka teknolojisini kullanan açık kaynak bir uygulamadır. Projede, iş verileriyle ilgili soruları SQL sorgularına ve API çağrılarına dönüştürmek, ardından sonuçları tekrar sade bir dile dönüştürmek için Gemini API ve İşlev Çağrısı özelliği kullanılıyor. Bu projeyi kendi işletmeniz için bir veri aracısı oluşturmak üzere başlangıç noktası olarak kullanabilir ve tek kullanımlık bir sürü kod yazmak zorunda kalmadan iş arkadaşlarınızın sorularınıza yanıt almalarına yardımcı olabilirsiniz.

Projeye ve projeyi nasıl genişleteceğinize dair genel bakış videosu için AI Data Agent | Build with Google AI'a göz atın. Aksi halde aşağıdaki talimatları uygulayarak projeyi genişletmeye başlayabilirsiniz.

SQL Talk projesi uygulaması kullanıcı arayüzü

Şekil 1. SQL Talk projesi uygulaması kullanıcı arayüzü.

Proje ayarlama

Bu talimatlar, geliştirme ve test için SQL Talk projesi ayarlarını yapmanıza yardımcı olur. Genel adımlar arasında SQL Talk projesini oluşturma, Google Cloud Shell Düzenleyici geliştirme projesi oluşturma, Google Cloud Proje Kimliği alma ve proje ayarlarını yapılandırmak için komut dosyası kullanma yer alır. Bu talimatlarda, projeyi kurma, çalıştırma ve güncelleme işlemlerini hızlı ve kolay hale getiren Cloud Shell Düzenleyici'yi kullanarak nasıl proje ayarlayabileceğiniz açıklanmaktadır.

Proje için Cloud Shell örneği oluşturma

Proje deposunu bir Cloud Shell örneğine klonlayarak SQL Talk projesini oluşturabilirsiniz. Bu süreç, proje için Google Cloud altyapısında bir sanal geliştirme ortamı örneği oluşturur ve kod deposunu bu sanal ortama klonlar.

SQL Talk için Cloud Shell örneği oluşturmak üzere:

Bu bağlantı bir Google Cloud Shell Düzenleyici örneği oluşturur ve SQL Talk deposunu örneğe klonlar.

SQL Talk proje kodunun gösterildiği Google Cloud Shell Düzenleyici

2. Şekil. SQL Talk projesi Google Cloud Shell Düzenleyici geliştirme ortamına klonlandı.

Cloud proje kimliği alın

SQL Talk projesi, Gemini modelleri dahil olmak üzere Google Cloud hizmetlerine bağlanmak için bir Google Cloud proje kimliği kullanır. Uygulamanın bu hizmetlere bağlanmasına izin vermek için Cloud Shell Düzenleyici'de bir proje kimliği yapılandırırsınız.

Cloud Shell Düzenleyici'yi bir proje kimliğine bağlamak için:

  1. Google Cloud konsoluna gidin ve gerekirse oturum açın.
  2. Mevcut bir Cloud projesini seçin veya yeni proje oluşturun.
  3. Projenin Cloud projesi kimliğini not edin.
  4. Editor örneğini projenize bağlayın ve projeyi yapılandırın. Cloud Shell Düzenleyici penceresinde, terminal panelinde aşağıdaki komutu girin:

    gcloud config set project YOUR_PROJECT_ID
    

SQL Talk projesini yapılandırın

SQL Talk projesi, projeyi çalıştırmak için BigQuery veritabanı hizmeti ve Gemini modellerine bağlanmak için Vertex AI API gibi Google Cloud hizmetlerini kullanır. SQL Talk projesi, projeyi gerekli Google Cloud hizmetleriyle yapılandıran ve projenin varsayılan sürümünü başlatan bir setup.sh komut dosyası içerir.

Projenin Cloud Shell Düzenleyici örneğini yapılandırmak ve çalıştırmak için:

  1. Cloud Shell Düzenleyici pencere terminal panelinde Cloud Shell SQL Talk (/sql-talk-app) proje dizinine gidin:

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. Terminal panelinde şu komutu girin:

    bash setup.sh
    

Kurulum komut dosyası başarıyla tamamlandığında, Cloud Shell Düzenleyici terminal penceresinde aşağıdakine benzer bir mesaj görürsünüz. Bu mesaj, kurulum işleminin başarılı olduğunu ve SQL Talk uygulamasının çalıştığını gösterir:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

Projeyi test etme

SQL Talk projesinin kurulumunu tamamladıktan sonra, uygulamanın beklendiği gibi çalıştığını doğrulamak için uygulamayı test edebilirsiniz. Kurulum komut dosyası, çalıştırıldığında uygulamayı otomatik olarak başlatır ve aşağıdaki adımları izleyerek uygulamayı yeniden başlatabilirsiniz.

SQL Talk uygulamasını çalıştırmak için:

  1. Cloud Shell Düzenleyici boştaysa ve bağlantısı kesilmişse Cloud proje kimliğinize yeniden bağlanmanız gerekebilir.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Cloud Shell Düzenleyici pencere terminal panelinde Cloud Shell SQL Talk proje dizinine gidin.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. Terminal panelinde aşağıdaki komutu girin.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. SQL Talk uygulamasını görüntüleyin. Cloud Shell Düzenleyici penceresinin sağ üst kısmında Web Preview düğmesini ve ardından Preview on port 8080'i (8080 bağlantı noktasında önizle) seçin.

Web Önizlemesi düğmesinin vurgulandığı Cloud Shell Düzenleyici başlığı

SQL Talk uygulaması güncellemelerini görüntülemek için:

  • SQL Talk web uygulaması Web Önizlemesi'nde, tarayıcı veya tarayıcı sekmesini yeniden yükleyin.

SQL Talk uygulamasını durdurmak için:

  • Cloud Shell Düzenleyici pencere terminal panelinde Ctrl-C tuşlarına basın.

Uygulamayı değiştirin

Uygulama için Python kodunu değiştirerek SQL Talk uygulamasının davranışını değiştirebilir ve uygulamaya özellikler ekleyebilirsiniz. Bu bölümde, SQL Talk uygulamasına nasıl yeni bir işlev çağrısı ekleyeceğiniz açıklanmaktadır.

Gemini API İşlev Çağrısı özelliği, üretici model tarafından soruları yanıtlamak veya sorunları çözmek için kullanılacak işlevleri tanımlamak amacıyla belirli bir söz dizimi kullanır. Bu söz diziminin, gerçek bir API çağrısının söz dizimiyle tam olarak eşleşmesi gerekmez. Bunun yerine, üretken modeli API çağrısı söz dizimine uyan belirli veri girişleri veya parametreleri sağlamaya zorlamak için İşlev Çağrısı özelliğini kullanırsınız. Ardından bu parametreleri, uygulama kodunuzdaki gerçek API çağrılarını yürütmek için kullanırsınız.

Bu örnek uygulamada, son veritabanı sorgularını veya işlerini listelemek için bir işlev çağrısı tanımının nasıl oluşturulacağı ve ardından bu tanımı SQL Talk uygulama kodu içindeki gerçek API çağrısıyla nasıl eşleştirileceği gösterilmektedir.

İşlev çağrısı tanımı ekleme

Son veritabanı sorgularını veya işlerini listelemek için yeni bir işlev çağrısı ekleyin. Bu tanım, üretici model tarafından API çağrısının ne yaptığını ve hangi giriş parametrelerini gerektirdiğini anlamak için kullanılır. Bu örnek işlev tanımı, parametre olmadan tanımlanmıştır.

Uygulamaya yeni bir işlev çağrısı eklemek için:

  1. Cloud Shell Düzenleyici penceresinde sql-talk-app/app.py kod dosyasını açın.
  2. list_datasets_funcİşlev bildiriminden sonra yeni bir FunctionDeclaration ekleyin.

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. Yeni işlevi sql_query_tool nesnesine ekleyin.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

Yeni işlev için API çağrısını çalıştıracak kod eklemek üzere:

  • sql-talk-app/app.py kod dosyasında, while function_calling_in_process: döngüsüne yeni bir if ifadesi ekleyin.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

Ek kaynaklar

SQL Query projesi hakkında daha fazla bilgi için kod deposuna göz atın ve SQL Talk projesiyle ilgili Cloud Community blog yayınına göz atın. Uygulamayı oluşturma konusunda yardıma ihtiyacınız varsa veya diğer geliştiricilerle ortak çalışma yapmak istiyorsanız Google Developers Community Discord sunucusuna ve Google Cloud AI/ML Forumu'na göz atın. Daha fazla Build with Google AI projesi için video oynatma listesine göz atın.