जानकारी खोजना, आर्टिफ़िशियल इंटेलिजेंस (एआई) जनरेटिव मॉडल के सबसे सामान्य इस्तेमालों में से एक है. एआई का इस्तेमाल करके, अपने कॉन्टेंट के लिए बातचीत वाले खोज इंटरफ़ेस को बनाने पर, उपयोगकर्ता आपसे खास सवाल पूछ सकते हैं और सीधे जवाब पा सकते हैं.
इस ट्यूटोरियल में, अपने कॉन्टेंट के लिए एआई की मदद से काम करने वाला, बातचीत वाली खोज का इंटरफ़ेस बनाने का तरीका बताया गया है. यह Docs एजेंट पर आधारित है. यह एक ओपन सोर्स प्रोजेक्ट है, जो बातचीत वाले खोज इंटरफ़ेस को बनाने के लिए, Google Gemini API का इस्तेमाल करता है. इसमें, न तो किसी नए एआई मॉडल को ट्रेनिंग दी जाती है और न ही Gemini मॉडल की मदद से मॉडल को ट्यून किया जाता है. इसका मतलब है कि इस खोज की सुविधा को तुरंत बनाया जा सकता है और इसका इस्तेमाल छोटे और बड़े कॉन्टेंट सेट के लिए किया जा सकता है.
इस प्रोजेक्ट के बारे में खास जानकारी देने वाला वीडियो और इसे बेहतर बनाने का तरीका जानने के लिए, यहां जाएं: एआई से कॉन्टेंट खोजना | Google के एआई की मदद से बनाएं. इसमें, इस प्रोजेक्ट को बनाने वाले लोगों की अहम जानकारी भी शामिल है. इसके अलावा, नीचे दिए गए निर्देशों का पालन करके, प्रोजेक्ट को बढ़ाया जा सकता है.
खास जानकारी
Docs Agent प्रोजेक्ट, किसी खास कॉन्टेंट सेट के लिए बातचीत वाली खोज का इंटरफ़ेस उपलब्ध कराता है. यह इंटरफ़ेस, Google Gemini API और जनरेटिव मॉडल की मदद से काम करता है. उपयोगकर्ता, बातचीत वाले स्टाइल में सवाल पूछ सकते हैं और किसी खास कॉन्टेंट सेट के आधार पर, सवाल का जवाब पा सकते हैं. बैकग्राउंड में, Docs एजेंट आपके सवाल को कॉन्टेंट के वेक्टर डेटाबेस में खोजता है. साथ ही, जनरेटिव मॉडल के लिए ज़्यादा जानकारी वाला प्रॉम्प्ट बनाता है. इसमें काम के टेक्स्ट के स्निपेट भी शामिल होते हैं. जनरेटिव मॉडल, सवाल का जवाब जनरेट करता है. इसके बाद, Docs एजेंट जवाब को फ़ॉर्मैट करके, उपयोगकर्ता को दिखाता है.
पहली इमेज. Docs एजेंट प्रोजेक्ट ऐप्लिकेशन का फ़ंक्शनल डायग्राम.
Docs एजेंट को आपके कॉन्टेंट से जुड़े सवालों के जवाब देने के लिए, उस कॉन्टेंट का वेक्टर डेटाबेस बनाना ज़रूरी है. अपने कॉन्टेंट को टेक्स्ट के अलग-अलग हिस्सों में बांटें और हर हिस्से के लिए एक वेक्टर जनरेट करें. ये वैक्टर, हर चंक में मौजूद जानकारी को संख्या के तौर पर दिखाते हैं. साथ ही, इन्हें Google के जनरेटिव मॉडल से एआई टेक्स्ट एम्बेडिंग फ़ंक्शन की मदद से जनरेट किया जाता है.
जब कोई उपयोगकर्ता कोई सवाल पूछता है, तो Docs एजेंट उस सवाल को संख्या के तौर पर दिखाने के लिए, टेक्स्ट को एम्बेड करने वाले उसी फ़ंक्शन का इस्तेमाल करता है. साथ ही, वेक्टर डेटाबेस को खोजने और उससे मिलता-जुलता कॉन्टेंट ढूंढने के लिए, उस वैल्यू का इस्तेमाल करता है. यह सबसे अच्छे नतीजों को लेता है और उस जानकारी को जनरेटिव मॉडल के प्रॉम्प्ट में जोड़ता है. एआई मॉडल, सवाल और संदर्भ से जुड़ी अन्य जानकारी को लेकर जवाब जनरेट करता है.
प्रोजेक्ट सेटअप करना
इन निर्देशों की मदद से, Docs एजेंट प्रोजेक्ट को डेवलपमेंट और टेस्टिंग के लिए सेट अप किया जा सकता है. आम तौर पर, कुछ ज़रूरी सॉफ़्टवेयर इंस्टॉल करना, कुछ एनवायरमेंट वैरिएबल सेट करना, कोड रिपॉज़िटरी से प्रोजेक्ट को क्लोन करना, और कॉन्फ़िगरेशन इंस्टॉलेशन चलाना होता है. कोड प्रोजेक्ट, पैकेज और Python रनटाइम एनवायरमेंट को मैनेज करने के लिए, Python Poetry का इस्तेमाल करता है.
ज़रूरी शर्तें इंस्टॉल करना
Docs Agent प्रोजेक्ट, पैकेज मैनेज करने और ऐप्लिकेशन को चलाने के लिए, Python 3 और Python Poetry का इस्तेमाल करता है. इंस्टॉल करने के लिए यहां दिए गए निर्देश, Linux होस्ट मशीन के लिए हैं.
ज़रूरी सॉफ़्टवेयर इंस्टॉल करने के लिए:
- Python 3 और
venv
के लिए वर्चुअल एनवायरमेंट पैकेज इंस्टॉल करें.
sudo apt update sudo apt install git pip python3-venv
- प्रोजेक्ट के लिए डिपेंडेंसी और पैकेजिंग मैनेज करने के लिए, Python Poetry इंस्टॉल करें.
curl -sSL https://install.python-poetry.org | python3 -
अगर आपको प्रोजेक्ट को बड़ा करना है, तो Python Poetry का इस्तेमाल करके ज़्यादा Python लाइब्रेरी जोड़ी जा सकती हैं.
एनवायरमेंट वैरिएबल सेट करना
कुछ एनवायरमेंट वैरिएबल सेट करें. ये वैरिएबल, Docs एजेंट कोड प्रोजेक्ट को चलाने के लिए ज़रूरी हैं. इनमें Google Gemini एपीआई पासकोड और Python Poetry सेटिंग शामिल है. अगर Linux का इस्तेमाल किया जा रहा है, तो हो सकता है कि आप अपने टर्मिनल सेशन के लिए, इन वैरिएबल को अपनी $HOME/.bashrc
फ़ाइल में जोड़ना चाहें, ताकि उन्हें डिफ़ॉल्ट सेटिंग के तौर पर सेट किया जा सके.
एनवायरमेंट वैरिएबल सेट करने के लिए:
- Google Gemini API पासकोड पाएं और पासकोड की स्ट्रिंग कॉपी करें.
- एपीआई पासकोड को एनवायरमेंट वैरिएबल के तौर पर सेट करें. Linux होस्ट पर, नीचे दिए गए निर्देश का पालन करें.
export API_KEY=<YOUR_API_KEY_HERE>
PYTHON_KEYRING_BACKEND
पैरामीटर सेट करके, Python Poetry से जुड़ी पहले से मौजूद समस्या को हल करें. Linux होस्ट पर, यह कमांड इस्तेमाल करें.
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
प्रोजेक्ट का क्लोन बनाना और उसे कॉन्फ़िगर करना
प्रोजेक्ट कोड डाउनलोड करें और ज़रूरी डिपेंडेंसी डाउनलोड करने और प्रोजेक्ट को कॉन्फ़िगर करने के लिए, Poetry इंस्टॉलेशन कमांड का इस्तेमाल करें. प्रोजेक्ट का सोर्स कोड वापस पाने के लिए, आपके पास git सोर्स कंट्रोल सॉफ़्टवेयर होना चाहिए. प्रोजेक्ट कोड को डाउनलोड और कॉन्फ़िगर करने के लिए:
- नीचे दिए गए कमांड का इस्तेमाल करके, Git डेटा स्टोर करने की जगह को क्लोन करें.
git clone https://github.com/google/generative-ai-docs
- इसके अलावा, अपनी लोकल git रिपॉज़िटरी को कॉन्फ़िगर करके, स्पैर्स चेकआउट का इस्तेमाल किया जा सकता है, ताकि आपके पास सिर्फ़ Docs Agent प्रोजेक्ट की फ़ाइलें हों.
cd generative-ai-docs/ git sparse-checkout init --cone git sparse-checkout set examples/gemini/python/docs-agent/
docs-agent
प्रोजेक्ट की रूट डायरेक्ट्री पर जाएं.
cd examples/gemini/python/docs-agent/
- दूसरे ज़रूरी सॉफ़्टवेयर डाउनलोड करने और प्रोजेक्ट को कॉन्फ़िगर करने के लिए, Poetry इंस्टॉल करने का कमांड चलाएं:
poetry install
कॉन्टेंट तैयार करना
Docs Agent प्रोजेक्ट को टेक्स्ट कॉन्टेंट के साथ काम करने के लिए डिज़ाइन किया गया है. इसमें खास तौर पर, उन वेबसाइटों के साथ काम करने के लिए टूल शामिल हैं जो सोर्स फ़ॉर्मैट के तौर पर मार्कडाउन का इस्तेमाल करती हैं. अगर वेबसाइट के कॉन्टेंट पर काम किया जा रहा है, तो आपको कॉन्टेंट प्रोसेस करने वाले टास्क को उस कॉन्टेंट को मैप करने और उसके लिंक बनाने की सुविधा देने के लिए, दिखाई गई वेबसाइट के डायरेक्ट्री स्ट्रक्चर को सुरक्षित (या दोहराना) रखना चाहिए.
कॉन्टेंट के फ़ॉर्मैट और जानकारी के आधार पर, आपको अपने कॉन्टेंट को साफ़ करना पड़ सकता है. ऐसा, सार्वजनिक नहीं की जाने वाली जानकारी, इंटरनल नोट या ऐसी अन्य जानकारी को हटाने के लिए किया जाता है जिसे खोजा न जा सके. आपको टाइटल और हेडिंग जैसी बुनियादी फ़ॉर्मैटिंग को बनाए रखना चाहिए. इससे कॉन्टेंट को प्रोसेस करने के चरण में, टेक्स्ट को अलग-अलग हिस्सों में बांटने में मदद मिलती है.
कॉन्टेंट को प्रोसेस करने के लिए तैयार करने के लिए:
- उस कॉन्टेंट के लिए डायरेक्ट्री बनाएं जिसे एआई एजेंट को खोजना है.
mkdir docs-agent/content/
- अपना कॉन्टेंट
docs-agent/content/
डायरेक्ट्री में कॉपी करें. अगर कॉन्टेंट कोई वेबसाइट है, तो दिखाई गई वेबसाइट के डायरेक्ट्री स्ट्रक्चर को बनाए रखें या उसकी कॉपी बनाएं. - ज़रूरत के हिसाब से कॉन्टेंट में बदलाव करें या उसे साफ़ करें. इससे, सार्वजनिक नहीं की गई जानकारी या ऐसी अन्य जानकारी हटाई जा सकती है जिसे आपको खोज के नतीजों में नहीं दिखाना है.
जांच के लिए Flutter दस्तावेज़ों का इस्तेमाल करना
अगर आपको Docs एजेंट की जांच करने के लिए कॉन्टेंट का कोई सेट चाहिए, तो जांच के लिए Flutter डेवलपर दस्तावेज़ का इस्तेमाल किया जा सकता है.
Flutter डेवलपर के दस्तावेज़ पाने के लिए:
- उस कॉन्टेंट की डायरेक्ट्री पर जाएं जिसे एआई एजेंट को खोजना है.
cd docs-agent/content/
- Flutter दस्तावेज़ों को
docs-agent/content/
डायरेक्ट्री में क्लोन करें.
git clone --recurse-submodules https://github.com/flutter/website.git
कॉन्टेंट को प्रोसेस करना
खोज एजेंट, उपयोगकर्ताओं के सवालों से जुड़ा कॉन्टेंट बेहतर तरीके से खोज सके, इसके लिए आपको वेक्टर का ऐसा डेटाबेस बनाना होगा जो आपके कॉन्टेंट को दिखाता हो. वेक्टर, एआई जनरेटिव मॉडल फ़ंक्शन का इस्तेमाल करके जनरेट किए जाते हैं. इसे टेक्स्ट एम्बेडिंग कहा जाता है. टेक्स्ट एम्बेड, टेक्स्ट कॉन्टेंट के अंकों के तौर पर दिखाए जाते हैं. ये टेक्स्ट के सिमेंटिक मतलब को संख्याओं के सेट के तौर पर दिखाते हैं. जानकारी को संख्या के तौर पर दिखाने से, सिस्टम को उपयोगकर्ता के सवाल को समझने में मदद मिलती है. इसके लिए, वह टेक्स्ट एम्बेड करने वाले उसी फ़ंक्शन का इस्तेमाल करके, सवाल का मतलब समझता है. इसके बाद, क-नेबर (k-NN) एल्गोरिदम का इस्तेमाल करके, सवाल से मिलती-जुलती जानकारी को गणितीय हिसाब-किताब के तौर पर ढूंढता है.
टेक्स्ट कॉन्टेंट को अलग-अलग हिस्सों में बांटना
टेक्स्ट एम्बेडिंग वेक्टर, ज़्यादा टेक्स्ट को असरदार तरीके से नहीं दिखा सकता. इस प्रोजेक्ट में, वेक्टर में दिखाए गए टेक्स्ट की सीमा 3,000 वर्णों या उससे कम है. इसका मतलब है कि आपको अपने कॉन्टेंट को उस वर्ण सीमा के हिसाब से अलग-अलग हिस्सों में बांटना होगा. इस सेक्शन में, मार्कडाउन फ़ाइलों को छोटे-छोटे टेक्स्ट चंक में बांटने के लिए, Docs Agent प्रोजेक्ट के साथ दी गई स्क्रिप्ट का इस्तेमाल करने का तरीका बताया गया है. दूसरे कॉन्टेंट फ़ॉर्मैट के साथ काम करने के बारे में सलाह पाने के लिए, अन्य फ़ॉर्मैट मैनेज करना लेख पढ़ें.
Markdown फ़ॉर्मैट वाले कॉन्टेंट को अलग-अलग हिस्सों में बांटने के लिए:
docs-agent/config.yaml
फ़ाइल में बदलाव करके, प्रोसेसिंग स्क्रिप्ट के लिए इनपुट पैरामीटर कॉन्फ़िगर करें. यह उदाहरण, Flutter दस्तावेज़ों के सबसेट को टारगेट करता है:
input: - path: "content/website/src/ui" url_prefix: "https://docs.flutter.dev/ui"
- इस कॉन्फ़िगरेशन फ़ाइल में किए गए बदलाव सेव करें.
docs-agent
प्रोजेक्ट डायरेक्ट्री पर जाएं:
cd docs-agent/
agent chunk
कमांड चलाकर, मार्कडाउन सोर्स कॉन्टेंट को अलग-अलग हिस्सों में बांटें:
agent chunk
स्क्रिप्ट, इनपुट कॉन्टेंट को प्रोसेस करती है और docs-agent/data
डायरेक्ट्री में आउटपुट टेक्स्ट फ़ाइलें बनाती है. साथ ही, टेक्स्ट को टाइटल, हेडिंग, और मिलते-जुलते पैराग्राफ़ के आधार पर बांटती है. आपके कॉन्टेंट के साइज़ के हिसाब से, प्रोसेस होने में कुछ समय लग सकता है.
टेक्स्ट एम्बेड करने वाले वेक्टर बनाना
अपने कॉन्टेंट को सही साइज़ के काम के हिस्सों में बांटने के बाद, टेक्स्ट एम्बेड करने की सुविधा का इस्तेमाल करके, वेक्टर डेटाबेस में अपने कॉन्टेंट को जोड़ा जा सकता है. Docs Agent प्रोजेक्ट, टेक्स्ट एम्बेड करने वाले वेक्टर को सेव करने के लिए, Chroma के वेक्टर डेटाबेस का इस्तेमाल करता है. इन निर्देशों में, वेक्टर डेटाबेस में अपने अलग-अलग हिस्सों में बंटे कॉन्टेंट को भरने के लिए, Docs एजेंट स्क्रिप्ट का इस्तेमाल करने का तरीका बताया गया है.
टेक्स्ट एम्बेड जनरेट करने और वेक्टर डेटाबेस को पॉप्युलेट करने के लिए:
docs-agent
प्रोजेक्ट डायरेक्ट्री पर जाएं:
cd docs-agent/
agent populate
कमांड का इस्तेमाल करके, वेक्टर डेटाबेस में अपना कॉन्टेंट भरें:
agent populate
यह स्क्रिप्ट, टेक्स्ट एम्बेडिंग वैक्टर जनरेट करने के लिए, Google Gemini API का इस्तेमाल करती है. इसके बाद, आउटपुट को वैक्टर डेटाबेस में सेव करती है. आपके कॉन्टेंट के साइज़ के हिसाब से, प्रोसेस होने में कुछ समय लग सकता है.
अन्य फ़ॉर्मैट को हैंडल करना
Docs Agent प्रोजेक्ट को Markdown फ़ॉर्मैट में वेबसाइट कॉन्टेंट के साथ काम करने के लिए डिज़ाइन किया गया है. प्रोजेक्ट के लेखकों ने कुछ कन्वर्टर स्क्रिप्ट बनाई हैं, ताकि दूसरे तरह के कॉन्टेंट को मार्कडाउन फ़ॉर्मैट में जनरेट किया जा सके. इनमें Google Docs, पोर्टेबल दस्तावेज़ फ़ॉर्मैट (PDF), और Gmail शामिल हैं. इन कन्वर्टर का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, कोड रिपॉज़िटरी की docs-agent/apps_script डायरेक्ट्री देखें.
कॉन्टेंट के दूसरे फ़ॉर्मैट में बदलना
प्रोजेक्ट के साथ कॉन्टेंट के अन्य फ़ॉर्मैट का इस्तेमाल किया जा सकता है. हालांकि, उन अतिरिक्त तरीकों को आपको या कम्यूनिटी के अन्य सदस्यों को बनाना होगा. कोड रिपॉज़िटरी में, मिलते-जुलते समाधान बनाने वाले लोगों के लिए समस्याएं और पुल रिक्वेस्ट देखें.
अन्य कॉन्टेंट फ़ॉर्मैट के साथ काम करने के लिए, आपको एक स्प्लिटर स्क्रिप्ट बनानी होगी. यह स्क्रिप्ट, files_to_plain_text.py
स्क्रिप्ट जैसी होनी चाहिए. ऐसी स्क्रिप्ट या प्रोग्राम बनाएं जो इस स्क्रिप्ट से मिलता-जुलता आउटपुट दे. याद रखें कि फ़ाइनल टेक्स्ट आउटपुट में कम से कम फ़ॉर्मैटिंग और ज़रूरत से ज़्यादा जानकारी होनी चाहिए. अगर एचटीएमएल या JSON जैसे कॉन्टेंट फ़ॉर्मैट का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपने जानकारी से जुड़ी फ़ॉर्मैटिंग (टैग, स्क्रिप्टिंग, सीएसएस) को जितना हो सके उतना हटा दिया हो. इससे, इनसे जनरेट किए गए टेक्स्ट एम्बेडिंग की वैल्यू में बदलाव नहीं होगा.
कॉन्टेंट फ़ॉर्मैट के लिए स्प्लिटर स्क्रिप्ट बनाने के बाद, अपने वेक्टर डेटाबेस को पॉप्युलेट करने के लिए, स्क्रिप्ट को चलाया जा सकता है.populate_vector_database.py
Docs Agent के साथ इस्तेमाल करने के लिए फ़ाइलों को प्रोसेस करने के बारे में ज़्यादा जानने के लिए, Docs Agent के प्रीप्रोसेस रीडमी लेख पढ़ें.
ऐप्लिकेशन की जांच करना
वेक्टर डेटाबेस में डेटा भरने के बाद, प्रोजेक्ट टेस्ट करने के लिए तैयार हो जाता है. प्रोजेक्ट में पैकेजिंग फ़ंक्शन होता है, ताकि प्रोजेक्ट को लोकल तौर पर चलाया जा सके.
प्रोजेक्ट के वेब इंटरफ़ेस को चलाने और उसकी जांच करने के लिए:
docs-agent
प्रोजेक्ट डायरेक्ट्री पर जाएं:
cd docs-agent/
- वेब ऐप्लिकेशन लॉन्च स्क्रिप्ट चलाएं:
agent chatbot
- अपने वेब ब्राउज़र का इस्तेमाल करके, लॉन्च स्क्रिप्ट के आउटपुट में दिखाए गए यूआरएल वेब पते पर जाएं और ऐप्लिकेशन की जांच करें.
* Running on http://your-hostname-here:5000
लागू करने के विकल्प
Gemini API, प्रोग्रामिंग टूल उपलब्ध कराता है. इनकी मदद से, Docs एजेंट के कॉम्पोनेंट को बदला जा सकता है. जैसे, सिमेंटिक रिट्रीवल और एट्रिब्यूटेड क्वेश्चन आंसरिंग (AQA) Gemini मॉडल वैरिएंट. अलग-अलग वेक्टर डेटाबेस को बदलने के लिए, Gemini API की सेमांटिक रीट्रिवल सुविधा का इस्तेमाल किया जा सकता है. सिमेंटिक रिट्रीवल की सुविधा की मदद से, अपने कॉन्टेंट के लिए एम्बेड जनरेट किए जा सकते हैं और उस कॉन्टेंट को सेव किया जा सकता है. AQA Gemini मॉडल को, प्रॉम्प्ट में दिए गए सोर्स कॉन्टेंट की मदद से सवालों के जवाब देने के लिए ट्यून किया गया है. Gemini API में, अपने कॉन्टेंट के बारे में सवालों के जवाब पाने के लिए, एआईए मॉडल के साथ सेमैनटिक रिट्रीवल का इस्तेमाल किया जाता है.
Docs एजेंट में, कॉन्फ़िगरेशन के विकल्प शामिल होते हैं. इनकी मदद से, Semantic retrieval API की सुविधा, AQA Gemini मॉडल या दोनों का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Docs एजेंट का रीडमी देखें.
अन्य संसाधन
Docs एजेंट प्रोजेक्ट के बारे में ज़्यादा जानकारी के लिए, कोड रिपॉज़िटरी देखें. अगर आपको ऐप्लिकेशन बनाने में मदद चाहिए या आपको साथ मिलकर काम करने वाले डेवलपर चाहिए, तो Google Developers Community Discord सर्वर पर जाएं.
प्रोडक्शन ऐप्लिकेशन
अगर आपको बड़ी ऑडियंस के लिए Docs एजेंट को डिप्लॉय करना है, तो ध्यान रखें कि Google Gemini API के इस्तेमाल पर, अनुरोध की दर को सीमित करने और इस्तेमाल से जुड़ी अन्य पाबंदियां लागू हो सकती हैं. अगर आपको Docs Agent जैसे Gemini API की मदद से, प्रोडक्शन ऐप्लिकेशन बनाना है, तो अपने ऐप्लिकेशन को ज़्यादा स्केलेबल और भरोसेमंद बनाने के लिए, Google Cloud Vertex AI की सेवाएं देखें.