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

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

מידע על Codelab זה

subjectהעדכון האחרון: מרץ 18, 2025
account_circleנכתב על ידי Andrey Shakirov

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

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

8541c95a7fbc9be7.png

הסדנה מורכבת מכמה חלקים עיקריים:

  • פריסה של אפליקציית Cloud Run לשילוב עם ממשקי Gemini API
  • יצירת צ'אט בוט ופריסה שלו
  • שילוב Agent ב-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. בשלב הבא, כדי להשתמש במשאבים או ב-API של Cloud, תצטרכו להפעיל את החיוב במסוף Cloud. השלמת הקודלאב הזה לא תעלה הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים אחרי סיום המדריך, אפשר למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים להשתתף בתוכנית תקופת ניסיון בחינם בסך 300$.

הגדרת הסביבה

פותחים את Gemini Chat.

e1e9ad314691368a.png

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

990a0ceea7d05531.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.

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

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

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

3e0c761ca41f315e.png

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

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

cd genai
-for-developers

git checkout slack
-agent-jira-lab

לוחצים על 'פתיחת העורך'.

63e838aebfdd2423.png

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

e3b9bd9682acf539.png

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

4d9c41ab01ff4e97.png

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

יוצרים חשבון שירות חדש. תשתמשו בחשבון השירות הזה כדי לבצע קריאות API ל-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'
export KEY_FILE_NAME='vertex-client-key'

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"

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

6356559df3eccdda.png

מפעילים את השירותים הנדרשים כדי להשתמש ב-Vertex AI APIs וב-Gemini Chat.

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

מפעילים את השירותים הנדרשים כדי להשתמש ב-Vertex AI APIs וב-Gemini Chat.

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 להסביר את הפקודה:

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.

בודקים את נקודת הקצה על ידי הרצת הפקודה 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.‏ Vertex AI Agent Builder

מחפשים את 'Agent Builder' ופותחים אותו.

d189f2069d7bc7f6.png

מפעילים את ממשקי ה-API:

4bf2b240bd51db8.png

יצירת אפליקציה של סוכן בממשק שיחה:

9ee179dbcca38234.png

מפעילים את Dialogflow API:

75f2fd509c16ab88.png

בוחרים את הפרויקט:

bf6d60bebab949fe.png

לוחצים על 'יצירת נציג':

42332fe32af5a74e.png

בוחרים באפשרות 'יצירת אתר משלכם'.

583c747540ce3217.png

מקלידים 'סוכן' בשדה 'שם מוצג' ולוחצים על 'יצירה'.

e0056adc2f8af87.png

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

Agent

הגדרת יעד:

Help user 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.

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

bb2569de77cd1f06.png

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

7477cf320aaec22.png

66a7569835ebc7e7.png

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

ff635e2d135ea6d8.png

בתפריט הנפתח Type (סוג), בוחרים באפשרות OpenAPI.

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

jira-project-status

הגדרת תיאור:

Provides JIRA project status

הגדרת הסכימה (YAML) – מחליפים את כתובת ה-URL של Cloud Run. עוברים בין הכרטיסיות ובודקים את הפלט במסוף כדי למצוא את כתובת ה-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

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

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

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

4dabf135b37b044b.png

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

a74004679865ab6e.png

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

jira-project-flow

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

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

תשובת הנציג: מהו מזהה הפרויקט?

קלט המשתמש: TEST-PROJECT-100

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

תגובה מנציג התמיכה: פרטי סטטוס הפרויקט.

6d54f90f1dc630fc.png

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

c80eef4210256e5a.png

5affaee4cd54616e.png

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

f96e7f711561e559.png

85d0e12acf682357.png

מעולה! שילוב כלים שמקושרים ל-API שנפרס ב-Cloud Run מאפשר ל-Agent לבצע פעולות.

695f18b4e5f81de8.png

שיטות מומלצות ל-Vertex AI Agents

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

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

f914db1d8a5d5447.png

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

d1c4712603d4a8a2.png

8.‏ שילוב עם Slack

פותחים את תפריט השילובים ולוחצים על 'התחברות' בחלונית של 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

בוחרים את הערוץ ‎#general ולוחצים על 'אישור'.

18eba659946fc65f.png

בקטע 'מידע בסיסי / פרטי כניסה לאפליקציה' – מעתיקים את 'Signing Secret' ומגדירים אותו בשילוב של Agent ב-Slack כערך בשדה 'Signing Token'.

31d62babb57e523d.png

bd9f7e3be3b9ea4e.png

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

e74c7e003c31258.png

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

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

הערך של Signing Token של הסוכן הוא Signing Secret מ-Slack.

8ea9f6856efa62cf.png

7e71e37750fd063a.png

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

פותחים את הקטע 'מינויים לאירועים' ומדביקים את כתובת ה-URL.

a1e7271934c714d9.png

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

e6d9b43b3787b6e7.png

פותחים את Slack ומוסיפים נציג על ידי הקלדה של "‎@Agent".

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

72313066707f947b.png

63becbd80824f8d8.png

c98e193062b096f0.png

מבקשים מהנציג סיכום של פרויקט ב-JIRA.

6edfdb74760548ad.png

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

e1a792e199d697c7.png

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

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

יצירת קטגוריה ב-Cloud Storage

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

מגדירים את שם הקטגוריה באמצעות 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

לוחצים על מאגר הנתונים ובודקים את ההגדרות של Documents, ‏ Activity ו-Processing.

872d9142615e90c9.png

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

d9739a4af2244e03.png

אפשרויות ניתוח וחלוקה למקטעים

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

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

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

הגדרת הכלי

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

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

2922f7d9bdb7b2bc.png

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

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

הגדרות של עומס שימושי – מסמנים את האפשרות 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

עוברים לכרטיסייה Examples (דוגמאות). יצירת דוגמה חדשה: 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

בתפריט הנפתח Invocations (קריאות), בוחרים באפשרות 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.

197cf1ae70663fae.png

10.‏ נציגים מוכנים מראש

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

de49672bbb8112fd.png

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

c2f1808c30d4c17b.png

11.‏ מעולה!

כל הכבוד, סיימת את שיעור ה-Lab!

הנושאים שעסקנו בהם:

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

השלב הבא:

הסרת המשאבים

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

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

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

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