פיתוח עוזר דיגיטלי לחיפוש פטנטים באמצעות AlloyDB ו-Vertex AI Agent Builder – חלק 2

1. סקירה כללית

מחקר פטנטים הוא נרחב ומורכב. העיון בתקצירים טכניים רבים כדי למצוא חידושים רלוונטיים הוא משימה מרתיעה. חיפושים מסורתיים המבוססים על מילות מפתח הם בדרך כלל לא מדויקים וגוזלים זמן רב. תקצירים הם ארוכים וטכניים, ולכן קשה להבין את הרעיון המרכזי במהירות. כתוצאה מכך, החוקרים עלולים להחמיץ פטנטים חשובים או לבזבז זמן על תוצאות לא רלוונטיות.

המהפך הסודי שעומד מאחורי המהפכה הזו טמון בחיפוש וקטורי. במקום להסתמך על התאמה פשוטה למילות מפתח, התכונה 'חיפוש וקטורי' ממירה את הטקסט לייצוגים מספריים (הטמעה). כך אנחנו יכולים לחפש על סמך המשמעות של השאילתה, ולא רק על סמך המילים הספציפיות שנעשה בהן שימוש. בעולם של חיפושי ספרות, הדבר מהפכני. נניח שתמצאו פטנט על "מוניטור דופק לביש" גם אם הביטוי המדויק לא מופיע במסמך.

האתגר: חיפושי ספרות מודרניים צפויים לספק תשובות מיידיות והמלצות חכמות שמתאימות להעדפות הייחודיות שלהם. לעיתים קרובות, שיטות החיפוש המסורתיות לא מספקות את רמת ההתאמה האישית הזו.

הפתרון: אפליקציית הצ'אט מבוססת-הידע שלנו מתמודדת עם האתגר הזה ישירות. הוא מתבסס על מאגר ידע עשיר שנגזר ממערך הנתונים של הפטנטים שלכם כדי להבין את כוונת הלקוחות, להגיב בצורה חכמה ולספק תוצאות רלוונטיות במיוחד.

מה תפַתחו

בשיעור ה-Lab הזה (חלק 2):

  1. פיתוח סוכן של Vertex AI Agent Builder
  2. משלבים את הכלי AlloyDB עם הנציג

דרישות

  • דפדפן כמו Chrome או Firefox
  • פרויקט ב-Google Cloud שמופעל בו חיוב.

2. ארכיטקטורה

זרימת נתונים: בואו נסתכל מקרוב על האופן שבו הנתונים עוברים במערכת שלנו:

הטמעת נתונים:

נתוני הפטנטים נטענים אל AlloyDB.

Analytics Engine:

נשתמש ב- AlloyDB כמנוע ניתוח הנתונים כדי לבצע את הפעולות הבאות:

  1. חילוץ הקשר: המנוע מנתח את הנתונים שמאוחסנים ב- AlloyDB כדי להבין את מערך הנתונים של הפטנטים.
  2. יצירת הטמעה: הטמעות (ייצוגים מתמטיים של הטקסט) נוצרות גם לשאילתת המשתמש וגם למידע שמאוחסן ב- AlloyDB.
  3. חיפוש וקטורי: המנוע מבצע חיפוש דמיון ומשווה את הטמעת השאילתה להטמעות של תקצירי פטנטים. הנתונים האלה מזהים את 'השכן הקרוב ביותר' הרלוונטי ביותר. להקשר שהמשתמש מחפש.

יצירת תגובות:

התשובות המאומתות מובנות במערך JSON וכל המנוע ארוז בפונקציה של Cloud Run ללא שרת (serverless), שמופעלת מ-Agent Builder.

השלבים שלמעלה כבר כלולים בחלק 1 של שיעור ה-Lab.

דיברנו על הפרטים הטכניים של יצירת מנוע ניתוח מבוסס-ידע, שמפעיל את העוזר החכם שלנו לחיפוש פטנטים. ועכשיו נראה איך אנחנו משתמשים בקסם של Agent Builder כדי להפיח חיים במנוע בממשק שיחה. לפני שמתחילים חלק 2, חשוב לוודא שכתובת ה-URL של נקודת הקצה מוכנה. השלב הבא הוא הנושאים שנלמד בשיעור ה-Lab הזה:

אינטראקציה בשיחה:

הכלי Agent Builder מציג את התשובות למשתמש בפורמט של שפה טבעית, וכך מאפשר שיח של אינטראקציה הדדית.

3. לפני שמתחילים

יצירת פרויקט

  1. במסוף Google Cloud, בדף בורר הפרויקטים, בוחרים או יוצרים פרויקט ב-Google Cloud.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. איך בודקים אם החיוב מופעל בפרויקט
  3. משתמשים ב-Cloud Shell, סביבת שורת הפקודה שפועלת ב-Google Cloud וכוללת טעינה מראש של bq. לוחצים על Activate Cloud Shell בחלק העליון של מסוף Google Cloud.

תמונת הלחצן של Activate Cloud Shell

  1. אחרי ההתחברות ל-Cloud Shell, בודקים שהאימות כבר בוצע ושהפרויקט מוגדר למזהה הפרויקט שלכם, באמצעות הפקודה הבאה:
gcloud auth list
  1. מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שהפקודה של gcloud יודעת על הפרויקט שלכם.
gcloud config list project
  1. אם הפרויקט לא מוגדר, מגדירים אותו באמצעות הפקודה הבאה:
gcloud config set project <YOUR_PROJECT_ID>
  1. מפעילים את ממשקי ה-API הנדרשים. החלופה לפקודה ב-gcloud היא דרך המסוף, באמצעות חיפוש כל מוצר או באמצעות הקישור הזה.

אם חסר API כלשהו, תמיד אפשר להפעיל אותו במהלך ההטמעה.

עיינו במסמכי העזרה לפקודות ולשימוש של gcloud.

הערה חשובה: בנוסף, כדי להשלים זאת, עליכם לוודא שהשלמתם את חלק 1 בשיעור ה-Lab.

4. יצירת סוכן

נעים להכיר: Agent Builder

Agent Builder הוא כלי פשוט ויעיל שמאפשר לנו ליצור נציגים לשיחות במהירות וביעילות. הוא מייעל את התהליך של עיצוב תהליכים דיאלוגיים, שילוב מאגרי ידע והתחברות לממשקי API חיצוניים. במקרה שלנו, נשתמש ב-Agent Builder כדי להתחבר באופן חלק לנקודת הקצה של הפונקציה של Cloud Functions שפיתחנו בחלק 1. כך העוזר הדיגיטלי לחיפוש פטנטים יוכל לגשת למאגר הידע שלנו בנושא פטנטים ולהגיב לשאילתות של משתמשים בצורה חכמה.

ודאו שהפונקציה של Java Cloud Run שנוצרה בחלק 1 מחזירה ARRAY של JSON במקום טקסט פשוט.

בניית הנציג

נתחיל עם יצירת הנציג החדש הזה כדי לענות על שאלות של משתמשים לגבי מוצרי הלבוש.

  1. כדי להתחיל, צריך להתחבר לפלטפורמה של Agent Builder. אם תופיע בקשה להפעיל את ה-API, צריך ללחוץ על 'המשך' ולהפעיל את ה-API.
  2. לוחצים על 'יצירת אפליקציה' ונותנים לנציג שם תיאורי (למשל, "Patent Search Assistant").
  3. לוחצים על 'סוג האפליקציה' 'סוכן'.

462bb48664e9a14e.png

  1. הקצר הזה. התשובות שלך יעזרו לנו להשתפר. צריך לתת לנציג שם תיאורי כמו "Patent Search Assistant". ולהגדיר את האזור כ-us-central1
  2. מזינים את הפרטים של הנציג:
  3. משנים את שם הסוכן ל'סוכן חיפוש פטנטים'.
  4. מוסיפים את ה'יעד' הבא:
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.

38f7d77d5ed0cb2a.png

  1. כדאי לשמור אותו בשלב הזה ולהשאיר את ההוראות ריקות.
  2. בתפריט הניווט, לוחצים על Tools (כלים) ולוחצים על CREATE (יצירה).

38f7d77d5ed0cb2a.png

הזנת שם הכלי: כלי חיפוש פטנטים

סוג: 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 Functions:

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.

משאירים את ערכי ברירת המחדל בשאר ההגדרות ולוחצים על 'שמירה'.

  1. חוזרים לנציג בשלב הזה כי אנחנו רוצים להוסיף את 'הכלי'. לפי ההוראות של הסוכן. מוסיפים את הפריטים הבאים ל-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 (נציג תצוגה מקדימה) שבו אפשר לבדוק את הנציג.

כמו שאפשר לראות בצילום המסך למטה, קיבלתי את פנייתי כמשתמש/ת והתחלתי את הצ'אט עם בקשה ל"התאמת פטנט לכל רעיון למעקב כושר":

e4ffaa48b5c1f012.png

זו תגובת ה-JSON:

b0ee0af57ba63943.png

זוהי התוצאה הגולמית של JSON מהפונקציה של Cloud Functions שמעבדת את חיפוש הדמיון של AlloyDB. זהו! הכול מוכן עכשיו מול הנציג.

6. פריסה ושילוב

כשתהיו מרוצים מהנציג, תוכלו לפרוס אותו בקלות בערוצים שונים באמצעות השילובים של Agent Builder. אפשר להטמיע אותו באתר, לשלב אותו בפלטפורמות פופולריות להעברת הודעות או אפילו ליצור אפליקציה ייעודית לנייד. אפשר גם להשתמש ב-Agent Builder API ישירות ביישומי לקוח האינטרנט שלנו, שעליהם דיברנו בבלוג הזה.

7. הסרת המשאבים

כדי להימנע מצבירת חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בפוסט הזה:

  1. במסוף Google Cloud, נכנסים לקטע Manage (ניהול).
  2. resources.
  3. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  4. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

8. מזל טוב

מעולה! על ידי שילוב העוצמה של מנוע ניתוח הנתונים המותאם אישית שלנו עם הממשק האינטואיטיבי של Agent Builder, יצרנו עוזר דיגיטלי חכם לחיפוש ספרות שיהפוך את חיפושי הספרות לנגישים, יעילים ומבוססי-משמעות באמת. על ידי שילוב היכולות של AlloyDB, Vertex AI ו-Vector Search, לקחנו צעד אחד קדימה ביצירת חיפושים לפי הקשר וחיפוש וקטוריים לנגישים, יעילים, מבוססי-משמעות וסוכנים אמיתיים.