GenAI Agent ใน Slack สําหรับถามคําถามเกี่ยวกับเอกสารและการดําเนินการด้วยการเรียก API

1. ภาพรวม

ในแล็บนี้ คุณจะได้สร้างเอเจนต์ GenAI, เชื่อมต่อกับแอปพลิเคชัน Cloud Run และผสานรวมเอเจนต์เข้ากับพื้นที่ทำงาน Slack

3301e2bb69be325.png

สิ่งที่คุณจะได้เรียนรู้

ห้องทดลองมีส่วนหลักๆ หลายส่วน ดังนี้

  • ติดตั้งใช้งานแอปพลิเคชัน Cloud Run เพื่อผสานรวมกับ Gemini API
  • สร้างและติดตั้งใช้งานเอเจนต์การสนทนาในแอปพลิเคชัน AI
  • ผสานรวม Agent เข้ากับ Slack
  • กำหนดค่าที่เก็บข้อมูลสำหรับถามและตอบเกี่ยวกับเอกสาร PDF

ข้อกำหนดเบื้องต้น

  • แล็บนี้มีสมมติฐานว่าคุณคุ้นเคยกับสภาพแวดล้อมของ Cloud Console และ Cloud Shell

2. การตั้งค่าและข้อกำหนด

การตั้งค่าโปรเจ็กต์ Cloud

  1. ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์
  • โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
  1. จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

การตั้งค่าสภาพแวดล้อม

เปิดแชทกับ Gemini

e1e9ad314691368a.png

วิธีเปิดใช้ Gemini สำหรับ 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 สำหรับ Google Cloud ใช้ข้อมูลของคุณ

ความมุ่งมั่นของ Google ในการปกป้องความเป็นส่วนตัว

Google เป็นหนึ่งในบริษัทแรกๆ ในอุตสาหกรรมที่เผยแพร่ความมุ่งมั่นด้านความเป็นส่วนตัวของ AI/ML ซึ่งระบุความเชื่อของเราว่าลูกค้าควรมีการรักษาความปลอดภัยและการควบคุมข้อมูลในระดับสูงสุดที่จัดเก็บไว้ในระบบคลาวด์

ข้อมูลที่คุณส่งและรับ

คำถามที่คุณขอความช่วยเหลือจาก Gemini รวมถึงข้อมูลอินพุตหรือโค้ดที่คุณส่งให้ Gemini วิเคราะห์หรือทำให้เสร็จสมบูรณ์เรียกว่าพรอมต์ คำตอบหรือการเติมโค้ดที่คุณได้รับจาก Gemini เรียกว่าคำตอบ Gemini จะไม่ใช้พรอมต์ของคุณหรือคำตอบของ Gemini เป็นข้อมูลในการฝึกโมเดล

การเข้ารหัสพรอมต์

เมื่อคุณส่งพรอมต์ไปยัง Gemini ระบบจะเข้ารหัสข้อมูลของคุณขณะรับส่งเป็นอินพุตไปยังโมเดลพื้นฐานใน Gemini

ข้อมูลโปรแกรมที่สร้างจาก Gemini

Gemini ได้รับการฝึกด้วยโค้ดของ Google Cloud จากบุคคลที่หนึ่งและโค้ดของบุคคลที่สามที่เลือก คุณเป็นผู้รับผิดชอบด้านความปลอดภัย การทดสอบ และประสิทธิภาพของโค้ด รวมถึงการเติมโค้ด การสร้าง หรือการวิเคราะห์ที่ Gemini มอบให้คุณ

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Google จัดการพรอมต์ของคุณ

3. ตัวเลือกในการทดสอบพรอมต์

คุณมีตัวเลือกหลายอย่างในการทดสอบพรอมต์

Vertex AI Studio เป็นส่วนหนึ่งของแพลตฟอร์ม Vertex AI ของ Google Cloud ซึ่งออกแบบมาโดยเฉพาะเพื่อลดความซับซ้อนและเร่งการพัฒนาและการใช้โมเดล Generative AI

Google AI Studio เป็นเครื่องมือบนเว็บสำหรับสร้างต้นแบบและทดลองใช้การออกแบบพรอมต์และ Gemini API

เว็บแอป Gemini (gemini.google.com) เป็นเครื่องมือบนเว็บที่ออกแบบมาเพื่อช่วยให้คุณสำรวจและใช้ประโยชน์จากความสามารถของโมเดล AI จาก Gemini ของ Google

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

คลิก "เปิดโปรแกรมแก้ไข"

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'

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

สำหรับแล็บนี้ เราจะทำตามแนวทางปฏิบัติแนะนำและใช้ 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 ในเครื่องหรือตั้งค่า Buildpack หรือ Cloud Build กล่าวคือ คำสั่งเดียวที่อธิบายไว้ข้างต้นจะทำหน้าที่เหมือนกับคำสั่ง gcloud builds submit และ gcloud run deploy

หากคุณระบุ Dockerfile(ซึ่งเราได้ระบุไว้ในที่เก็บนี้) Cloud Build จะใช้ Dockerfile เพื่อสร้างอิมเมจคอนเทนเนอร์แทนการใช้ Buildpack เพื่อตรวจหาและสร้างอิมเมจคอนเทนเนอร์โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Buildpack ได้ที่เอกสารประกอบ

ตรวจสอบบันทึกของ Cloud Build ใน Console

ตรวจสอบอิมเมจ 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

คำตอบจะอยู่ในรูปแบบมาร์กดาวน์ แสดงในโหมดตัวอย่างเพื่อให้ง่ายต่อการอ่าน

bda86deaa1c449a8.png

7. แอปพลิเคชัน AI

ในแถบค้นหาของคอนโซล Google Cloud ให้พิมพ์และเปิด "AI Applications"

3f8540f5c946e199.png

สร้างแอป Conversational Agent

6f372cbe4935c507.png

เลือก "Build your own"

5305cb9a8320f468.png

พิมพ์ "Agent" สำหรับชื่อที่แสดง แล้วคลิก "สร้าง"

e0056adc2f8af87.png

ตั้งชื่อ Playbook

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

ทดสอบ Agent โดยใช้แชทจำลองทางด้านขวา

593dd4b8fc4c20d9.png

ติดตามการสนทนาที่คล้ายกันดังที่แสดงด้านล่าง

66a7569835ebc7e7.png

การกำหนดค่าเครื่องมือของตัวแทน

วางเมาส์เหนือไอคอนประแจทางด้านซ้าย เปิดเมนูเครื่องมือและสร้างเครื่องมือใหม่โดยทำดังนี้

ff635e2d135ea6d8.png

เลือก OpenAPI จากเมนูแบบเลื่อนลงประเภท

ตั้งชื่อเครื่องมือ

jira-project-status

คำอธิบายชุดข้อมูล:

Provides JIRA project status

สลับแท็บและตรวจสอบเอาต์พุตของคอนโซลสำหรับ URL ของบริการ Cloud Run คัดลอกค่า URL ของบริการ

ตั้งค่าสคีมา (YAML) - แทนที่ YOUR CLOUD RUN URL

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

กลับไปที่การกำหนดค่า Agent โดยเลือก "Playbook" จากเมนูด้านซ้าย แล้วอัปเดตวิธีการใช้เครื่องมือ

เพิ่มวิธีการใช้เครื่องมือใหม่ แล้วคลิก "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 กลับไปที่โปรแกรมจำลอง Agent แล้วรีเซ็ตการสนทนาที่มีอยู่ ทดสอบโฟลว์

ac9db60831b0f684.png

a9fbafd45139d434.png

ยินดีด้วย การผสานรวมเครื่องมือที่ลิงก์กับแอปพลิเคชัน(API) ที่ติดตั้งใช้งานใน Cloud Run จะช่วยให้คุณมอบอำนาจให้ Agent ดำเนินการและขยายความสามารถของ Agent ได้สำเร็จ

e8b113e0cc1b8ad6.png

ดูแนวทางปฏิบัติแนะนำสำหรับเอเจนต์สนทนา

ตรวจสอบการตั้งค่าเอเจนต์ที่ใช้ได้

  • การตั้งค่าการบันทึก - เปิดใช้ Cloud Logging
  • การผสานรวม Git - การผสานรวม Git ช่วยให้คุณพุชและดึงข้อมูลเอเจนต์จากที่เก็บ Git ได้
  • การเลือกโมเดล Generative AI
  • ขีดจำกัดของโทเค็น(อินพุตและเอาต์พุต)

f914db1d8a5d5447.png

ตรวจสอบการควบคุมโปรแกรมจำลอง Agent

d1c4712603d4a8a2.png

8. การผสานรวม Slack

เปิดเมนูการผสานรวม แล้วคลิก "Connect" ในการ์ด Slack

6fc0ad95c28cb6c8.png

e7ee0826668bfa2b.png

b29574fd2a0f9725.png

เปิดลิงก์และสร้างแอป Slack ใหม่ที่ https://api.slack.com/apps

cbf13edc1b284899.png

เลือกจาก "Manifest" ดังนี้

7721feb295693ea2.png

เลือกพื้นที่ทำงานเพื่อพัฒนาแอป

99a3d5b37cdf8f76.png

เปลี่ยนไปใช้ YAML แล้ววางไฟล์ Manifest นี้

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

ในส่วน "ข้อมูลพื้นฐาน / ข้อมูลเข้าสู่ระบบของแอป" ให้คัดลอก "รหัสลับการลงนาม" แล้วตั้งค่าในการผสานรวม Slack ของ Agent เป็นค่าสำหรับช่อง "โทเค็นการลงนาม"

31d62babb57e523d.png

bd9f7e3be3b9ea4e.png

เปิด "OAuth และสิทธิ์" แล้วคัดลอก "โทเค็น OAuth ของผู้ใช้บอท" และตั้งค่าในการผสานรวม Slack ของ Agent เป็นค่าสำหรับช่อง "โทเค็นเพื่อการเข้าถึง"

e74c7e003c31258.png

ตั้งค่าช่องที่ต้องกรอก แล้วคลิก "เริ่ม"

ค่า "โทเค็นเพื่อการเข้าถึง" ของตัวแทนคือ "โทเค็น OAuth ของผู้ใช้บอท" จาก Slack

ค่า "โทเค็นการลงนาม" ของ Agent คือ "ข้อมูลลับในการลงนาม" จาก Slack

8ea9f6856efa62cf.png

7e71e37750fd063a.png

คัดลอก "URL ของเว็บฮุค" แล้วกลับไปที่การกำหนดค่าแอป Slack

เปิดส่วน "การติดตามกิจกรรม" แล้ววาง URL

a1e7271934c714d9.png

บันทึกการเปลี่ยนแปลง

e6d9b43b3787b6e7.png

เปิด "Slack" แล้วเพิ่ม Agent โดยพิมพ์ "@Agent"

เช่น การเพิ่มแอปที่มีชื่อว่า "@CX"

72313066707f947b.png

63becbd80824f8d8.png

c98e193062b096f0.png

ขอสรุปโปรเจ็กต์ JIRA จากตัวแทน

6edfdb74760548ad.png

ยินดีด้วย ผสานรวม Agent เข้ากับพื้นที่ทำงาน Slack เรียบร้อยแล้ว

703a3bf5754680fa.png

9. ถามและตอบเกี่ยวกับเอกสาร PDF

ส่วนนี้อธิบายวิธีสร้างที่เก็บข้อมูลโดยใช้เอกสาร PDF และลิงก์กับ Agent เพื่อเปิดใช้ฟังก์ชัน Q&A ตามเนื้อหาของเอกสาร

สร้าง Bucket ของ Cloud Storage

เปิด Cloud Shell: https://shell.cloud.google.com/

ตั้งชื่อที่เก็บข้อมูลโดยใช้ตัวเลข 5 หลักสุดท้ายของโปรเจ็กต์ GCP ตัวอย่าง: pdf-docs-3dw21

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

สร้าง Bucket และอัปโหลดเอกสาร 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 Console แล้วเปิด "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

แล้วเลือก Bucket/โฟลเดอร์ GCS

42dec238c1d0ac2f.png

เลือก "us" สำหรับตำแหน่งที่จัดเก็บข้อมูล

สำหรับประเภทชื่อที่เก็บข้อมูล ให้ใช้ "pdf-docs"

เลือก "Digital parser" จากเมนูแบบเลื่อนลง

เปิดใช้การแบ่งกลุ่มขั้นสูง

เปิดใช้ส่วนหัวระดับบนในกลุ่ม

โปรดคลิกที่ "Create"

1a5222b86ee6c58e.png

3119b5fec43c9294.png

คลิกที่ที่เก็บข้อมูล แล้วตรวจสอบเอกสาร กิจกรรม และการกำหนดค่าการประมวลผล

872d9142615e90c9.png

การนำเข้าจะใช้เวลาประมาณ 5-10 นาที

d9739a4af2244e03.png

ตัวเลือกการแยกวิเคราะห์และการแบ่งกลุ่ม

คุณควบคุมการแยกวิเคราะห์เนื้อหาได้ด้วยวิธีต่อไปนี้

  • ตัวแยกวิเคราะห์ดิจิทัล ตัวแยกวิเคราะห์ดิจิทัลจะเปิดอยู่โดยค่าเริ่มต้นสำหรับไฟล์ทุกประเภท เว้นแต่จะมีการระบุตัวแยกวิเคราะห์ประเภทอื่น ตัวแยกวิเคราะห์ดิจิทัลจะประมวลผลเอกสารที่ส่งผ่านข้อมูลหากไม่ได้ระบุตัวแยกวิเคราะห์เริ่มต้นอื่นสำหรับที่เก็บข้อมูล หรือหากตัวแยกวิเคราะห์ที่ระบุไม่รองรับประเภทไฟล์ของเอกสารที่ส่งผ่านข้อมูล
  • การแยกวิเคราะห์ OCR สำหรับ PDF เวอร์ชันตัวอย่างแบบสาธารณะ หากวางแผนที่จะอัปโหลด PDF ที่สแกนหรือ PDF ที่มีข้อความอยู่ภายในรูปภาพ คุณสามารถเปิดโปรแกรมแยกวิเคราะห์ OCR เพื่อปรับปรุงการจัดทำดัชนี PDF ดูเกี่ยวกับการแยกวิเคราะห์ OCR สำหรับ PDF
  • ตัวแยกวิเคราะห์เลย์เอาต์ เปิดเครื่องมือแยกวิเคราะห์เลย์เอาต์สำหรับไฟล์ HTML, PDF หรือ DOCX หากคุณวางแผนที่จะใช้ Vertex AI Search สำหรับ RAG ดูข้อมูลเกี่ยวกับตัวแยกวิเคราะห์นี้และวิธีเปิดใช้ได้ที่แบ่งเอกสารสำหรับ RAG

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแยกวิเคราะห์และการแบ่งเอกสารออกเป็นส่วนๆ

การกำหนดค่าเครื่องมือ

กลับไปที่หน้าจอการกำหนดค่าเครื่องมือของ Agent แล้วรีเฟรชที่เก็บข้อมูลที่ใช้ได้

เลือกที่เก็บข้อมูลที่คุณเพิ่งสร้าง แล้วคลิก "Confirm"

2922f7d9bdb7b2bc.png

กำหนดค่าการเชื่อมต่อแหล่งข้อมูล

พิมพ์ "Google Cloud" สำหรับชื่อบริษัท

การตั้งค่าเพย์โหลด - ตรวจสอบ "Include snippets in Conversational Messenger response payload" ตั้งค่าเป็น 5

คลิก "บันทึก"

484e99caa7d1bc07.png

การกำหนดค่าคำสั่งของ Agent

กลับไปที่การกำหนดค่า Agent

เพิ่มวิธีการใหม่

- 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

ยินดีด้วย ตอนนี้ Agent สามารถให้คำตอบที่อิงตามเอกสาร PDF ได้แล้ว

e11d020a9cfa36d1.png

10. ตัวแทนที่สร้างไว้ล่วงหน้า

จากนั้นคุณจะสำรวจเอเจนต์ที่สร้างไว้ล่วงหน้าจากเมนูทางด้านซ้าย

de49672bbb8112fd.png

เลือกเอเจนต์ตัวใดตัวหนึ่งแล้วติดตั้งใช้งาน ดูการตั้งค่า คำสั่ง และเครื่องมือของ Agent

1e00ed8ef4887efb.png

11. ยินดีด้วย

ยินดีด้วย คุณทำแล็บเสร็จแล้ว

สิ่งที่เราได้พูดถึงไปแล้ว

  • วิธีสร้างและทำให้ตัวแทนการสนทนาใช้งานได้
  • วิธีเพิ่มเครื่องมือสำหรับ Agent ที่ขับเคลื่อนโดยแอปพลิเคชัน Cloud Run
  • วิธีผสานรวม Agent เข้ากับพื้นที่ทำงาน Slack
  • วิธีกำหนดค่าที่เก็บข้อมูลสำหรับคำถามและคำตอบในเอกสาร PDF

ขั้นตอนต่อไปที่ทำได้

ล้างข้อมูล

โปรดลบโปรเจ็กต์ที่มีทรัพยากรหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้

การลบโปรเจ็กต์

วิธีที่ง่ายที่สุดในการยกเลิกการเรียกเก็บเงินคือการลบโปรเจ็กต์ที่คุณสร้างขึ้นสำหรับบทแนะนำ

©2024 Google LLC สงวนลิขสิทธิ์ Google และโลโก้ของ Google เป็นเครื่องหมายการค้าของ Google LLC ชื่อบริษัทและผลิตภัณฑ์อื่นๆ ทั้งหมดอาจเป็นเครื่องหมายการค้าของบริษัทที่เป็นเจ้าของ