Docs एजेंट की मदद से, एआई (AI) कॉन्टेंट सर्च तैयार करना

जानकारी खोजना, आर्टिफ़िशियल इंटेलिजेंस (एआई) जनरेटिव मॉडल के सबसे आम इस्तेमाल में से एक है. एआई की मदद से अपने कॉन्टेंट के लिए, 'बातचीत वाला सर्च' इंटरफ़ेस बनाने पर, आपके उपयोगकर्ता खास सवाल पूछ सकते हैं और सीधे जवाब पा सकते हैं.

इस ट्यूटोरियल में, कॉन्टेंट के लिए एआई की मदद से काम करने वाला, बातचीत वाला सर्च इंटरफ़ेस बनाने का तरीका बताया गया है. यह टूल, Docs Agent पर आधारित है. यह एक ओपन सोर्स प्रोजेक्ट है, जो Google Gemini API का इस्तेमाल करके बातचीत वाला सर्च इंटरफ़ेस बनाता है. ऐसा करने के लिए, नए एआई मॉडल को ट्रेनिंग नहीं दी जाती या Gemini मॉडल की मदद से मॉडल ट्यूनिंग नहीं की जाती. इसका मतलब है कि आपको यह खोज क्षमता तुरंत मिल सकती है. साथ ही, छोटे और बड़े कॉन्टेंट सेट के लिए इसका इस्तेमाल किया जा सकता है.

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

खास जानकारी

Docs Agent प्रोजेक्ट किसी खास कॉन्टेंट सेट के लिए, बातचीत वाला सर्च इंटरफ़ेस उपलब्ध कराता है. यह Google Gemini API और जनरेटिव मॉडल की मदद से काम करता है. उपयोगकर्ता, बातचीत वाले अंदाज़ में सवाल पूछ सकते हैं और किसी खास कॉन्टेंट के हिसाब से जवाब पा सकते हैं. इस दौरान, Docs का एजेंट कॉन्टेंट के वेक्टर डेटाबेस से सवाल पूछता है और उसे खोजता है. साथ ही, जनरेटिव मॉडल के लिए ज़्यादा जानकारी वाला प्रॉम्प्ट बनाता है, जिसमें काम के टेक्स्ट के स्निपेट शामिल होते हैं. जनरेटिव मॉडल, सवाल का जवाब जनरेट करता है और Docs एजेंट जवाब को फ़ॉर्मैट करके, उपयोगकर्ता को दिखाता है.

Docs एजेंट के फ़ंक्शन वाला डायग्राम पहली इमेज. Docs Agent प्रोजेक्ट ऐप्लिकेशन का फ़ंक्शन वाला डायग्राम.

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

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

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

ये निर्देश, डेवलपमेंट और टेस्टिंग के लिए Docs एजेंट प्रोजेक्ट सेट अप करने में आपकी मदद करते हैं. सामान्य चरणों में कुछ ज़रूरी सॉफ़्टवेयर इंस्टॉल करना, कुछ एनवायरमेंट वैरिएबल सेट करना, कोड स्टोर करने की जगह से प्रोजेक्ट की क्लोन करना, और कॉन्फ़िगरेशन इंस्टॉलेशन चलाना शामिल हैं. कोड प्रोजेक्ट में पैकेज और Python रनटाइम एनवायरमेंट को मैनेज करने के लिए, Python Poetry का इस्तेमाल किया जाता है.

ज़रूरी शर्तें इंस्टॉल करना

Docs Agent प्रोजेक्ट, पैकेज मैनेज करने और ऐप्लिकेशन को चलाने के लिए, Python 3 और Python Poetry का इस्तेमाल करता है. Linux होस्ट मशीन के लिए, इंस्टॉल करने से जुड़े ये निर्देश हैं.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करने के लिए:

  1. Python के लिए, Python 3 और venv वर्चुअल एनवायरमेंट पैकेज इंस्टॉल करें.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. प्रोजेक्ट के लिए डिपेंडेंसी और पैकेजिंग मैनेज करने के लिए, Python Poetry इंस्टॉल करें.
    curl -sSL https://install.python-poetry.org | python3 -
    

प्रोजेक्ट को बढ़ाने पर, ज़्यादा Python लाइब्रेरी जोड़ने के लिए Python Poetry इस्तेमाल किए जा सकते हैं.

एनवायरमेंट वैरिएबल सेट करना

Docs एजेंट कोड प्रोजेक्ट को चलाने के लिए, कुछ एनवायरमेंट वैरिएबल सेट करें. इनमें Google Gemini API पासकोड और Python Poetry सेटिंग शामिल हैं. अगर Linux का इस्तेमाल किया जा रहा है, तो हो सकता है कि आप इन वैरिएबल को अपनी $HOME/.bashrc फ़ाइल में जोड़ना चाहें, ताकि उन्हें आपके टर्मिनल सेशन के लिए डिफ़ॉल्ट सेटिंग बनाई जा सके.

एनवायरमेंट वैरिएबल सेट करने के लिए:

  1. Google Gemini API पासकोड पाएं और कुंजी स्ट्रिंग कॉपी करें.
  2. एपीआई पासकोड को एनवायरमेंट वैरिएबल के तौर पर सेट करें. Linux होस्ट पर, नीचे दिए गए निर्देश का इस्तेमाल करें.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Python Poetry के लिए जाने-पहचाने समस्या को हल करने के लिए, PYTHON_KEYRING_BACKEND पैरामीटर सेट करें. Linux होस्ट पर, नीचे दिए गए निर्देश का इस्तेमाल करें.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

प्रोजेक्ट का क्लोन बनाएं और उसे कॉन्फ़िगर करें

प्रोजेक्ट कोड डाउनलोड करें और ज़रूरी डिपेंडेंसी डाउनलोड और प्रोजेक्ट कॉन्फ़िगर करने के लिए, पोएट्री इंस्टॉल करने के निर्देश का इस्तेमाल करें. प्रोजेक्ट सोर्स कोड को फिर से पाने के लिए, आपको git सोर्स कंट्रोल सॉफ़्टवेयर की ज़रूरत होगी. बाहरी प्रोजेक्ट कोड को डाउनलोड और कॉन्फ़िगर करने के लिए:

  1. नीचे दिए गए निर्देश का इस्तेमाल करके, गिट रिपॉज़िटरी का क्लोन बनाएं.
    git clone https://github.com/google/generative-ai-docs
    
  2. इसके अलावा, स्पार्स चेकआउट का इस्तेमाल करने के लिए, अपना लोकल गिट रिपॉज़िटरी कॉन्फ़िगर किया जा सकता है, ताकि आपके पास सिर्फ़ Docs Agent प्रोजेक्ट की फ़ाइलें रहें.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. docs-agent प्रोजेक्ट की रूट डायरेक्ट्री पर जाएं.
    cd examples/gemini/python/docs-agent/
    
  4. डिपेंडेंसी डाउनलोड करने और प्रोजेक्ट को कॉन्फ़िगर करने के लिए, Poetry इंस्टॉल कमांड चलाएं:
    poetry install
    

कॉन्टेंट तैयार करना

Docs Agent प्रोजेक्ट, टेक्स्ट कॉन्टेंट के साथ काम करने के लिए डिज़ाइन किया गया है. इसमें ऐसे टूल शामिल हैं जो खास तौर पर उन वेबसाइटों के साथ काम करने के लिए इस्तेमाल किए जाते हैं जो Markdown का सोर्स फ़ॉर्मैट के तौर पर इस्तेमाल करती हैं. अगर वेबसाइट के कॉन्टेंट के साथ काम किया जा रहा है, तो आपको दिखाई गई वेबसाइट के स्ट्रक्चर को बनाए रखना चाहिए या उसकी नकल करनी चाहिए. इससे कॉन्टेंट प्रोसेसिंग टास्क चालू हो जाएगा, ताकि उस कॉन्टेंट को मैप और लिंक किया जा सके.

आपके कॉन्टेंट के फ़ॉर्मैट और जानकारी के हिसाब से, आपको कॉन्टेंट से ऐसी गैर-सार्वजनिक जानकारी, इंटरनल नोट या ऐसी दूसरी जानकारी हटानी पड़ सकती है जिसे आप खोज के नतीजों में नहीं दिखाना चाहते. आपको टाइटल और हेडिंग जैसी बेसिक फ़ॉर्मैटिंग को बनाए रखना चाहिए. इनसे कॉन्टेंट प्रोसेसिंग वाले चरण में, लॉजिकल टेक्स्ट स्प्लिट या हिस्से बनाने में मदद मिलती है.

कॉन्टेंट को प्रोसेस करने के लिए:

  1. एआई एजेंट से जिस कॉन्टेंट को खोजना है उसके लिए एक डायरेक्ट्री बनाएं.
    mkdir docs-agent/content/
    
  2. अपने कॉन्टेंट को docs-agent/content/ डायरेक्ट्री में कॉपी करें. अगर कॉन्टेंट कोई वेबसाइट है, तो दिखाई गई वेबसाइट की डायरेक्ट्री के स्ट्रक्चर को बनाए रखें (या उसकी नकल करें).
  3. गैर-सार्वजनिक जानकारी या ऐसी अन्य जानकारी को हटाने के लिए, कॉन्टेंट को साफ़ करें या उसमें बदलाव करें जिसे आपको खोजों में शामिल नहीं करना है.

जांच के लिए, Flutter दस्तावेज़ों का इस्तेमाल करें

अगर आपको Docs एजेंट की जांच करने के लिए, कॉन्टेंट का कोई सेट चाहिए, तो टेस्टिंग के लिए Flutter डेवलपर दस्तावेज़ इस्तेमाल करें.

Flutter डेवलपर दस्तावेज़ पाने के लिए:

  1. आपको जिस कॉन्टेंट को एआई एजेंट से खोजना है उसे कॉन्टेंट डायरेक्ट्री पर ले जाएं.
    cd docs-agent/content/
    
  2. Flutter दस्तावेज़ों को docs-agent/content/ डायरेक्ट्री में क्लोन करें.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

कॉन्टेंट प्रोसेस करें

सर्च एजेंट लोगों के सवालों से जुड़े कॉन्टेंट को असरदार तरीके से खोज सके, इसके लिए आपको वेक्टर का एक डेटाबेस बनाना होगा जो आपके कॉन्टेंट की जानकारी दे. वेक्टर जनरेट करने के लिए, एआई (AI) जनरेटिव मॉडल फ़ंक्शन का इस्तेमाल किया जाता है. इस फ़ंक्शन को टेक्स्ट एम्बेड करना कहा जाता है. टेक्स्ट एम्बेडिंग, टेक्स्ट कॉन्टेंट को अंकों में दिखाती है. वे टेक्स्ट के सिमैंटिक मतलब का अनुमान, नंबर के सेट के तौर पर लगाते हैं. जानकारी को संख्या में दिखाने से सिस्टम को उपयोगकर्ता के सवाल लेने, टेक्स्ट एम्बेड करने वाले उसी फ़ंक्शन का इस्तेमाल करके उसके मतलब का अनुमान लगाने, और फिर k-सबसे पास के नेबर्स (k-NN) एल्गोरिदम का इस्तेमाल करके, गणित के हिसाब से मिलती-जुलती जानकारी ढूंढने में मदद मिलती है.

टेक्स्ट कॉन्टेंट को बांटें

टेक्स्ट एम्बेड करने वाला वेक्टर, कितनी बार टेक्स्ट को दिखा सकता है, यह सीमित ही होता है. यह प्रोजेक्ट, वेक्टर में दिखाए गए टेक्स्ट को 3,000 या उससे कम वर्णों तक सीमित करता है. इसका मतलब है कि आपको अपने कॉन्टेंट को उस वर्ण सीमा के अंदर कई हिस्सों में बांटना होगा. इस सेक्शन में बताया गया है कि Markdown फ़ाइलों को छोटे-छोटे हिस्सों में बांटने के लिए, Docs एजेंट प्रोजेक्ट के साथ दी गई स्क्रिप्ट का इस्तेमाल कैसे किया जाता है. दूसरे कॉन्टेंट फ़ॉर्मैट पर काम करने के बारे में सलाह पाने के लिए, दूसरे फ़ॉर्मैट मैनेज करना देखें.

में चलाना ज़रूरी है.

Markdown फ़ॉर्मैट वाले कॉन्टेंट को अलग-अलग हिस्सों में बांटने के लिए:

  1. docs-agent/config.yaml फ़ाइल में बदलाव करके, प्रोसेसिंग स्क्रिप्ट के लिए इनपुट पैरामीटर कॉन्फ़िगर करें. इस उदाहरण में, Flutter दस्तावेज़ों के किसी सबसेट को टारगेट किया गया है:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. इस कॉन्फ़िगरेशन फ़ाइल में अपने बदलाव सेव करें.
  3. docs-agent प्रोजेक्ट डायरेक्ट्री पर जाएं:
    cd docs-agent/
    
  4. agent chunk कमांड चलाकर, Markdown सोर्स कॉन्टेंट को अलग-अलग करें:
    agent chunk
    

स्क्रिप्ट इनपुट कॉन्टेंट को प्रोसेस करती है और docs-agent/data डायरेक्ट्री में आउटपुट टेक्स्ट फ़ाइलें बनाती है. इस दौरान, टेक्स्ट को टाइटल, हेडिंग, और मिलते-जुलते पैराग्राफ़ के हिसाब से बांटा जाता है. आपके कॉन्टेंट के साइज़ के हिसाब से, प्रोसेसिंग में कुछ समय लग सकता है.

टेक्स्ट एम्बेडिंग वेक्टर बनाएं

अपने कॉन्टेंट को सही साइज़ के सही हिस्सों में बांटने के बाद, वेक्टर डेटाबेस में टेक्स्ट एम्बेड करने की सुविधा का इस्तेमाल किया जा सकता है. 'Docs एजेंट प्रोजेक्ट', टेक्स्ट एम्बेड करने वाले वेक्टर को स्टोर करने के लिए क्रोमा वेक्टर डेटाबेस का इस्तेमाल करता है. इन निर्देशों में बताया गया है कि Docs एजेंट स्क्रिप्ट का इस्तेमाल करके, वेक्टर डेटाबेस को स्प्लिट कॉन्टेंट से अपने-आप कैसे भरता है.

टेक्स्ट एम्बेडिंग जनरेट करने और वेक्टर डेटाबेस पॉप्युलेट करने के लिए:

  1. docs-agent प्रोजेक्ट डायरेक्ट्री पर जाएं:
    cd docs-agent/
    
  2. agent populate कमांड का इस्तेमाल करके, वेक्टर डेटाबेस में अपने कॉन्टेंट का डेटा डालें:
    agent populate
    

यह स्क्रिप्ट टेक्स्ट एम्बेड करने वाले वेक्टर जनरेट करने के लिए, Google Gemini API का इस्तेमाल करती है. इसके बाद, आउटपुट को वेक्टर डेटाबेस में सेव करती है. आपके कॉन्टेंट के साइज़ के हिसाब से, प्रोसेसिंग में कुछ समय लग सकता है.

दूसरे फ़ॉर्मैट इस्तेमाल करना

Docs Agent प्रोजेक्ट, Markdown फ़ॉर्मैट में वेबसाइट के कॉन्टेंट के साथ काम करने के लिए डिज़ाइन किया गया है. प्रोजेक्ट के लेखकों ने Markdown फ़ॉर्मैट में दूसरी तरह का कॉन्टेंट जनरेट करने के लिए, कुछ कन्वर्टर स्क्रिप्ट बनाई हैं. इनमें Google Docs, पोर्टेबल डॉक्यूमेंट फ़ॉर्मैट (PDF), और Gmail शामिल हैं. कन्वर्ज़न करने वाले इन लोगों का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, कोड रिपॉज़िटरी की docs-agent/apps_script डायरेक्ट्री देखें.

वीडियो के दूसरे फ़ॉर्मैट बदलना

प्रोजेक्ट के साथ कॉन्टेंट के दूसरे फ़ॉर्मैट इस्तेमाल किए जा सकते हैं. हालांकि, आपको या कम्यूनिटी के अन्य सदस्यों को इन अतिरिक्त तरीकों को बनाने की ज़रूरत होगी. मिलते-जुलते समाधान बनाने वाले लोगों के लिए, कोड रिपॉज़िटरी समस्याएं और पुल के अनुरोध देखें.

दूसरे कॉन्टेंट फ़ॉर्मैट के साथ काम करने के लिए आपको एक कुंजी कोड बनाना होगा. यह files_to_plain_text.py स्क्रिप्ट की तरह स्प्लिटर स्क्रिप्ट है. एक ऐसी स्क्रिप्ट या प्रोग्राम बनाने की कोशिश करें जो इस स्क्रिप्ट से मिलता-जुलता आउटपुट बनाए. याद रखें कि फ़ाइनल टेक्स्ट आउटपुट में कम से कम फ़ॉर्मैटिंग और ग़ैर-ज़रूरी जानकारी होनी चाहिए. अगर एचटीएमएल या JSON जैसे कॉन्टेंट फ़ॉर्मैट का इस्तेमाल किया जा रहा है, तो पक्का करें कि जितना हो सके उतना जानकारी न देने वाले फ़ॉर्मैट (टैग, स्क्रिप्टिंग, सीएसएस) को हटा दें, ताकि वह उनसे जनरेट किए गए टेक्स्ट एम्बेड की वैल्यू पर असर न डाले.

कॉन्टेंट फ़ॉर्मैट के लिए स्प्लिटर स्क्रिप्ट बनाने के बाद, अपने वेक्टर डेटाबेस को पॉप्युलेट करने के लिए, populate_vector_database.py स्क्रिप्ट चलाएं. Docs एजेंट के साथ इस्तेमाल की जाने वाली फ़ाइलों को प्रोसेस करने के बारे में ज़्यादा जानकारी के लिए, Docs एजेंट प्रीप्रोसेस रीडमी देखें.

ऐप्लिकेशन को टेस्ट करें

वेक्टर डेटाबेस में अपने-आप जानकारी भरने के बाद, प्रोजेक्ट जांच के लिए तैयार हो जाता है. प्रोजेक्ट एक पैकेजिंग फ़ंक्शन देता है, ताकि आप प्रोजेक्ट को स्थानीय रूप से चला सकें.

प्रोजेक्ट के वेब इंटरफ़ेस को चलाने और उसकी जांच करने के लिए:

  1. docs-agent प्रोजेक्ट डायरेक्ट्री पर जाएं:
    cd docs-agent/
    
  2. वेब ऐप्लिकेशन लॉन्च स्क्रिप्ट चलाएं:
    agent chatbot
    
  3. अपने वेब ब्राउज़र का इस्तेमाल करके, लॉन्च स्क्रिप्ट के आउटपुट में दिखाए गए यूआरएल वेब पते पर जाएं और ऐप्लिकेशन की जांच करें.
    * Running on http://your-hostname-here:5000
    

लागू करने के विकल्प

Gemini API ऐसे प्रोग्रामिंग टूल उपलब्ध कराता है जो Docs एजेंट को लागू करने के कॉम्पोनेंट की जगह ले सकते हैं. खास तौर पर: सिमैंटिक रिट्रीवल और एट्रिब्यूट किए गए सवाल का जवाब (AQA) वाले Gemini मॉडल वैरिएंट. अलग वेक्टर डेटाबेस को बदलने के लिए, Gemini API की सेमैंटिक रिट्रीवल सुविधा का इस्तेमाल किया जा सकता है. सिमैंटिक रिकवरी सुविधा से, आपको अपने कॉन्टेंट के लिए एम्बेड करने की सुविधा जनरेट करने और उस कॉन्टेंट को सेव करने में मदद मिलती है. AQA Gemini मॉडल को, प्रॉम्प्ट में दिए गए सोर्स मटीरियल की मदद से सवालों के जवाब देने के लिए तैयार किया गया है. Gemini API में अपने कॉन्टेंट से जुड़े सवालों के जवाब देने के लिए, AQA मॉडल के साथ सिमैंटिक डेटा वापस पाने की सुविधा का इस्तेमाल किया जाता है.

Docs Agent में, सिमैंटिक रिट्रीवल एपीआई की सुविधा, AQA Gemini मॉडल या दोनों को इस्तेमाल करने के लिए कॉन्फ़िगरेशन के विकल्प शामिल होते हैं. ज़्यादा जानकारी के लिए, Docs Agent Readme देखें.

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

Docs एजेंट प्रोजेक्ट के बारे में ज़्यादा जानकारी के लिए, कोड रिपॉज़िटरी देखें. अगर आपको ऐप्लिकेशन बनाने में मदद चाहिए या डेवलपर के साथ मिलकर काम करने वाले लोगों को खोज रहे हैं, तो Google Developers Community Discord सर्वर पर जाएं.

प्रोडक्शन ऐप्लिकेशन

अगर आपको ज़्यादा लोगों के लिए Docs Agent का इस्तेमाल करना है, तो ध्यान रखें कि Google Gemini API का इस्तेमाल, रेट को सीमित करने और अन्य इस्तेमाल से जुड़ी पाबंदियों पर निर्भर कर सकता है. अगर आपको Gemini API की मदद से, Docs Agent जैसे प्रोडक्शन ऐप्लिकेशन बनाना है, तो Google Cloud Vertex AI की सेवाएं देखें. इससे आपको अपने ऐप्लिकेशन को ज़्यादा लोगों तक पहुंचाने और उसे भरोसेमंद बनाने में मदद मिलेगी.