মিথুনের সাথে একটি এআই ডেটা এক্সপ্লোরেশন এজেন্ট তৈরি করুন

আপনার ব্যবসায়িক সিস্টেম প্রোগ্রামিং ইন্টারফেসের জন্য একটি কৃত্রিম বুদ্ধিমত্তা (AI) চালিত চ্যাট ইন্টারফেস তৈরি করুন এবং আপনার সহকর্মীদের আপনার ব্যবসার ডেটা সম্পর্কে প্রশ্ন জিজ্ঞাসা করতে দিন। আপনি কীভাবে ব্যবসা করবেন তা উন্নত করার জন্য আপনার প্রতিষ্ঠানের ডেটা বিশ্লেষণ এবং প্রতিবেদন করা অপরিহার্য। সমস্যা খোঁজা, প্রবণতা আবিষ্কার করা এবং ফলাফল অনুসন্ধান করা সবই সঠিক ডেটা দিয়ে সম্ভব, কিন্তু একজন বিকাশকারী হিসাবে, আপনার নন-কোডিং সহকর্মীদের সঠিক ডেটা আবিষ্কার করতে সাহায্য করা চ্যালেঞ্জিং হতে পারে।

এসকিউএল টক প্রজেক্ট হল একটি ওপেন সোর্স অ্যাপ্লিকেশন যা ব্যবসার ডেটা সম্পর্কে প্রশ্নের উত্তর দিতে জেনারেটিভ এআই প্রযুক্তি ব্যবহার করে। প্রকল্পটি জেমিনি এপিআই এবং ফাংশন কলিং বৈশিষ্ট্য ব্যবহার করে ব্যবসার ডেটা প্রশ্নগুলিকে এসকিউএল কোয়েরি এবং এপিআই কলে রূপান্তরিত করে এবং তারপরে ফলাফলগুলিকে সরল ভাষায় রূপান্তরিত করে। আপনি এই প্রকল্পটিকে আপনার নিজের ব্যবসার জন্য একটি ডেটা এজেন্ট তৈরির জন্য একটি সূচনা বিন্দু হিসাবে ব্যবহার করতে পারেন, এবং আপনাকে একগুচ্ছ-ব্যবহারের কোড না লিখেই আপনার সহকর্মীদের উত্তর পেতে সাহায্য করতে পারেন৷

প্রোজেক্টের ভিডিও ওভারভিউ এবং কীভাবে এটি প্রসারিত করা যায়, যারা এটি তৈরি করেন তাদের অন্তর্দৃষ্টি সহ, এআই ডেটা এজেন্ট দেখুন | Google AI দিয়ে তৈরি করুন । অন্যথায়, আপনি নিম্নলিখিত নির্দেশাবলী ব্যবহার করে প্রকল্পটি প্রসারিত করা শুরু করতে পারেন।

SQL টক প্রকল্প অ্যাপ্লিকেশন ব্যবহারকারী ইন্টারফেস

চিত্র 1. SQL টক প্রকল্প অ্যাপ্লিকেশন ব্যবহারকারী ইন্টারফেস।

প্রকল্প সেটআপ

এই নির্দেশাবলী আপনাকে বিকাশ এবং পরীক্ষার জন্য SQL টক প্রকল্প সেটআপের মাধ্যমে নিয়ে যায়। সাধারণ পদক্ষেপগুলি হল SQL টক প্রকল্প তৈরি করা, একটি Google ক্লাউড শেল এডিটর ডেভেলপমেন্ট প্রজেক্ট সেট আপ করা, একটি Google ক্লাউড প্রজেক্ট আইডি পাওয়া এবং প্রকল্প সেটিংস কনফিগার করার জন্য একটি স্ক্রিপ্ট ব্যবহার করা। এই নির্দেশাবলী বর্ণনা করে কিভাবে ক্লাউড শেল এডিটর ব্যবহার করে প্রজেক্ট সেট আপ করতে হয়, যা প্রজেক্টকে দ্রুত এবং সুবিধাজনক সেট আপ, রানিং এবং আপডেট করে।

প্রকল্পের জন্য একটি ক্লাউড শেল উদাহরণ তৈরি করুন

আপনি একটি ক্লাউড শেল উদাহরণে প্রকল্প সংগ্রহস্থল ক্লোন করে SQL টক প্রকল্প সেট আপ করতে পারেন। এই প্রক্রিয়াটি প্রোজেক্টের জন্য Google ক্লাউড অবকাঠামোর ভিতরে একটি ভার্চুয়াল ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করে এবং সেই ভার্চুয়াল পরিবেশে কোড রিপোজিটরি ক্লোন করে।

SQL টকের জন্য একটি ক্লাউড শেল উদাহরণ তৈরি করতে:

এই লিঙ্কটি একটি Google ক্লাউড শেল এডিটর ইন্সট্যান্স সেট আপ করে এবং ইনস্ট্যান্সে SQL টকের রিপোজিটরি ক্লোন করে।

Google ক্লাউড শেল সম্পাদক SQL টক প্রকল্প কোড দেখানো হয়েছে

চিত্র 2. এসকিউএল টক প্রকল্পটি Google ক্লাউড শেল এডিটর উন্নয়ন পরিবেশে ক্লোন করা হয়েছে।

একটি ক্লাউড প্রকল্প আইডি পান

এসকিউএল টক প্রকল্পটি মিথুন মডেল সহ Google ক্লাউড পরিষেবাগুলির সাথে সংযোগ করতে একটি Google ক্লাউড প্রকল্প আইডি ব্যবহার করে৷ আপনি ক্লাউড শেল এডিটরের মধ্যে একটি প্রজেক্ট আইডি কনফিগার করেন যাতে অ্যাপ্লিকেশনটিকে এই পরিষেবাগুলির সাথে সংযোগ করার অনুমতি দেওয়া হয়।

ক্লাউড শেল এডিটরকে একটি প্রোজেক্ট আইডিতে সংযুক্ত করতে:

  1. Google ক্লাউড কনসোলে নেভিগেট করুন এবং প্রয়োজনে সাইন ইন করুন।
  2. একটি বিদ্যমান ক্লাউড প্রকল্প নির্বাচন করুন, বা একটি নতুন তৈরি করুন
  3. প্রকল্পের জন্য ক্লাউড প্রকল্প আইডি একটি নোট করুন।
  4. আপনার প্রোজেক্টে এডিটর ইনস্ট্যান্সটি কানেক্ট করুন এবং প্রোজেক্ট কনফিগার করুন। ক্লাউড শেল এডিটর উইন্ডোতে, টার্মিনাল প্যানেলে নিম্নলিখিত কমান্ডটি প্রবেশ করান:

    gcloud config set project YOUR_PROJECT_ID
    

SQL টক প্রকল্প কনফিগার করুন

এসকিউএল টক প্রকল্পটি প্রকল্পটি চালানোর জন্য Google ক্লাউড পরিষেবাগুলি ব্যবহার করে, যার মধ্যে রয়েছে BigQuery ডাটাবেস পরিষেবা এবং জেমিনি মডেলগুলির সাথে সংযোগ করতে Vertex AI API ৷ SQL টক প্রকল্পে একটি setup.sh স্ক্রিপ্ট রয়েছে যা প্রয়োজনীয় Google ক্লাউড পরিষেবাগুলির সাথে প্রকল্পটিকে কনফিগার করে এবং প্রকল্পের ডিফল্ট সংস্করণ শুরু করে৷

প্রজেক্ট ক্লাউড শেল এডিটর ইনস্ট্যান্স কনফিগার এবং চালানোর জন্য:

  1. ক্লাউড শেল এডিটর উইন্ডো টার্মিনাল প্যানেলে, ক্লাউড শেল এসকিউএল টক ( /sql-talk-app ) প্রকল্প ডিরেক্টরিতে নেভিগেট করুন:

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. টার্মিনাল প্যানেলে, নিম্নলিখিত কমান্ডটি প্রবেশ করান:

    bash setup.sh
    

সেটআপ স্ক্রিপ্ট সফলভাবে সম্পন্ন হলে, আপনি ক্লাউড শেল এডিটর টার্মিনাল উইন্ডোতে নিম্নলিখিতটির মতো একটি বার্তা দেখতে পাবেন। এই বার্তাটি নির্দেশ করে যে সেটআপ প্রক্রিয়া সফল হয়েছে এবং SQL Talk অ্যাপ্লিকেশন চলছে:

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

প্রকল্পটি পরীক্ষা করুন

একবার আপনি SQL টক প্রকল্পের সেটআপ সম্পন্ন করার পরে, আপনি এটি প্রত্যাশিত হিসাবে কাজ করছে তা যাচাই করতে অ্যাপ্লিকেশনটি পরীক্ষা করতে পারেন। আপনি যখন এটি চালান তখন সেটআপ স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটি শুরু করে এবং আপনি নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে অ্যাপ্লিকেশনটি পুনরায় চালু করতে পারেন।

এসকিউএল টক অ্যাপ্লিকেশন চালানোর জন্য:

  1. যদি ক্লাউড শেল এডিটর নিষ্ক্রিয় হয়ে থাকে এবং সংযোগ বিচ্ছিন্ন হয়ে থাকে, তাহলে আপনাকে আপনার ক্লাউড প্রকল্প আইডিতে পুনরায় সংযোগ করতে হতে পারে।

    gcloud config set project YOUR_PROJECT_ID
    
  2. ক্লাউড শেল এডিটর উইন্ডো টার্মিনাল প্যানেলে, ক্লাউড শেল SQL টক প্রোজেক্ট ডিরেক্টরিতে নেভিগেট করুন।

    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. এসকিউএল টক অ্যাপ্লিকেশন দেখুন। ক্লাউড শেল এডিটর উইন্ডোর উপরের ডানদিকে, ওয়েব প্রিভিউ বোতামটি নির্বাচন করুন এবং তারপর পোর্ট 8080-এ পূর্বরূপ দেখুন

ক্লাউড শেল এডিটর হেডার ওয়েব প্রিভিউ বোতাম হাইলাইট করা হয়েছে

SQL Talk অ্যাপ্লিকেশনের আপডেট দেখতে:

  • SQL Talk ওয়েব অ্যাপ্লিকেশন ওয়েব প্রিভিউতে, ব্রাউজার বা ব্রাউজার ট্যাবটি পুনরায় লোড করুন।

এসকিউএল টক অ্যাপ্লিকেশন বন্ধ করতে:

  • ক্লাউড শেল এডিটর উইন্ডো টার্মিনাল প্যানেলে, Ctrl-C টাইপ করুন।

অ্যাপ্লিকেশন পরিবর্তন করুন

আপনি আচরণ পরিবর্তন করতে পারেন এবং অ্যাপ্লিকেশনটির জন্য পাইথন কোড পরিবর্তন করে SQL টক অ্যাপ্লিকেশনে সক্ষমতা যোগ করতে পারেন। এই বিভাগটি বর্ণনা করে কিভাবে SQL Talk অ্যাপ্লিকেশনে একটি নতুন ফাংশন কল যোগ করতে হয়।

Gemini API ফাংশন কলিং বৈশিষ্ট্য একটি নির্দিষ্ট সিনট্যাক্স ব্যবহার করে ফাংশনগুলিকে সংজ্ঞায়িত করতে যা জেনারেটিভ মডেল দ্বারা প্রশ্নের উত্তর দিতে বা সমস্যার সমাধান করতে ব্যবহার করা হবে৷ এই সিনট্যাক্সটি একটি প্রকৃত API কলের সিনট্যাক্সের সাথে সঠিকভাবে মেলে না। পরিবর্তে, আপনি ফাংশন কলিং বৈশিষ্ট্য ব্যবহার করে জেনারেটিভ মডেলকে নির্দিষ্ট ডেটা ইনপুট বা পরামিতি প্রদান করতে বাধ্য করেন যা API কল সিনট্যাক্সের সাথে সামঞ্জস্যপূর্ণ, এবং তারপর আপনার অ্যাপ্লিকেশন কোডের মধ্যে প্রকৃত API কলগুলি চালানোর জন্য সেই প্যারামিটারগুলি ব্যবহার করুন৷

এই উদাহরণ বাস্তবায়ন আপনাকে দেখায় কিভাবে সাম্প্রতিক ডাটাবেস কোয়েরি বা কাজের তালিকা করার জন্য একটি ফাংশন কল সংজ্ঞা তৈরি করতে হয় এবং তারপর সেই সংজ্ঞাটিকে SQL টক অ্যাপ্লিকেশন কোডের মধ্যে প্রকৃত API কলে ম্যাপ করে।

একটি ফাংশন কল সংজ্ঞা যোগ করুন

সাম্প্রতিক ডাটাবেস প্রশ্ন বা কাজের তালিকার জন্য একটি নতুন ফাংশন কল যোগ করুন। এপিআই কল কী করে এবং এর জন্য কী ইনপুট পরামিতি প্রয়োজন তা বোঝার জন্য এই সংজ্ঞাটি জেনারেটিভ মডেল দ্বারা ব্যবহৃত হয়। এই উদাহরণ ফাংশন সংজ্ঞা কোন পরামিতি ছাড়া সংজ্ঞায়িত করা হয়.

অ্যাপ্লিকেশনটিতে একটি নতুন ফাংশন কল যোগ করতে:

  1. ক্লাউড শেল এডিটর উইন্ডোতে, 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,
        ],
    )
    

নতুন ফাংশনের জন্য API কল চালানোর জন্য কোড যোগ করতে:

  • sql-talk-app/app.py কোড ফাইলে, while function_calling_in_process: loop-এ একটি নতুন if clause যোগ করুন।

    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 টক প্রকল্প সম্পর্কে ক্লাউড কমিউনিটি ব্লগ পোস্টটি দেখুন। আপনার যদি অ্যাপ্লিকেশন তৈরি করতে সাহায্যের প্রয়োজন হয় বা অন্য ডেভেলপারদের সাথে সহযোগিতা করতে চান, তাহলে Google Developers Community Discord সার্ভার এবং Google Cloud AI/ML ফোরাম দেখুন। Google AI প্রকল্পের সাথে আরও বিল্ড করার জন্য, ভিডিও প্লেলিস্টটি দেখুন।