程式碼研究室簡介
1. 總覽
專利研究是龐大而複雜的。要逐一篩選無數技術抽象化,以找出相關創新,是一項艱鉅的任務。傳統的關鍵字搜尋通常不準確且耗時。摘要內容冗長且技術性,讓人難以快速掌握核心概念。這可能會導致研究人員錯失重要專利,或是耗費時間研究不相關的結果。
這項創新的秘訣在於 Vector Search。向量搜尋不依賴簡單的關鍵字比對,而是將文字轉換為數值表示法 (嵌入)。這讓我們可以根據查詢的意義進行搜尋,而不是只根據使用的特定字詞進行搜尋。在文獻搜尋領域,這項功能可說是改變遊戲規則。舉例來說,即使文件中未使用「可穿戴式心率監測器」這個詞組,您還是可以找到相關專利。
挑戰:現代的學術搜尋服務應能提供即時答案,並根據使用者偏好提供智慧推薦內容。傳統的搜尋方法通常無法提供這樣的個人化功能。
解決方案:我們知識導向的即時通訊應用程式可協助您克服這項挑戰。這項服務會運用從專利資料集衍生的豐富知識庫,瞭解客戶意圖、做出聰明回應,並提供極具關聯性的結果。
建構項目
在這個研究室 (第 2 單元) 中,您將完成以下工作:
- 建構 Vertex AI Agent Builder 服務專員
- 將 AlloyDB 工具與代理程式整合
需求條件
2. 架構
資料流:讓我們進一步瞭解資料在系統中的移動歷程:
內容擷取:
專利資料會載入至 AlloyDB。
數據分析引擎:
我們會使用 AlloyDB 做為數據分析引擎執行下列作業:
- 情境擷取:引擎會分析 AlloyDB 中儲存的資料,藉此瞭解專利資料集。
- 嵌入建立:系統會為使用者的查詢和 AlloyDB 中儲存的資訊產生嵌入項目 (文字的數學表示法)。
- 向量搜尋:引擎會執行相似度搜尋,將查詢嵌入與專利摘要的嵌入進行比較。這項功能會找出與使用者搜尋內容最相關的「最近鄰」內容。
產生回應:
通過驗證的回應會結構化成 JSON 陣列,且整個引擎會封裝至透過 Agent Builder 叫用的無伺服器 Cloud Run 函式。
上述步驟已在本研究室的第 1 部分 中介紹。
我們討論了建立知識導向分析引擎的技術細節,這項引擎可為智慧專利搜尋助理提供支援。現在,讓我們一起看看我們如何運用 Agent Builder 的神奇功能,透過對話式介面生動呈現這個引擎。請先準備好端點網址,再開始進行第 2 部分。本實驗室的下一個步驟會說明以下內容:
對話互動:
Agent Builder 會以自然語言格式向使用者顯示回應,讓使用者能夠輕鬆往返對話。
3. 事前準備
建立專案
- 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用帳單功能。
- 您將使用 Cloud Shell,這是在 Google Cloud 中執行的指令列環境,已預先載入 bq。按一下 Google Cloud 控制台頂端的「啟用 Cloud Shell」。
- 連線至 Cloud Shell 後,請使用下列指令來檢查是否已通過驗證,以及專案是否已設為專案 ID:
gcloud auth list
- 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
- 如果尚未設定專案,請使用下列指令進行設定:
gcloud config set project <YOUR_PROJECT_ID>
- 啟用必要的 API。gcloud 指令的替代方案,則是透過搜尋每項產品或使用這個連結,透過控制台執行。
如果在導入過程中找不到任何 API,隨時可以啟用。
如要查看 gcloud 指令和使用方式,請參閱說明文件。
重要注意事項:此外,請務必完成研究室第 1 部分,才能完成本節內容。
4. 建立代理程式
隆重推出 Agent Builder
Agent Builder 是一款功能強大的少量程式碼工具,可讓我們快速且有效率地建立對話式服務專員。這可以簡化設計對話流程、整合知識庫及連線至外部 API 的程序。在本範例中,我們將使用 Agent Builder,與我們在第 1 部分建立的 Cloud Function 端點流暢連結,讓專利搜尋助理存取專利知識庫,並以智慧方式回應使用者查詢。
確認您已在第 1 部分中建立的 Java Cloud Run 函式 傳回 JSON ARRAY,而非純文字。
建構代理程式
我們現在就開始建立這個新服務專員,以便回答使用者有關服飾產品的問題。
- 首先登入 Agent Builder 平台。如果系統提示您啟用 API,請按一下「繼續」並啟用 API。
- 按一下 [建立應用程式]並為代理程式取個清楚易懂的名稱 (例如「專利搜尋助理」)。
- 按一下「應用程式類型」的「Agent」。
- 為服務帳戶命名,例如「Patent Search Assistant」,並將地區設為 us-central1
- 輸入代理程式的詳細資料:
- 將代理人名稱變更為「專利搜尋代理程式」。
- 新增下列「Goal」:
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.
- 請儲存現在的代碼,暫時將說明留白。
- 接著按一下導覽選單中的「工具」,然後點選「建立」
輸入工具名稱:專利搜尋工具
類型: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.
輸入結構定義 - 以 YAML 格式輸入 OpenAPI:
這就是我們使用後端端點為代理程式提供動力的部分。複製下列 OpenAPI 規格,並將網址預留位置 (以尖括號包圍) 替換為 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.
其餘設定則保留預設值,然後點選「儲存」。
- 我們想要新增「工具」,因此請返回代理程式。設為代理程式的「操作說明」請在「instructions」預留位置中加入以下內容 (請注意,縮排對於定義流程非常重要):
- 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. 測試代理程式
右側窗格中會顯示「預覽」專員區段,可用於測試您的服務項目。
如下方螢幕截圖所示,我以使用者的身分向對方問好,並開始即時通訊,要求對方「找出任何健身追蹤器的專利相符項目」:
以下是 JSON 回應:
這是 Cloud 函式處理 AlloyDB 相似搜尋結果的原始 JSON 結果。大功告成!服務專員現在已完成所有設定。
8. 恭喜
恭喜!我們將自訂分析引擎的強大功能與 Agent Builder 的直覺介面整合,打造出智慧型文獻搜尋助理,讓使用者能以有意義的方式,輕鬆、有效率地進行文獻搜尋。結合 AlloyDB、Vertex AI 和 Vector Search 的功能,我們已大幅提升內容和向量搜尋的易用性、效率、意義導向和代理功能!