สร้างผู้ช่วย Search สิทธิบัตรด้วย AlloyDB และ Vertex AI Agent Builder - ตอนที่ 2

1. ภาพรวม

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

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

ความท้าทาย: การค้นหาวรรณกรรมสมัยใหม่ควรให้คำตอบได้ทันทีและคำแนะนำที่ชาญฉลาด ซึ่งสอดคล้องกับความชอบของแต่ละคน วิธีการค้นหาแบบดั้งเดิมมักจะไม่ตรงตามการปรับเปลี่ยนให้เหมาะกับผู้ใช้ในระดับนี้

โซลูชัน: แอปพลิเคชันแชทที่ให้ความรู้กับเราจะจัดการความท้าทายนี้โดยตรง ใช้ประโยชน์จากฐานความรู้ที่หลากหลายซึ่งได้มาจากชุดข้อมูลสิทธิบัตรเพื่อทำความเข้าใจความตั้งใจของลูกค้า ตอบสนองอย่างชาญฉลาด และให้ผลลัพธ์ที่เกี่ยวข้องอย่างมาก

สิ่งที่คุณจะสร้าง

ในฐานะส่วนหนึ่งของห้องทดลองนี้ (ส่วนที่ 2) คุณจะทำสิ่งต่อไปนี้ได้

  1. สร้าง Agent ของ Vertex AI Agent Builder
  2. ผสานรวมเครื่องมือ AlloyDB กับ Agent

ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

2. สถาปัตยกรรม

โฟลว์ข้อมูล: มาดูรายละเอียดการเคลื่อนย้ายข้อมูลผ่านระบบของเรากัน

การส่งผ่านข้อมูล:

ระบบจะโหลดข้อมูลสิทธิบัตรลงใน AlloyDB

เครื่องมือ Analytics

เราจะใช้ AlloyDB เป็นเครื่องมือวิเคราะห์เพื่อดำเนินการต่อไปนี้

  1. การดึงข้อมูลบริบท: เครื่องมือจะวิเคราะห์ข้อมูลที่จัดเก็บไว้ใน AlloyDB เพื่อทำความเข้าใจชุดข้อมูลสิทธิบัตร
  2. การฝังการสร้าง: การฝัง (ข้อความเชิงคณิตศาสตร์) จะสร้างขึ้นสำหรับทั้งข้อความค้นหาของผู้ใช้และข้อมูลที่เก็บไว้ใน AlloyDB
  3. การค้นหาเวกเตอร์: เครื่องมือค้นหาจะดำเนินการค้นหาความคล้ายคลึงกัน เปรียบเทียบการค้นหาที่ถูกฝังกับการฝังบทคัดย่อสิทธิบัตร แอตทริบิวต์นี้จะระบุ "เพื่อนบ้านที่ใกล้ที่สุด" ที่เกี่ยวข้องมากที่สุด บริบทที่ผู้ใช้กำลังค้นหา

การสร้างคำตอบ:

การตอบกลับที่ตรวจสอบแล้วจะมีโครงสร้างเป็นอาร์เรย์ JSON และเครื่องมือค้นหาทั้งหมดจะได้รับแพ็กเกจไว้ในฟังก์ชัน Cloud Run แบบ Serverless ที่เรียกใช้จาก Agent Builder

ขั้นตอนเหล่านี้มีอธิบายอยู่ในส่วนที่ 1 ของห้องทดลองแล้ว

เราได้กล่าวถึงรายละเอียดทางเทคนิคของการสร้างเครื่องมือวิเคราะห์ข้อมูลที่ขับเคลื่อนด้วยความรู้ ซึ่งขับเคลื่อนผู้ช่วยค้นหาสิทธิบัตรอัจฉริยะของเรา มาดูกันว่าเราจะใช้ประโยชน์จากเวทมนตร์ของ Agent Builder เพื่อทำให้กลไกนี้เป็นจริงในอินเทอร์เฟซแบบสนทนาได้อย่างไร โปรดเตรียม URL ปลายทางไว้ให้พร้อมก่อนเริ่มส่วนที่ 2 ขั้นตอนถัดไปคือสิ่งที่เราจะพูดถึงในห้องทดลองนี้

การโต้ตอบแบบสนทนา:

Agent Builder แสดงคำตอบให้แก่ผู้ใช้ในรูปแบบภาษาธรรมชาติ ซึ่งอำนวยความสะดวกในการโต้ตอบกลับไปกลับมา

3. ก่อนเริ่มต้น

สร้างโปรเจ็กต์

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าการเรียกเก็บเงินในโปรเจ็กต์เปิดอยู่หรือไม่
  3. คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมแบบบรรทัดคำสั่งที่ทำงานใน Google Cloud ที่มาพร้อมกับ bq ล่วงหน้า คลิก "เปิดใช้งาน Cloud Shell" ที่ด้านบนของคอนโซล Google Cloud

รูปภาพปุ่มเปิดใช้งาน 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 ของห้องทดลองแล้ว เพื่อดำเนินการให้เสร็จสมบูรณ์

4. การสร้างตัวแทน

ขอแนะนำ Agent Builder

Agent Builder เป็นเครื่องมือที่ทรงพลังและใช้โค้ดน้อย ซึ่งช่วยให้เราสร้างตัวแทนแบบสนทนาได้อย่างรวดเร็วและมีประสิทธิภาพ ปรับปรุงประสิทธิภาพของกระบวนการออกแบบโฟลว์กล่องโต้ตอบ การผสานรวมฐานความรู้ และการเชื่อมต่อกับ API ภายนอก ในกรณีของเรา เราจะใช้ Agent Builder เพื่อเชื่อมต่อกับปลายทาง Cloud Function อย่างราบรื่นตามที่เราสร้างไว้ในส่วนที่ 1 ซึ่งช่วยให้ผู้ช่วยค้นหาสิทธิบัตรของเราเข้าถึงฐานความรู้ด้านสิทธิบัตรของเราและตอบคำค้นหาของผู้ใช้ได้อย่างชาญฉลาด

ตรวจสอบว่าคุณมีฟังก์ชัน Java Cloud Run ที่สร้างในส่วนที่ 1 ซึ่งแสดงผลเป็น ARRAY ของ JSON แทนข้อความธรรมดา

การสร้างตัวแทน

เรามาเริ่มต้นด้วยการสร้างตัวแทนใหม่นี้ในการตอบคำถามของผู้ใช้เรื่องผลิตภัณฑ์เครื่องแต่งกายกัน

  1. เริ่มด้วยการเข้าสู่ระบบแพลตฟอร์ม Agent Builder หากมีข้อความแจ้งให้เปิดใช้งาน API ให้คลิก "ดำเนินการต่อและเปิดใช้งาน API"
  2. คลิก "สร้างแอป" และตั้งชื่อที่สื่อความหมายให้ตัวแทน (เช่น "ผู้ช่วยค้นหาสิทธิบัตร")
  3. คลิกประเภทแอป "ตัวแทน"

462bb48664e9a14e

  1. ที่ใช้เวลาเพียง 2 นาที ตั้งชื่อที่สื่อความหมายให้ตัวแทน เช่น "ผู้ช่วยค้นหาสิทธิบัตร" แล้วตั้งค่าภูมิภาคเป็น us-central1
  2. ป้อนรายละเอียดสำหรับตัวแทน ดังนี้
  3. เปลี่ยนชื่อตัวแทนเป็น "Patent Search Agent"
  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. จากนั้นคลิก "เครื่องมือ" จากเมนูการนำทาง แล้วคลิก "สร้าง"

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 ดังนี้

ส่วนนี้เป็นส่วนที่เราใช้ปลายทางแบ็กเอนด์เพื่อขับเคลื่อน Agent คัดลอกข้อมูลจำเพาะของ OpenAPI ด้านล่างและแทนที่ตัวยึดตำแหน่ง 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.

ปล่อยการกำหนดค่าอื่นๆ ไว้เป็นค่าเริ่มต้น แล้วคลิก "บันทึก"

  1. ให้กลับไปที่ Agent ในตอนนี้เนื่องจากเราต้องการเพิ่ม "เครื่องมือ" เป็น "คำสั่ง" ของ Agent เพิ่มด้านล่างลงในตัวยึดตำแหน่งของคำแนะนำ (อย่าลืมว่าการเยื้องมีความสำคัญในการกำหนดขั้นตอน)
- 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. ทดสอบตัวแทน

ในแผงด้านขวา คุณควรเห็นส่วน "แสดงตัวอย่างตัวแทน" ซึ่งช่วยให้คุณทดสอบตัวแทนของคุณได้

จากที่เห็นในภาพหน้าจอด้านล่าง เราได้ทักทายในฐานะผู้ใช้และเริ่มแชทด้วยคําขอ "สิทธิบัตรที่ตรงกับแนวคิดเครื่องติดตามการออกกำลังกายใดๆ"

e4ffaa48b5c1f012.png

นี่คือการตอบสนอง JSON:

b0ee0af57ba63943.png

นี่เป็นผลลัพธ์ JSON ดิบจาก Cloud Function ที่ประมวลผลการค้นหาความคล้ายคลึงกันของ AlloyDB เท่านี้ก็เรียบร้อย ตอนนี้เราพร้อมพูดคุยกับตัวแทนแล้ว

6. การติดตั้งใช้งานและการผสานรวม

เมื่อพอใจกับตัวแทนแล้ว คุณก็ทำให้ตัวแทนใช้งานได้ในหลากหลายช่องทางได้อย่างง่ายดายโดยใช้การผสานรวมของ Agent Builder ไม่ว่าจะเป็นการฝังในเว็บไซต์ ผสานรวมกับแพลตฟอร์มการรับส่งข้อความยอดนิยม หรือแม้แต่สร้างแอปสำหรับอุปกรณ์เคลื่อนที่โดยเฉพาะ นอกจากนี้ เรายังใช้ Agent Builder API ได้โดยตรงในแอปพลิเคชันเว็บไคลเอ็นต์ของเรา ซึ่งเราได้อธิบายไว้ในบล็อกนี้

7. ล้างข้อมูล

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

  1. ในคอนโซล Google Cloud ให้ไปที่จัดการ
  2. แหล่งข้อมูล
  3. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
  4. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเครื่องเพื่อลบโปรเจ็กต์

8. ขอแสดงความยินดี

ยินดีด้วย ด้วยการผสานรวมประสิทธิภาพของเครื่องมือการวิเคราะห์ที่สร้างแบบกำหนดเองของเราเข้ากับอินเทอร์เฟซที่ใช้งานง่ายของ Agent Builder เราได้สร้างผู้ช่วยค้นหาวรรณกรรมที่ชาญฉลาดขึ้นเพื่อให้การค้นหาวรรณกรรมสามารถเข้าถึง มีประสิทธิภาพ และมีความหมายอย่างแท้จริง เมื่อรวมความสามารถของ AlloyDB, Vertex AI และ Vector Search เข้าด้วยกันแล้ว เราได้ก้าวกระโดดครั้งยิ่งใหญ่ในการทำให้การค้นหาตามบริบทและการค้นหาเวกเตอร์เข้าถึงได้ มีประสิทธิภาพ ขับเคลื่อนความหมาย และสมจริงอย่างแท้จริง