Gemini की मदद से एआई (AI) एजेंट बनाएं

अपने बिज़नेस सिस्टम के प्रोग्रामिंग इंटरफ़ेस के लिए, आर्टिफ़िशियल इंटेलिजेंस (एआई) का इस्तेमाल करने वाला चैट इंटरफ़ेस बनाएं. साथ ही, अपने सहकर्मियों को आपके कारोबार के डेटा के बारे में सवाल पूछने दें. अपने कारोबार को बेहतर बनाने के लिए अपने संगठन के डेटा का विश्लेषण करना और उसकी रिपोर्ट करना ज़रूरी है. सही डेटा के ज़रिए समस्याओं का पता लगाना, ट्रेंड की पहचान करना, और नतीजों की जांच करना सभी मुमकिन है. हालांकि, एक डेवलपर के तौर पर, सही डेटा ढूंढने में अपने उन सहकर्मियों की मदद करना काफ़ी मुश्किल होता है जिन्हें कोड नहीं करना पड़ता.

SQL Talk प्रोजेक्ट एक ओपन सोर्स ऐप्लिकेशन है. यह कारोबार के डेटा से जुड़े सवालों के जवाब देने के लिए, जनरेटिव एआई टेक्नोलॉजी का इस्तेमाल करता है. यह प्रोजेक्ट, कारोबार के डेटा से जुड़े सवालों को एसक्यूएल क्वेरी और एपीआई कॉल में बदलने के लिए, Gemini API और फ़ंक्शन कॉल की सुविधा सुविधा का इस्तेमाल करता है. इसके बाद, नतीजों को वापस सामान्य भाषा में बदलता है. इस प्रोजेक्ट का इस्तेमाल, अपने कारोबार के लिए डेटा एजेंट बनाने के शुरुआती पॉइंट के तौर पर किया जा सकता है. साथ ही, इसका इस्तेमाल करके, सिर्फ़ एक बार इस्तेमाल होने वाले कोड की ज़रूरत नहीं है, ताकि आपके साथियों को जवाब मिल सके.

प्रोजेक्ट की खास जानकारी और इसे बढ़ाने का तरीका जानने के लिए, एआई (AI) डेटा एजेंट | Google के एआई की मदद से बनाएं पर जाएं. यहां आपको इसे बनाने वालों से मिली अहम जानकारी भी मिलेगी. इसके अलावा, इन निर्देशों का पालन करके प्रोजेक्ट को बढ़ाया जा सकता है.

SQL Talk प्रोजेक्ट ऐप्लिकेशन का यूज़र इंटरफ़ेस

पहला डायग्राम. SQL Talk प्रोजेक्ट ऐप्लिकेशन का यूज़र इंटरफ़ेस.

प्रोजेक्ट सेटअप

ये निर्देश, डेवलपमेंट और टेस्टिंग के लिए SQL Talk प्रोजेक्ट सेटअप पाने में आपकी मदद करते हैं. सामान्य चरणों में SQL टॉक प्रोजेक्ट बनाना, Google Cloud शेल एडिटर डेवलपमेंट प्रोजेक्ट सेट अप करना, Google Cloud प्रोजेक्ट आईडी पाना, और प्रोजेक्ट सेटिंग कॉन्फ़िगर करने के लिए स्क्रिप्ट का इस्तेमाल करना है. इन निर्देशों में, Cloud Shell Editor का इस्तेमाल करके प्रोजेक्ट सेट अप करने का तरीका बताया गया है. इससे प्रोजेक्ट को जल्दी और आसानी से सेट अप करने, चलाने, और अपडेट करने में मदद मिलती है.

प्रोजेक्ट के लिए Cloud Shell इंस्टेंस बनाना

प्रोजेक्ट रिपॉज़िटरी को Cloud Shell इंस्टेंस में क्लोन करके, SQL Talk प्रोजेक्ट सेट अप किया जा सकता है. यह प्रोसेस, प्रोजेक्ट के लिए Google Cloud इन्फ़्रास्ट्रक्चर में एक वर्चुअल डेवलपमेंट एनवायरमेंट इंस्टेंस सेट अप करती है. साथ ही, उस वर्चुअल एनवायरमेंट में कोड रिपॉज़िटरी को क्लोन करती है.

SQL Talk के लिए Cloud Shell इंस्टेंस बनाने के लिए:

यह लिंक, Google Cloud Shell Editor का इंस्टेंस सेट अप करता है. साथ ही, SQL Talk के डेटा स्टोर करने की जगह को इंस्टेंस में क्लोन करता है.

Google Cloud Shell Editor, जिसके साथ SQL Talk प्रोजेक्ट कोड दिखाया गया है

दूसरी इमेज. SQL Talk प्रोजेक्ट को Google Cloud शेल एडिटर डेवलपमेंट एनवायरमेंट में क्लोन किया गया.

Cloud प्रोजेक्ट आईडी पाएं

SQL Talk प्रोजेक्ट, Gemini मॉडल के साथ-साथ Google Cloud की सेवाओं से कनेक्ट करने के लिए, Google Cloud प्रोजेक्ट आईडी का इस्तेमाल करता है. आपको Cloud Shell Editor में प्रोजेक्ट आईडी कॉन्फ़िगर करना होता है, ताकि ऐप्लिकेशन को इन सेवाओं से कनेक्ट किया जा सके.

Cloud Shell Editor को किसी प्रोजेक्ट आईडी से कनेक्ट करने के लिए:

  1. अगर ज़रूरी हो, तो Google Cloud कंसोल पर जाएं और साइन इन करें.
  2. कोई मौजूदा Google Cloud प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं.
  3. प्रोजेक्ट के लिए क्लाउड प्रोजेक्ट आईडी नोट कर लें.
  4. Editor इंस्टेंस को अपने प्रोजेक्ट से कनेक्ट करें और प्रोजेक्ट को कॉन्फ़िगर करें. Cloud Shell Editor विंडो में, टर्मिनल पैनल में यह कमांड डालें:

    gcloud config set project YOUR_PROJECT_ID
    

SQL Talk प्रोजेक्ट को कॉन्फ़िगर करें

SQL Talk प्रोजेक्ट, प्रोजेक्ट को चलाने के लिए Google Cloud की सेवाओं का इस्तेमाल करता है. इसमें Gemini मॉडल से कनेक्ट करने के लिए BigQuery डेटाबेस सेवा और Vertex AI API का इस्तेमाल किया जाता है. SQL Talk प्रोजेक्ट में एक setup.sh स्क्रिप्ट शामिल होती है. यह स्क्रिप्ट, Google Cloud की ज़रूरी सेवाओं के साथ प्रोजेक्ट को कॉन्फ़िगर करती है. साथ ही, यह प्रोजेक्ट के डिफ़ॉल्ट वर्शन को शुरू करती है.

प्रोजेक्ट Cloud Shell Editor के इंस्टेंस को कॉन्फ़िगर करने और चलाने के लिए:

  1. Cloud Shell Editor विंडो टर्मिनल पैनल में, Cloud Shell SQL Talk (/sql-talk-app) प्रोजेक्ट डायरेक्ट्री पर जाएं:

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. टर्मिनल पैनल में, ये निर्देश डालें:

    bash setup.sh
    

सेटअप स्क्रिप्ट के पूरा हो जाने के बाद, आपको Cloud Shell Editor टर्मिनल विंडो में जैसा मैसेज दिखेगा. यह मैसेज बताता है कि सेटअप प्रोसेस पूरी हो गई है और SQL Talk ऐप्लिकेशन चल रहा है:

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

प्रोजेक्ट की जांच करें

SQL Talk प्रोजेक्ट का सेटअप पूरा करने के बाद, ऐप्लिकेशन की जांच की जा सकती है. इससे यह पुष्टि की जा सकेगी कि ऐप्लिकेशन सही तरीके से काम कर रहा है या नहीं. ऐप्लिकेशन को चलाने पर, सेटअप स्क्रिप्ट अपने-आप उसे शुरू कर देती है. ऐप्लिकेशन को रीस्टार्ट करने के लिए, नीचे दिया गया तरीका अपनाएं.

SQL टॉक ऐप्लिकेशन चलाने के लिए:

  1. अगर Cloud Shell Editor कुछ समय से इस्तेमाल में नहीं है और डिसकनेक्ट हो गया है, तो आपको अपने Cloud प्रोजेक्ट आईडी को फिर से कनेक्ट करना पड़ सकता है.

    gcloud config set project YOUR_PROJECT_ID
    
  2. Cloud Shell Editor विंडो टर्मिनल पैनल में, Cloud Shell SQL Talk प्रोजेक्ट डायरेक्ट्री पर जाएं.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. टर्मिनल पैनल में, ये निर्देश डालें.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. SQL टॉक ऐप्लिकेशन देखें. क्लाउड शेल एडिटर विंडो में सबसे ऊपर दाईं ओर, वेब की झलक बटन चुनें और फिर पोर्ट 8080 पर झलक देखें चुनें.

हाइलाइट किए गए वेब झलक बटन के साथ क्लाउड शेल एडिटर हेडर

SQL टॉक ऐप्लिकेशन के अपडेट देखने के लिए:

  • SQL Talk वेब ऐप्लिकेशन के वेब प्रीव्यू में, ब्राउज़र या ब्राउज़र टैब को फिर से लोड करें.

SQL Talk ऐप्लिकेशन को बंद करने के लिए:

  • Cloud Shell Editor विंडो के टर्मिनल पैनल में, Ctrl-C टाइप करें.

ऐप्लिकेशन में बदलाव करें

ऐप्लिकेशन के लिए Python कोड में बदलाव करके, व्यवहार को बदला जा सकता है और SQL Talk ऐप्लिकेशन में क्षमताएं जोड़ी जा सकती हैं. इस सेक्शन में, SQL Talk ऐप्लिकेशन में एक नया फ़ंक्शन कॉल जोड़ने का तरीका बताया गया है.

Gemini API फ़ंक्शन कॉल की सुविधा, एक खास सिंटैक्स का इस्तेमाल करके जनरेटिव मॉडल से इस्तेमाल किए जाने वाले फ़ंक्शन तय करती है. इन फ़ंक्शन का इस्तेमाल सवालों के जवाब देने या समस्याओं को हल करने के लिए किया जाता है. इस सिंटैक्स का किसी असल एपीआई कॉल के सिंटैक्स से सटीक तौर पर मेल खाना ज़रूरी नहीं है. इसके बजाय, फ़ंक्शन कॉल की सुविधा का इस्तेमाल करके जनरेटिव मॉडल को एपीआई कॉल सिंटैक्स के हिसाब से खास डेटा इनपुट या पैरामीटर उपलब्ध कराने के लिए कहा जाता है. इसके बाद, उन पैरामीटर का इस्तेमाल अपने ऐप्लिकेशन कोड में असल एपीआई कॉल चलाने के लिए किया जाता है.

लागू करने के इस उदाहरण में आपको दिखाया गया है कि हाल ही की डेटाबेस क्वेरी या जॉब की सूची बनाने के लिए, फ़ंक्शन कॉल कैसे बनाई जाए. इसके बाद, SQL टॉक ऐप्लिकेशन कोड में उस परिभाषा को असल एपीआई कॉल से कैसे मैप किया जाए.

फ़ंक्शन कॉल की परिभाषा जोड़ें

हाल की डेटाबेस क्वेरी या जॉब की सूची बनाने के लिए, नया फ़ंक्शन कॉल जोड़ें. इस परिभाषा का इस्तेमाल, जनरेटिव मॉडल में करता है. इससे यह समझने में मदद मिलती है कि एपीआई कॉल क्या करता है और उसे किन इनपुट पैरामीटर की ज़रूरत है. उदाहरण के लिए, फ़ंक्शन की परिभाषा बिना किसी पैरामीटर के तय की गई है.

ऐप्लिकेशन में कोई नया फ़ंक्शन कॉल जोड़ने के लिए:

  1. Cloud Shell Editor विंडो में, sql-talk-app/app.py कोड फ़ाइल खोलें.
  2. list_datasets_funcफ़ंक्शन के एलान के बाद, नया FunctionDeclaration जोड़ें.

    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. sql_query_tool ऑब्जेक्ट में नया फ़ंक्शन जोड़ें.

    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,
        ],
    )
    

नए फ़ंक्शन के लिए एपीआई कॉल चलाने के मकसद से कोड जोड़ने के लिए:

  • sql-talk-app/app.py कोड फ़ाइल में, while function_calling_in_process:लूप में एक नया if क्लॉज़ जोड़ें.

    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])
    

ज़्यादा रिसॉर्स

SQL क्वेरी प्रोजेक्ट के बारे में ज़्यादा जानकारी के लिए, कोड रिपॉज़िटरी देखें और SQL Talk प्रोजेक्ट के बारे में जानकारी देने वाली Cloud कम्यूनिटी ब्लॉग पोस्ट देखें. अगर आपको ऐप्लिकेशन बनाने में मदद चाहिए या आपको दूसरे डेवलपर के साथ मिलकर काम करना है, तो Google Developers कम्यूनिटी Discord सर्वर और Google Cloud AI/ML फ़ोरम पर जाएं. Build with Google AI के और प्रोजेक्ट के लिए, वीडियो प्लेलिस्ट देखें.