GenAI Agent ב-Slack לשאלות ותשובות לגבי מסמכים ופעולות באמצעות קריאות ל-API

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

בשיעור ה-Lab הזה תיצרו סוכן GenAI, תקשרו אותו לאפליקציית Cloud Run ותשלבו את הסוכן בסביבת העבודה של Slack.

3301e2bb69be325.png

מה תלמדו

יש כמה חלקים עיקריים במעבדה:

  • פריסת אפליקציית Cloud Run לשילוב עם Gemini APIs
  • יצירה ופריסה של סוכן בממשק שיחה ב-AI Applications
  • שילוב של הסוכן ב-Slack
  • הגדרת מאגר נתונים לשאלות ותשובות לגבי מסמכי PDF

דרישות מוקדמות

  • ההנחה בשיעור ה-Lab הזה היא שאתם מכירים את הסביבות של Cloud Console ו-Cloud Shell.

2. הגדרה ודרישות

הגדרה של פרויקט ב-Cloud

  1. נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
  • מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות כתובת משלכם ולבדוק אם היא זמינה. אי אפשר לשנות את הערך הזה אחרי השלב הזה, והוא יישאר כזה למשך הפרויקט.
  • לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
  1. בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.

הגדרת הסביבה

פותחים צ'אט עם Gemini.

e1e9ad314691368a.png

מפעילים את Gemini for Google Cloud API:

933612a23648361c.png

b366894eb450f862.png

כדי לנסות את התכונה, לוחצים על "Start chatting", בוחרים באחת מהשאלות לדוגמה או מקלידים הנחיה משלכם.

ed120d672468b412.png

הנחיות שאפשר לנסות:

  • תסביר את Cloud Run ב-5 נקודות עיקריות.
  • אתה מנהל מוצר ב-Google Cloud Run. תסביר לסטודנט מה זה Cloud Run ב-5 נקודות קצרות.
  • אתה מנהל מוצר ב-Google Cloud Run. עליך להסביר מהו Cloud Run למפתח Kubernetes מוסמך ב-5 נקודות קצרות.
  • אתה מנהל מוצר של Google Cloud Run. תסביר למפתח בכיר מתי כדאי להשתמש ב-Cloud Run ומתי ב-GKE, ב-5 נקודות קצרות.

כדאי לעיין במדריך להנחיות כדי לקבל מידע נוסף על כתיבת הנחיות טובות יותר.

איך Gemini for Google Cloud משתמש בנתונים שלכם

המחויבות של Google לפרטיות

‫Google הייתה אחת החברות הראשונות בתעשייה שפרסמו התחייבות לשמירה על פרטיות ב-AI/ML. במסגרת ההתחייבות הזו, אנחנו מצהירים שאנחנו מאמינים שללקוחות צריכה להיות רמת האבטחה והשליטה הגבוהה ביותר על הנתונים שלהם שמאוחסנים בענן.

נתונים שאתם שולחים ומקבלים

השאלות שאתם שואלים את Gemini, כולל כל קלט מידע או קוד שאתם שולחים ל-Gemini כדי לנתח או להשלים, נקראות הנחיות. התשובות או השלמות הקוד שאתם מקבלים מ-Gemini נקראות תגובות. ‫Gemini לא משתמש בהנחיות שלכם או בתשובות שלו כנתונים לאימון המודלים שלו.

הצפנה של הנחיות

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

נתוני תוכניות שנוצרו על ידי Gemini

‫Gemini מאומן על קוד של צד ראשון ב-Google Cloud וגם על קוד נבחר של צד שלישי. אתם אחראים לאבטחה, לבדיקה וליעילות של הקוד, כולל השלמה, יצירה או ניתוח של קוד ש-Gemini מציע לכם.

מידע נוסף על אופן הטיפול של Google בהנחיות שלכם

3. אפשרויות לבדיקת הנחיות

יש כמה דרכים לבדוק את ההנחיות.

‫Vertex AI Studio הוא חלק מפלטפורמת Vertex AI של Google Cloud, והוא מיועד במיוחד לפשט ולהאיץ את הפיתוח והשימוש במודלים של AI גנרטיבי.

‫Google AI Studio הוא כלי מבוסס-אינטרנט ליצירת אב טיפוס ולניסויים בהנדסת הנחיות וב-Gemini API.

אתר Gemini (בכתובת gemini.google.com) הוא כלי מבוסס-אינטרנט שנועד לעזור לכם להכיר את מודלי ה-AI של Google Gemini ולנצל את היכולות שלהם.

4. שכפול המאגר

חוזרים אל מסוף Google Cloud ומפעילים את Cloud Shell בלחיצה על הסמל משמאל לסרגל החיפוש.

3e0c761ca41f315e.png

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

6356559df3eccdda.png

בטרמינל שנפתח, מריצים את הפקודות הבאות:

git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git

cd genai-for-developers

git checkout slack-agent-jira-lab

לוחצים על Open Editor (פתיחת הכלי לעריכה).

63e838aebfdd2423.png

באמצעות פריט התפריט 'File / Open Folder', פותחים את 'genai-for-developers'.

e3b9bd9682acf539.png

פתיחת טרמינל חדש

4d9c41ab01ff4e97.png

5. יצירת חשבון שירות

יוצרים חשבון שירות חדש. תשתמשו בחשבון השירות הזה כדי לבצע קריאות ל-Vertex AI Gemini API מאפליקציית Cloud Run.

מגדירים את פרטי הפרויקט באמצעות פרטי הפרויקט ב-Qwiklabs.

דוגמה: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

יוצרים חשבון שירות.

export LOCATION=us-central1
export PROJECT_ID=$(gcloud config get-value project)
export SERVICE_ACCOUNT_NAME='vertex-client'
export DISPLAY_NAME='Vertex Client'

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID --display-name "$DISPLAY_NAME"

הקצאת תפקידים.

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.user"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudbuild.builds.editor"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/storage.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/run.admin"

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"

כדי להשתמש בממשקי Vertex AI API ובאינטראקציה עם Gemini, צריך להפעיל את השירותים הנדרשים.

gcloud services enable \
    generativelanguage.googleapis.com \
    aiplatform.googleapis.com \
    cloudaicompanion.googleapis.com \
    dialogflow.googleapis.com \
    run.googleapis.com \
    cloudresourcemanager.googleapis.com \
    discoveryengine.googleapis.com

כדי להשתמש בממשקי Vertex AI API ובאינטראקציה עם Gemini, צריך להפעיל את השירותים הנדרשים.

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    runapps.googleapis.com \
    workstations.googleapis.com \
    servicemanagement.googleapis.com \
    secretmanager.googleapis.com \
    containerscanning.googleapis.com

איך משתמשים ב-Gemini Code Assist כדי לקבל הסבר על קוד

פותחים את הקובץ devai-api/app/routes.py, לוחצים לחיצה ימנית בכל מקום בקובץ ובוחרים באפשרות Gemini Code Assist > Explain this" בתפריט ההקשר.

427ed40dd44cab8a.png

בודקים את ההסבר של Gemini לגבי הקובץ שנבחר.

a286d1e85bc42960.png

6. פריסת Devai-API ב-Cloud Run

בודקים שאתם בתיקייה הנכונה.

cd ~/genai-for-developers/devai-api

בשיעור ה-Lab הזה אנחנו פועלים לפי שיטות מומלצות ומשתמשים ב-Secret Manager כדי לאחסן את הערכים של אסימון הגישה ומפתח ה-API של LangChain ב-Cloud Run ולהפנות אליהם.

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

export JIRA_API_TOKEN=your-jira-token
export JIRA_USERNAME="YOUR-EMAIL"
export JIRA_INSTANCE_URL="https://YOUR-JIRA-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="YOUR-JIRA-PROJECT-KEY"
export JIRA_CLOUD=true

export GITLAB_PERSONAL_ACCESS_TOKEN=your-gitlab-token
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
export GITLAB_REPOSITORY="GITLAB-USERID/GITLAB-REPO"

export LANGCHAIN_API_KEY=your-langchain-key
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

יוצרים ומאחסנים כמה סודות ב-Secret Manager.

echo -n $JIRA_API_TOKEN | \
 gcloud secrets create JIRA_API_TOKEN \
 --data-file=-

echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
 gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
 --data-file=-

echo -n $LANGCHAIN_API_KEY | \
 gcloud secrets create LANGCHAIN_API_KEY \
 --data-file=-

פורסים את האפליקציה ב-Cloud Run.

gcloud run deploy devai-api \
  --source=. \
  --region="$LOCATION" \
  --allow-unauthenticated \
  --service-account vertex-client \
  --set-env-vars PROJECT_ID="$PROJECT_ID" \
  --set-env-vars LOCATION="$LOCATION" \
  --set-env-vars GITLAB_URL="$GITLAB_URL" \
  --set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
  --set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
  --set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
  --set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
  --set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
  --set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
  --set-env-vars JIRA_CLOUD="$JIRA_CLOUD" \
  --set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
  --update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
  --update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
  --update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
  --min-instances=1 \
  --max-instances=3

משיבים Y כדי ליצור מאגר Docker ב-Artifact Registry.

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in 
region [us-central1] will be created.

Do you want to continue (Y/n)?  y

יש לך שאלה ל-Gemini? בקש מ-Gemini להסביר את הפקודה:

What does this command do?

gcloud run deploy devai-api \
  --source=. \
  --region="$LOCATION" \
  --allow-unauthenticated \
  --service-account vertex-client \
  --set-env-vars PROJECT_ID="$PROJECT_ID" \
  --set-env-vars LOCATION="$LOCATION" \
  --set-env-vars GITLAB_URL="$GITLAB_URL" \
  --set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
  --set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
  --set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
  --set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
  --set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
  --set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
  --set-env-vars JIRA_CLOUD="$JIRA_CLOUD" \
  --set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
  --update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
  --update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
  --update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
  --min-instances=1 \
  --max-instances=3

34ed504e0bcf697b.png

אפשר לעיין בתרשים הזרימה gcloud run deploy SERVICE_NAME --source=. למטה. מידע נוסף

5c122a89dd11822e.png

מאחורי הקלעים, הפקודה הזו משתמשת ב-buildpacks וב-Cloud Build של Google Cloud כדי ליצור באופן אוטומטי קובצי אימג' של קונטיינרים מקוד המקור שלכם, בלי שתצטרכו להתקין את Docker במחשב או להגדיר buildpacks או Cloud Build. כלומר, הפקודה היחידה שמתוארת למעלה עושה את מה שבדרך כלל דורש את הפקודות gcloud builds submit ו-gcloud run deploy.

אם סיפקתם Dockerfile(כמו שעשינו במאגר הזה),‏ Cloud Build ישתמש בו כדי ליצור קובצי אימג' של קונטיינרים, במקום להסתמך על Buildpacks כדי לזהות וליצור קובצי אימג' של קונטיינרים באופן אוטומטי. מידע נוסף על buildpacks זמין במסמכי התיעוד.

בודקים את היומנים של Cloud Build במסוף.

בודקים את קובץ האימג' של Docker שנוצר ב-Artifact Registry.

בודקים את פרטי המכונה של Cloud Run ב-Cloud Console.

בודקים את נקודת הקצה על ידי הרצת פקודת curl.

curl -X POST \
   -H "Content-Type: application/json" \
   -d '{"prompt": "PROJECT-100"}' \
   $(gcloud  run services list --filter="(devai-api)" --format="value(URL)")/generate

התשובה תהיה בפורמט Markdown. התצוגה היא במצב תצוגה מקדימה כדי להקל על הקריאה.

bda86deaa1c449a8.png

7. אפליקציות AI

בסרגל החיפוש של מסוף Google Cloud, מקלידים AI Applications ופותחים את האפשרות.

3f8540f5c946e199.png

יצירת אפליקציית Conversational Agent:

6f372cbe4935c507.png

בוחרים באפשרות Build your own.

5305cb9a8320f468.png

מקלידים "Agent" בשדה 'שם לתצוגה' ולוחצים על 'יצירה'.

e0056adc2f8af87.png

הגדרת שם הפלייבוק:

Agent

הגדרת יעד:

Help users with questions about JIRA project

הגדרת הוראות:

- 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.
- Thank the user for their business and say goodbye.

לוחצים על 'Save':

bb2569de77cd1f06.png

בודקים את הסוכן באמצעות סימולטור צ'אט בצד שמאל:

593dd4b8fc4c20d9.png

כך נראות שיחות דומות:

66a7569835ebc7e7.png

הגדרת הכלים של הסוכן

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

ff635e2d135ea6d8.png

בוחרים באפשרות OpenAPI בתפריט הנפתח 'סוג'.

הגדרת שם הכלי:

jira-project-status

תיאור ההגדרה:

Provides JIRA project status

עוברים לכרטיסייה אחרת ובודקים את הפלט של המסוף בשביל כתובת ה-URL של שירות Cloud Run. מעתיקים את הערך של כתובת ה-URL של השירות.

הגדרת סכימה (YAML) – מחליפים את כתובת ה-URL של Cloud Run.

openapi: 3.0.0
info:
 title: CR API
 version: 1.0.0
 description: >-
   This is the OpenAPI specification of a service.
servers:
 - url: 'https://YOUR CLOUD RUN URL'
paths:

 /generate:
   post:
     summary: Request impl
     operationId: generate
     requestBody:
       description: Request impl
       required: true
       content:
         application/json:
           schema:
             $ref: '#/components/schemas/Prompt'
     responses:
       '200':
         description: Generated
         content:
           application/json:
             schema:
               $ref: '#/components/schemas/ProjectStatus'
                  
components:
 schemas:
   Prompt:
     type: object
     required:
       - prompt
     properties:
       prompt:
         type: string
   ProjectStatus:
     type: object
     required:
       - message
     properties:
       message:
         type: string

שומרים את הגדרת הכלי:

ae78c21f48754d7a.png

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

מוסיפים הוראות לשימוש בכלי החדש ולוחצים על Save:

- Use ${TOOL: jira-project-status} to help the user with JIRA project status.

16755dd3aaf3888.png

עוברים לכרטיסייה Examples ומוסיפים דוגמה חדשה:

a74004679865ab6e.png

הגדרת השם המוצג:

jira-project-flow

בעזרת התפריט שבתחתית, תבנה מודל של שיחה בין משתמש לבין נציג:

דוגמה לתהליך:

התשובה של הסוכן: מה מזהה הפרויקט?

קלט של משתמשים: TEST-PROJECT-100

שימוש בכלי: jira-project-status

תשובת הנציג: פרטים על סטטוס הפרויקט.

6d54f90f1dc630fc.png

אפשר להשתמש בהפניה שלמטה כדי ליצור את הדוגמה.

c80eef4210256e5a.png

5affaee4cd54616e.png

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

ac9db60831b0f684.png

a9fbafd45139d434.png

מעולה! שילבתם כלים שמקושרים לאפליקציה(API) שפרסתם ב-Cloud Run, וכך הענקתם לסוכן את היכולת לבצע פעולות והרחבתם את היכולות שלו.

e8b113e0cc1b8ad6.png

כדאי לעיין בשיטות המומלצות לשימוש בכלי ליצירת סוכנים בממשק שיחה

בדיקת ההגדרות הזמינות של הסוכן

  • הגדרות רישום ביומן – הפעלת Cloud Logging
  • שילוב עם Git – שילוב עם Git מאפשר לכם להעלות את הסוכן למאגר Git ולמשוך אותו ממנו.
  • בחירת מודל גנרטיבי
  • מגבלות על טוקנים(קלט ופלט)

f914db1d8a5d5447.png

בדיקת אמצעי הבקרה של סימולטור הסוכנים:

d1c4712603d4a8a2.png

8. שילוב עם Slack

פותחים את תפריט השילובים ולוחצים על Connect בתיבת Slack.

6fc0ad95c28cb6c8.png

e7ee0826668bfa2b.png

b29574fd2a0f9725.png

פותחים את הקישור ויוצרים אפליקציית Slack חדשה בכתובת https://api.slack.com/apps

cbf13edc1b284899.png

בוחרים מתוך 'קובץ המניפסט':

7721feb295693ea2.png

בחירת סביבת עבודה לפיתוח האפליקציה

99a3d5b37cdf8f76.png

עוברים ל-YAML ומדביקים את המניפסט הזה:

display_information:
  name: Agent
  description: Agent
  background_color: "#1148b8"
features:
  app_home:
    home_tab_enabled: false
    messages_tab_enabled: true
    messages_tab_read_only_enabled: false
  bot_user:
    display_name: Agent
    always_online: true
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - chat:write
      - im:history
      - im:read
      - im:write
      - incoming-webhook
settings:
  event_subscriptions:
    request_url: https://dialogflow-slack-4vnhuutqka-uc.a.run.app
    bot_events:
      - app_mention
      - message.im
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false

לוחצים על 'יצירה':

5f0b3d2c44022eb9.png

התקנה ב-Workspace:

aa1c2ea1b700c838.png

בוחרים בערוץ '#כללי' ולוחצים על 'אישור'.

18eba659946fc65f.png

בקטע 'מידע בסיסי / פרטי כניסה לאפליקציה' – מעתיקים את 'סוד החתימה' ומגדירים אותו בשדה 'אסימון חתימה' בשילוב של Agent עם Slack.

31d62babb57e523d.png

bd9f7e3be3b9ea4e.png

פותחים את 'OAuth & Permissions' (הרשאות ו-OAuth), מעתיקים את 'Bot User OAuth Token' (טוקן OAuth של משתמש הבוט) ומגדירים אותו בשילוב של Agent עם Slack כערך בשדה 'Access token' (טוקן גישה).

e74c7e003c31258.png

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

הערך של Access Token (טוקן גישה) של הסוכן הוא Bot User OAUth Token (טוקן OAuth של משתמש הבוט) מ-Slack.

הערך של Signing Token (אסימון חתימה) של הסוכן הוא Signing Secret (סוד חתימה) מ-Slack.

8ea9f6856efa62cf.png

7e71e37750fd063a.png

מעתיקים את ה-Webhook URL וחוזרים להגדרות של אפליקציית Slack.

פותחים את הקטע Event Subscriptions (הרשמה לאירועים) ומדביקים את כתובת ה-URL.

a1e7271934c714d9.png

שומרים את השינויים.

e6d9b43b3787b6e7.png

פותחים את Slack ומוסיפים סוכן על ידי הקלדת ‎@Agent.

לדוגמה, הוספת אפליקציה בשם ‎@CX.

72313066707f947b.png

63becbd80824f8d8.png

c98e193062b096f0.png

מבקשים מהסוכן סיכום של פרויקט JIRA.

6edfdb74760548ad.png

מעולה! הסוכן שולב בהצלחה בסביבת העבודה של Slack.

703a3bf5754680fa.png

9. שאלות ותשובות לגבי מסמכי PDF

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

יצירת קטגוריה של Cloud Storage

פותחים את Cloud Shell: ‏ https://shell.cloud.google.com/

מגדירים את שם ה-bucket באמצעות 5 הספרות האחרונות של פרויקט GCP. דוגמה: pdf-docs-3dw21

BUCKET_NAME=pdf-docs-LAST-5-DIGITS-OF-YOUR-PROJECT

יוצרים קטגוריה ומעלים מסמך PDF.

gcloud storage buckets create gs://$BUCKET_NAME \
    --location=us \
    --default-storage-class=STANDARD \
    --no-public-access-prevention \
    --uniform-bucket-level-access

wget https://services.google.com/fh/files/misc/exec_guide_gen_ai.pdf 

gsutil cp exec_guide_gen_ai.pdf gs://$BUCKET_NAME

הגדרת מאגר נתונים

חוזרים למסוף של נציג התמיכה, פותחים את הקטע Agent, גוללים למטה ולוחצים על + Data store.

9a5e4d6d1e040b86.png

משתמשים בערכים הבאים:

שם הכלי: pdf-docs

סוג: Data store

תיאור: pdf-docs

לוחצים על 'Save'.

60096b1c597347fa.png

לוחצים על הסמל Add data stores בתחתית הדף. ואז לוחצים על 'Create new data store'.

abb9e513ac905e75.png

בוחרים באפשרות "Cloud Storage" כמקור נתונים.

בוחרים באפשרות: Unstructured documents

בוחרים את קטגוריית/תיקיית ה-GCS.

42dec238c1d0ac2f.png

בוחרים באפשרות us למיקום של מאגר הנתונים.

לסוג שם מאגר הנתונים: "pdf-docs"

בתפריט הנפתח, בוחרים באפשרות Digital parser.

הפעלת חלוקה מתקדמת למקטעים.

הפעלת כותרות של רכיבי תוכן ברצף.

לוחצים על 'Create'.

1a5222b86ee6c58e.png

3119b5fec43c9294.png

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

872d9142615e90c9.png

הייבוא יימשך כ-5 עד 10 דקות.

d9739a4af2244e03.png

אפשרויות של ניתוח (parsing) וחלוקה (chunking)

אפשר לשלוט בניתוח התוכן בדרכים הבאות:

  • מנתח דיגיטלי. מנתח התוכן הדיגיטלי מופעל כברירת מחדל לכל סוגי הקבצים, אלא אם מציינים סוג אחר של מנתח. הכלי לניתוח מסמכים דיגיטליים מעבד מסמכים שהועלו אם לא צוין כלי אחר לניתוח מסמכים כברירת מחדל למאגר הנתונים, או אם הכלי שצוין לא תומך בסוג הקובץ של המסמך שהועלה.
  • ניתוח OCR של קובצי PDF. גרסת טרום-השקה ציבורית. אם אתם מתכננים להעלות קובצי PDF סרוקים או קובצי PDF עם טקסט בתוך תמונות, אתם יכולים להפעיל את מנתח ה-OCR כדי לשפר את יצירת האינדקס של קובצי PDF. מידע על ניתוח OCR של קובצי PDF
  • כלי לניתוח פריסה. אם אתם מתכננים להשתמש בחיפוש מבוסס-Vertex AI ל-RAG, אתם צריכים להפעיל את מנתח הפריסה לקובצי HTML, ‏ PDF או DOCX. מידע על מנתח התוכן הזה ועל הפעלתו זמין במאמר בנושא חלוקת מסמכים לחלקים לצורך RAG.

מידע נוסף על ניתוח מסמכים ופיצול שלהם לחלקים

הגדרת הכלי

חוזרים למסך ההגדרות של כלי הסוכן ומרעננים את מאגרי הנתונים הזמינים.

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

2922f7d9bdb7b2bc.png

מגדירים את ההארקה.

מקלידים 'Google Cloud' בשדה 'שם החברה'.

הגדרות של מטען ייעודי (payload) – מסמנים את האפשרות Include snippets in Conversational Messenger response payload" ומגדירים את הערך 5.

לוחצים על 'שמירה'.

484e99caa7d1bc07.png

הגדרת הוראות לסוכן

חוזרים להגדרת הסוכן.

הוספת הוראה חדשה:

- Provide detailed answer to users questions about the exec guide to gen ai using information in the ${TOOL:pdf-docs}

f6d27e58b68f9f7.png

שומרים את ההגדרה.

יצירת דוגמה לכלי PDF-Docs

עוברים לכרטיסייה 'דוגמאות'. יצירת דוגמה חדשה: Guide to generative AI

שימוש בפעולות "+":

ee4f85ba3f47fda0.png

מוסיפים את האפשרות 'קלט של משתמשים':

What are the main capabilities for generative AI?

מוסיפים את האפשרות 'שימוש בכלי'.

  • כלי ופעולה: "pdf-docs"

קלט (requestBody)

{
  "query": "Main capabilities for generative AI",
  "filter": "",
  "userMetadata": {},
  "fallback": ""
}

פלט הכלי:

{
  "answer": "Detailed answer about main capabilities for generative AI",
  "snippets": [
    {
      "uri": "https://storage.cloud.google.com/pdf-docs-49ca4/exec_guide_gen_ai.pdf",
      "text": "Detailed answer about main capabilities",
      "title": "exec_guide_gen_ai"
    }
  ]
}

הוספת 'תשובה של נציג'

Detailed answer about main capabilities. 

https://storage.cloud.google.com/pdf-docs-49ca4/exec_guide_gen_ai.pdf

דוגמה להגדרה:

d1da4c1d18709ea6.png

הגדרת הפעלת הכלי:

a0d47a9dc04bb2f1.png

עוברים לסימולטור כדי לבדוק את ההגדרה.

שאלה:

What are the 10 steps in the exec guide?

e682480a959125bc.png

בתפריט הנפתח 'הפעלות', בוחרים באפשרות Agent ולוחצים על Save as example.

582759df60b9a342.png

צריך להזין שם 'user-question-flow'.

מגדירים את הסיכום: "Agent helped user answer question based on the pdf document" ולוחצים על שמירה.

לעצב את התגובה של הסוכן ולכלול קישור למסמך ה-PDF בקטע הפלט של הכלי.

6ba5011ed26793f3.png

שומרים את הדוגמה.

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

What are the 10 steps in the exec guide?

51698c5f1fbd2770.png

אני רוצה לשאול שאלה אחרת:

What are the main capabilities in the exec guide?

7b636f489c05a13.png

מסמך PDF של המקור.

5b3e6d2ceda99247.png

שאלה:

What should I consider when evaluating projects?

1155edfbffcd14b2.png

מסמך PDF של המקור.

57a0d331aa91f04b.png

שאלה:

What are the priority use cases in Retail and CPG in the exec guide?

92264121fc8f06e.png

מסמך PDF של המקור.

b4d07e6e7d9adc00.png

מעולה! הסוכן יכול עכשיו לספק תשובות מבוססות על מסמכי ה-PDF.

e11d020a9cfa36d1.png

10. סוכנים מוכנים מראש

לאחר מכן, בתפריט הימני, תעברו אל סוכנים מוכנים מראש.

de49672bbb8112fd.png

בוחרים אחד מהסוכנים ומפעילים אותו. עיון בהגדרות, בהוראות ובכלים של הסוכן.

1e00ed8ef4887efb.png

‫11. מעולה!

כל הכבוד, סיימתם את ה-Lab.

הנושאים שדיברנו עליהם:

  • איך יוצרים ופורסים סוכנים בממשק שיחה
  • איך מוסיפים כלי לסוכן שמגובה על ידי אפליקציית Cloud Run
  • איך משלבים את הסוכן בסביבת העבודה ב-Slack
  • איך מגדירים מאגר נתונים לשאלות ותשובות לגבי מסמכי PDF

השלב הבא:

הסרת המשאבים

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

מחיקת הפרויקט

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.

‫‎©2024 Google LLC כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים הם סימנים מסחריים של החברות שאליהן הם משויכים.