חיפוש מידע הוא אחד השימושים הנפוצים ביותר של AI גנרטיבי. פיתוח ממשק חיפוש בממשק שיחה לתוכן שלכם באמצעות AI, מאפשר למשתמשים לשאול שאלות ספציפיות ולקבל מידע תשובות ישירות.
במדריך הזה מוסבר איך ליצור חיפוש מבוסס-AI באמצעות שיחה ממשק עבור התוכן שלכם. מבוסס על נציג של Docs, פרויקט בקוד פתוח שמשתמש ב-Google Gemini API כדי ליצור בממשק החיפוש, ללא לאמן מודל בינה מלאכותית חדש או לבצע כוונון של מודלים מודלים של Gemini. כלומר, אפשר לקבל במהירות את יכולת החיפוש הזו להשתמש בו לקבוצות תוכן קטנות וגדולות.
לצפייה בסרטון סקירה כללית של הפרויקט והסבר על הארכתו, כולל תובנות מהאנשים שבונים אותו, תראו את: חיפוש תוכן מבוסס-AI | פיתוח באמצעות AI מבית Google. אם לא, תוכלו להתחיל להרחיב את הפרויקט לפי ההוראות. שלמטה.
סקירה כללית
הפרויקט של סוכן Docs מספק ממשק חיפוש בממשק שיחה עבור שמבוסס על Google Gemini API ומודלים גנרטיביים. המשתמשים יכולים לשאול שאלה מפורטת בסגנון שיחה ולקבל תשובה מפורטת בהתאם לקבוצת תוכן ספציפית. מאחורי הקלעים, הסוכן של Docs לוקח את וחיפושים מול מסד נתונים וקטורי של התוכן, ויוצר הנחיות מפורטות למודל הגנרטיבי, כולל קטעי טקסט רלוונטי. המודל הגנרטיבי יוצר תשובה לשאלה ולסוכן Docs מעצב את התגובה ומציג אותה למשתמש.
איור 1. תרשים פונקציונלי של אפליקציית פרויקט של סוכן Docs.
כדי שנציג Docs יוכל לענות על שאלות לגבי התוכן, יצירת מסד נתונים וקטורי של התוכן הזה. אתם מפרידים את התוכן ל- מקטעי טקסט לוגיים וליצור וקטור לכל אחד מהם. הווקטורים האלה הם מייצגים ייצוגים מספריים של המידע בכל מקטע, ונוצרים באמצעות פונקציה של הטמעת טקסט שנוצרה על ידי AI מהמודלים הגנרטיביים של Google.
כשמשתמש שואל שאלה, הסוכן של Docs משתמש באותה הטמעת טקסט. כדי ליצור ייצוג מספרי של השאלה, ומשתמשת כדי לחפש במסד נתוני הווקטורים ולמצוא תוכן קשור. היא לוקחת את הכי הרבה מקום ומוסיפה את המידע הזה להנחיה ליצירת המודל הגנרטיבי. AI לוקח את השאלה ואת המידע הנוסף על ההקשר ויוצר תשובה.
הגדרת פרויקט
ההוראות הבאות מסבירות איך להגדיר את הפרויקט של סוכן Docs פיתוח ובדיקה. השלבים הכלליים כוללים התקנה של דרישות מוקדמות ליצור כמה משתני סביבה, לשכפל את הפרויקט מהקוד, ונפעיל את התקנת ההגדרות האישיות. בפרויקט הקוד נעשה שימוש Python Poetry כדי לנהל חבילות בסביבת זמן הריצה של Python.
התקנת הדרישות המוקדמות
הפרויקט של סוכן Docs משתמש ב-Python 3 וב-Python Poetry כדי לנהל חבילות להריץ את האפליקציה. הוראות ההתקנה הבאות מיועדות עבור Linux במחשב המארח.
כדי להתקין את התוכנה הנדרשת:
- מתקינים את Python 3 ואת
venv
חבילת הסביבה הווירטואלית ל-Python.
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 API ו-Python
הגדרת שירה. מומלץ להוסיף את המשתנים האלה לקובץ $HOME/.bashrc
אם משתמשים ב-Linux, כדי לקבוע את הגדרות ברירת המחדל של הטרמינל
סשנים.
כדי להגדיר את משתני הסביבה:
- מקבלים מפתח Google Gemini API ומעתיקים את מחרוזת המפתח.
- מגדירים את מפתח ה-API כמשתנה סביבה. במארחים של Linux, משתמשים
הפקודה הבאה.
export API_KEY=<YOUR_API_KEY_HERE>
- סימון שהנושא טופל מוכר
בעיה
בשביל שירה Python על ידי הגדרת הפרמטר
PYTHON_KEYRING_BACKEND
. במארחים של Linux, משתמשים בפקודה הבאה.
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
שכפול והגדרת הפרויקט
מורידים את קוד הפרויקט ומשתמשים בפקודת התקנת Poetry כדי להוריד את יחסי התלות הנדרשים ולהגדיר את הפרויקט. צריך של git לבקרת מקור כדי לאחזר את את קוד המקור של הפרויקט. לא מהארגון כדי להוריד את קוד הפרויקט ולהגדיר אותו:
- משכפלים את מאגר ה-Git באמצעות הפקודה הבאה.
git clone https://github.com/google/generative-ai-docs
- לחלופין, אפשר להגדיר את מאגר Git המקומי לשימוש בקופה עם נפח נמוך
כך שיהיו לכם רק את הקבצים עבור הפרויקט של סוכן Docs.
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 נועד לעבוד עם תוכן טקסט, והוא כולל כלים ספציפיים לעבודה עם אתרים שמשתמשים ב-Markdown כפורמט המקור. אם אתם עובדים עם תוכן אתר, עליכם לשמר (או לשכפל) את במבנה הספריות של האתר המוצג, כדי לאפשר את משימת עיבוד התוכן למפות וליצור קישורים לתוכן הזה.
בהתאם לפורמט ולפרטים של התוכן שלך, ייתכן שיהיה עליך לנקות תוכן להסרת מידע שאינו ציבורי, הערות פנימיות או מידע אחר שאתם לא רוצים לאפשר חיפוש. עליך לשמור על עיצוב בסיסי כמו כותרות וכותרות שעוזרות ליצור פיצולי טקסט לוגיים, או מקטעי טקסט, בעיבוד התוכן.
כדי להכין תוכן לעיבוד:
- יוצרים ספרייה עם התוכן שבו רוצים שסוכן ה-AI יחפש.
mkdir docs-agent/content/
- מעתיקים את התוכן לספרייה
docs-agent/content/
. אם הוא אתר, יש לשמור (או לשכפל) את מבנה הספרייה האתר המוצג. - לנקות או לערוך את התוכן לפי הצורך כדי להסיר מידע שאינו ציבורי, או מידע אחר שאינך רוצה לכלול בחיפושים.
שימוש ב-Flutter docs לצורך בדיקה
אם אתם צריכים ערכת תוכן כדי לבדוק את סוכן Docs, תוכלו להשתמש ב-Flutter מסמכי מפתחים לבדיקה.
כדי לקבל את המסמכים למפתחים של Flutter:
- עוברים לספריית התוכן של התוכן שרוצים שסוכן ה-AI יקבל.
לחפש
cd docs-agent/content/
- משכפלים את המסמכים של Flutter לספרייה
docs-agent/content/
.
git clone --recurse-submodules https://github.com/flutter/website.git
עיבוד התוכן
כדי שסוכן החיפוש יוכל לחפש ביעילות תוכן שקשור אל משתמשים צריך לבנות מסד נתונים של וקטורים שמייצגים תוכן. הווקטורים נוצרים באמצעות פונקציה של מודל בינה מלאכותית גנרטיבית, הטמעת טקסט. הטמעות טקסט הן ייצוגים מספריים של הטקסט תוכן. הם מתקרבים למשמעות הסמנטית של הטקסט כקבוצה של . ייצוגים מספריים של מידע מאפשרים למערכת לקבל שאלה של משתמש, להעריך את המשמעות שלה באמצעות אותה הטמעה של טקסט ואז למצוא מידע קשור בתור חישוב מתמטי, באמצעות שכנים הכי קרובים (k-NN).
פיצול תוכן הטקסט
כמות הטקסט שווקטור של הטמעת טקסט יכול לייצג ביעילות מוגבלת. הפרויקט הזה מגביל את הטקסט שמיוצג בווקטור ל-3,000 תווים או פחות, כלומר תצטרכו לפצל את התוכן שלכם למקטעי נתונים מגבלת תווים. בקטע הזה מתואר איך להשתמש בסקריפט שסופק עם פרויקט בסוכן Docs לפיצול קובצי Markdown למקטעי טקסט קטנים יותר. לקבלת טיפים בנושא עבודה עם פורמטים אחרים של תוכן, טיפול בפורמטים אחרים.
כדי לפצל תוכן בפורמט Markdown:
- כדי להגדיר את פרמטרי הקלט עבור סקריפט העיבוד, עורכים את
קובץ
docs-agent/config.yaml
. הדוגמה הזו מטרגטת קבוצת משנה במסמכי Flutter:
input: - path: "content/website/src/ui" url_prefix: "https://docs.flutter.dev/ui"
- שומרים את השינויים בקובץ התצורה הזה.
- מנווטים לספריית הפרויקט
docs-agent
:
cd docs-agent/
- כדי לפצל את תוכן המקור של Markdown, מריצים את הפקודה
agent chunk
:
agent chunk
הסקריפט מעבד את תוכן הקלט ויוצר קובצי פלט טקסט
ספריית docs-agent/data
, פיצול הטקסט לפי כותרות, כותרות ו
ופסקאות קשורות. העיבוד עשוי להימשך זמן מה, בהתאם לגודל של
תוכן.
יצירת וקטורים של הטמעת טקסט
אחרי שמפצלים את התוכן למקטעי נתונים משמעותיים בגודל מתאים, יכול לאכלס את מסד הנתונים הווקטורי בתוכן שלכם באמצעות הטמעת טקסט מותאמת אישית. בפרויקט של סוכן Docs נעשה שימוש ב-Chroma מסד נתונים וקטורי לאחסון וקטורים של הטמעת טקסט. הוראות אלה מסבירות איך כדי להשתמש בסקריפט של סוכני Docs כדי לאכלס מסד נתונים וקטורי תוכן.
כדי ליצור הטמעות טקסט ולאכלס את מסד הנתונים הווקטורי:
- מנווטים לספריית הפרויקט
docs-agent
:
cd docs-agent/
- לאכלס את מסד הנתונים הווקטורי בתוכן באמצעות
agent populate
הפקודה:
agent populate
הסקריפט הזה משתמש ב-Google Gemini API כדי ליצור הטמעת טקסט של השאילתה, ושומר את הפלט במסד הנתונים הווקטורי. העיבוד עשוי להימשך זמן מסוים בהתאם לגודל התוכן שלך.
טיפול בפורמטים אחרים
הפרויקט של סוכן Docs נועד לעבוד עם תוכן של אתרים ב-Markdown הפורמט. מחברי הפרויקט בנו מספר סקריפטים של ממירים כדי ליצור סוגים אחרים של תוכן בפורמט Markdown, כולל Google Docs, נייד פורמט המסמך (PDF) ו-Gmail. לקבלת מידע נוסף על השימוש ומשתמשים בהמרות, תראו את docs-agent/apps_script של מאגר הקודים.
המרת פורמטים אחרים של תוכן
אפשר להשתמש בפורמטים אחרים של תוכן בפרויקט, אבל שיטות נוספות צריכות להיווצר על ידך או על ידי חברים אחרים בקהילה. בדיקת מאגר הקודים בעיות וגם בקשות משיכה לאנשים שיוצרים פתרונות דומים.
קוד המפתח שצריך ליצור כדי לתמוך בפורמטים אחרים של תוכן הוא מפצל
סקריפט כמו
files_to_plain_text.py
סקריפט. המטרה היא ליצור סקריפט או תוכנה שיוצרים פלט דומה
סקריפט. חשוב לזכור שפלט הטקסט הסופי צריך להיות בפורמט מינימלי
מידע מיותר. אם אתם משתמשים בפורמטים של תוכן כמו HTML או JSON,
להקפיד להסיר חלק גדול מהפורמט שאינו אינפורמטיבי (תגים,
כתיבת סקריפטים, CSS) עד כמה שאפשר, כך שהיא לא תטות את ערכי הטקסט
שאתם יוצרים מהם.
לאחר שבניתם סקריפט מפצל לפורמט תוכן, אתם אמורים להיות מסוגלים
להריץ את
populate_vector_database.py
לאכלס את מסד הנתונים הווקטורי. מידע נוסף על העיבוד
קבצים לשימוש בסוכן Docs, ראו סוכן Docs
עיבוד מראש של Readme.
בדיקת האפליקציה
לאחר שתסיימו לאכלס את מסד הנתונים הווקטורי, הפרויקט מוכן לבדיקה. הפרויקט מספק פונקציית אריזה שמאפשרת לכם להריץ בפרויקט באופן מקומי.
כדי להריץ ולבדוק את ממשק האינטרנט של הפרויקט:
- מנווטים לספריית הפרויקט
docs-agent
:
cd docs-agent/
- מריצים את סקריפט ההפעלה של אפליקציית האינטרנט:
agent chatbot
- באמצעות דפדפן האינטרנט, מנווטים לכתובת האינטרנט של כתובת ה-URL שמופיעה
הפלט של סקריפט ההפעלה ולבדוק את האפליקציה.
* Running on http://your-hostname-here:5000
אפשרויות הטמעה
Gemini API מספק כלי תכנות שיכולים להחליף רכיבים של הטמעת סוכן Docs, ובמיוחד: אחזור סמנטי ושיוך וריאנט של מודל Gemini, מענה לשאלות (AQA). אפשר להשתמש אחזור סמנטי שיחליף את מסד הנתונים הווקטורי הנפרד. התכונה 'אחזור סמנטי' מאפשר ליצור הטמעות לתוכן ולאחסן את התוכן הזה. AQA מודל Gemini מכוון לענות על שאלות עם חומרי המקור שמסופקים בהנחיה. אתם משתמשים בסמנטית אחזור יחד עם מודל ה-AQA כדי מענה על שאלות על התוכן שלכם, והכול ב-Gemini API.
סוכן Docs כולל אפשרויות תצורה לשימוש בעמודה הסמנטית תכונת API לאחזור, מודל Gemini במסגרת AQA, או שניהם. מידע נוסף זמין במאמר הבא: ה קובץ Readme של סוכן Docs.
מקורות מידע נוספים
למידע נוסף על הפרויקט של סוכן Docs, ניתן לעיין מאגר קוד. אם אתה זקוק לעזרה בבניית האפליקציה או מחפש מפתח לשותפי עריכה, כדאי לבדוק Discord קהילת Google Developers השרת.
אפליקציות בסביבת ייצור
אם אתם מתכננים לפרוס את Docs Agent לקהל גדול, שימו לב שהשימוש יכול להיות ש-Google Gemini API כפוף להגבלת קצב של יצירת הבקשות הגבלות על השימוש. אם אתם שוקלים לפתח אפליקציה לסביבת ייצור באמצעות Gemini API, למשל סוכן Docs, עליך לבדוק Google Cloud Vertex AI כדי לשפר את האמינות של האפליקציה ואת היכולת להרחיב אותה.