1. סקירה כללית
מחקר פטנטים הוא נרחב ומורכב. סינון של אינספור תקצירים טכניים כדי למצוא חידושים רלוונטיים הוא משימה מרתיעה. חיפושים מסורתיים שמבוססים על מילות מפתח הם לרוב לא מדויקים ודורשים הרבה זמן. תקצירים ארוכים וטכניים, ולכן קשה להבין במהירות את הרעיון המרכזי. כתוצאה מכך, החוקרים עלולים להחמיץ פטנטים חשובים או לבזבז זמן על תוצאות לא רלוונטיות.
הטעם הסודי של המהפכה הזו טמון בחיפוש וקטורי. במקום להסתמך על התאמה פשוטה למילות מפתח, התכונה 'חיפוש וקטורי' ממירה את הטקסט לייצוגים מספריים (הטמעה). כך אנחנו יכולים לחפש על סמך המשמעות של השאילתה, ולא רק על סמך המילים הספציפיות שנעשה בהן שימוש. בעולם של חיפושי ספרות, הדבר מהפכני. נניח שתמצאו פטנט על "מוניטור דופק לביש" גם אם הביטוי המדויק לא מופיע במסמך.
האתגר: משתמשים מצפים שחיפוש ספרות מודרנית יספק תשובות מיידיות והמלצות חכמות שתואמות להעדפות הייחודיות שלהם. שיטות חיפוש מסורתיות לא מספקות לרוב את רמת ההתאמה האישית הזו.
הפתרון: אפליקציית הצ'אט מבוססת-הידע שלנו עומדת באתגר הזה. הוא מתבסס על מאגר ידע עשיר שנגזר ממערך הנתונים של הפטנטים שלכם כדי להבין את כוונת הלקוחות, להגיב בצורה חכמה ולספק תוצאות רלוונטיות במיוחד.
מה תפַתחו
במסגרת שיעור ה-Lab הזה (חלק 2), תלמדו:
- פיתוח סוכן של Vertex AI Agent Builder
- שילוב הכלי של AlloyDB עם הסוכן
דרישות
2. ארכיטקטורה
תעבורת הנתונים: נבחן לעומק איך הנתונים עוברים במערכת שלנו:
הטמעת נתונים:
נתוני הפטנטים נטענים ב-AlloyDB.
Analytics Engine:
נשתמש ב- AlloyDB כמנוע ניתוח הנתונים כדי לבצע את הפעולות הבאות:
- חילוץ הקשר: המנוע מנתח את הנתונים ששמורים ב-AlloyDB כדי להבין את מערך הנתונים של הפטנטים.
- יצירת הטמעה: הטמעות (ייצוגים מתמטיים של טקסט) נוצרות גם לשאילתה של המשתמש וגם למידע שנשמר ב-AlloyDB.
- חיפוש וקטורי: המנוע מבצע חיפוש דמיון, ומשויך את הטמעת השאילתה לטמעות של תקצירי הפטנטים. הנתונים האלה מזהים את 'השכן הקרוב ביותר' הרלוונטי ביותר. להקשר שהמשתמש מחפש.
יצירת תגובות:
התשובות המאושרות מובנות במערך JSON, והמנוע כולו ארוז בפונקציה ללא שרת ב-Cloud Run שנקראת מ-Agent Builder.
השלבים שלמעלה כבר מפורטים בחלק 1 של הסדנה.
דיברנו על הפרטים הטכניים של יצירת מנוע ניתוח מבוסס-ידע, שמפעיל את העוזר החכם שלנו לחיפוש פטנטים. עכשיו נראה איך אנחנו משתמשים בקסם של Agent Builder כדי להפעיל את המנוע הזה בממשק שיחה. לפני שמתחילים את חלק 2, חשוב לוודא שכתובת ה-URL של נקודת הקצה מוכנה. השלב הבא הוא הנושאים שנלמד בשיעור ה-Lab הזה:
אינטראקציה בשיחה:
הכלי Agent Builder מציג את התשובות למשתמש בפורמט של שפה טבעית, וכך מאפשר שיח של אינטראקציה הדדית.
3. לפני שמתחילים
יצירת פרויקט
- במסוף Google Cloud, בדף בורר הפרויקטים, בוחרים או יוצרים פרויקט ב-Google Cloud.
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
- משתמשים ב-Cloud Shell, סביבת שורת הפקודה שפועלת ב-Google Cloud וכוללת טעינה מראש של bq. לוחצים על Activate Cloud Shell בחלק העליון של מסוף Google Cloud.
- אחרי שמתחברים ל-Cloud Shell, בודקים שכבר בוצע אימות ושהמזהה של הפרויקט מוגדר כפרויקט באמצעות הפקודה הבאה:
gcloud auth list
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שהפקודה gcloud מכירה את הפרויקט.
gcloud config list project
- אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>
- מפעילים את ממשקי ה-API הנדרשים. החלופה לפקודה ב-gcloud היא דרך המסוף, באמצעות חיפוש כל מוצר או באמצעות הקישור הזה.
אם חסר ממשק API כלשהו, תמיד תוכלו להפעיל אותו במהלך ההטמעה.
במסמכי העזרה מפורטות הפקודות של gcloud והשימוש בהן.
הערה חשובה: כדי להשלים את המשימה הזו, צריך לוודא שסיימתם את חלק 1 של שיעור ה-Lab.
4. יצירת סוכן
נעים להכיר: Agent Builder
Agent Builder הוא כלי רב עוצמה ליצירת צ'אט בוטים בשיטת Low-Code, שמאפשר לנו ליצור צ'אט בוטים במהירות וביעילות. הוא מאפשר לכם לתכנן תהליכי שיחה, לשלב מאגרי ידע ולהתחבר לממשקי API חיצוניים בצורה יעילה יותר. במקרה שלנו, נשתמש ב-Agent Builder כדי להתחבר בצורה חלקה לנקודת הקצה של Cloud Function שיצרנו בחלק 1, וכך לאפשר לעוזרת החיפוש של הפטנטים לגשת למאגר הידע שלנו בנושא פטנטים ולהשיב לשאילתות של המשתמשים בצורה חכמה.
מוודאים שיש לכם פונקציית Java Cloud Run שנוצרה בחלק 1 ומחזירה מערך JSON במקום טקסט פשוט.
בניית הנציג
נתחיל עם יצירת הנציג החדש הזה כדי לענות על שאלות של משתמשים לגבי מוצרי הלבוש.
- כדי להתחיל, צריך להתחבר לפלטפורמה של הכלי ליצירת סוכנים. אם מופיעה בקשה להפעיל את ה-API, לוחצים על 'המשך והפעלת ה-API'.
- לוחצים על 'יצירת אפליקציה' ונותנים לנציג שם תיאורי (למשל, 'כלי חיפוש פטנטים').
- לוחצים על 'סוג האפליקציה' 'סוכן'.
- נותנים לסוכנות שם תיאורי, כמו Patent Search Assistant, ומגדירים את האזור כ-us-central1.
- מזינים את הפרטים של הנציג:
- משנים את שם הסוכן ל-סוכן חיפוש פטנטים.
- מוסיפים את ה'יעד' הבא:
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.
- בשלב הזה שומרים את הקובץ ומשאירים את ההוראות ריקות.
- לאחר מכן לוחצים על 'כלים' בתפריט הניווט ואז על 'יצירה'.
Enter Tool Name (הזנת שם הכלי): Patent Search Tool (כלי לחיפוש פטנטים)
סוג: OpenAPI
הזנת תיאור הכלי:
This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.
מזינים סכימה — OpenAPI בפורמט YAML:
זה החלק שבו אנחנו משתמשים בנקודת הקצה העורפית כדי להפעיל את הנציג. מעתיקים את מפרט OpenAPI שבהמשך ומחליפים את placeholder של כתובת ה-URL (שסוגר בסוגריים משולשים) בנקודת הקצה של Cloud Function:
openapi: 3.0.0
info:
title: Patent Search API
version: v1
servers:
- url: YOUR_CLOUDFUNCTION_ENDPOINT_URL
paths:
/patent-search:
post:
summary: Search for patents using a text query.
requestBody:
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: The text query to search for patents.
example: A new Natural Language Processing related Machine Learning Model
responses:
'200':
description: Successful search response with a JSON array of matching patents.
content:
application/json:
schema:
type: array
items:
type: object
properties:
result:
type: string
description: Patent title.
'400':
description: Invalid request body.
'500':
description: Internal server error.
משאירים את ערכי ברירת המחדל בשאר ההגדרות ולוחצים על 'שמירה'.
- חוזרים לנציג בשלב הזה כי אנחנו רוצים להוסיף את 'הכלי'. לפי ההוראות של הסוכן. מוסיפים את הפריטים הבאים ל-placeholder של ההוראות (חשוב לזכור שכניסות הפיסקה חשובות להגדרת התהליך):
- Greet the users, then ask how you can help them today.
- Summarize the user's request and ask them to confirm that you understood correctly.
- If necessary, seek clarifying details.
- Use ${TOOL:Patent Search Tool} to help the user with their task.
- Return the response from the ${TOOL:Patent Search Tool} to the user in a well formed string.
- Thank the user for their business and say goodbye.
צריך לוודא שהכלי 'כלי חיפוש פטנטים' נבחר ברשימה 'כלים זמינים' ולאחר מכן לשמור את הנציג שוב.
5. בדיקת הנציג
בחלונית השמאלית אמור להופיע הקטע Preview Agent (נציג תצוגה מקדימה) שבו אפשר לבדוק את הנציג.
כמו שאפשר לראות בצילום המסך למטה, קיבלתי את פנייתי כמשתמש/ת והתחלתי את הצ'אט עם בקשה ל"התאמת פטנט לכל רעיון למעקב כושר":
זו תגובת ה-JSON:
זוהי התוצאה הגולמית של JSON מהפונקציה של Cloud Functions שמעבדת את חיפוש הדמיון של AlloyDB. זהו! הכול מוכן עכשיו עם הנציג.
6. פריסה ושילוב
כשתהיו מרוצים מהנציג, תוכלו לפרוס אותו בקלות בערוצים שונים באמצעות השילובים של Agent Builder. אפשר להטמיע אותו באתר, לשלב אותו בפלטפורמות פופולריות של הודעות או אפילו ליצור אפליקציה ייעודית לנייד. אפשר גם להשתמש ב-Agent Builder API ישירות באפליקציות הלקוח שלנו לאינטרנט, כפי שמוסבר בפוסט הזה בבלוג.
7. הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת הפוסט הזה, יש לפעול לפי השלבים הבאים:
8. מזל טוב
מעולה! על ידי שילוב העוצמה של מנוע ניתוח הנתונים המותאם אישית שלנו עם הממשק האינטואיטיבי של Agent Builder, ההתפתחות של עוזר דיגיטלי חכם לחיפוש ספרות תאפשר לנו להפוך את חיפושי הספרות לנגישים, יעילים ומוכוונות משמעות. על ידי שילוב היכולות של AlloyDB, Vertex AI ו-Vector Search, לקחנו צעד אחד קדימה בתהליך להפוך את החיפושים לפי הקשר וחיפוש וקטוריים לנגישים, יעילים, מבוססי-משמעות וסוכנים אמיתיים!