AlloyDB と Vertex AI Agent Builder を使用して特許検索アシスタントを構築する - パート 2

1. 概要

特許研究は膨大で複雑です。数え切れないほどの技術的抽象化から関連するイノベーションを見つけるのは、大変な作業です。従来のキーワード検索は不正確で時間がかかることが多く、概要は長くて技術的なため、核となるアイデアをすばやく把握するのは困難です。これは、研究者が重要な特許を見逃したり、関連性のない結果に時間を浪費したりする結果につながります。

この革命の秘訣はベクトル検索にあります。ベクトル検索は、単純なキーワード マッチングに依存するのではなく、テキストを数値表現(エンべディング)に変換します。これにより、使用された特定の単語だけでなく、クエリの意味に基づいて検索を行うことができます。文学の検索の世界では、これは画期的です。「装着可能な心拍数モニター」の特許を探すドキュメント内で完全に一致するフレーズが使用されていなくてもかまいません。

課題: 現代の文献検索では、個人の好みに合わせたインテリジェントなレコメンデーションが即座に提供されることが期待されています。従来の検索方法では、多くの場合、このレベルのパーソナライゼーションは提供できません。

ソリューション: この課題に正面から取り組む、Google の知識ベースのチャット アプリケーションです。特許データセットから得られた豊富なナレッジベースを活用して、顧客の意図を理解し、インテリジェントに対応し、非常に関連性の高い結果を提供します。

作成するアプリの概要

このラボ(パート 2)では、次のことを行います。

  1. Vertex AI Agent Builder エージェントを構築する
  2. AlloyDB ツールとエージェントを統合する

要件

  • ブラウザ(ChromeFirefox など)
  • 課金を有効にした Google Cloud プロジェクト

2. アーキテクチャ

データフロー: システム内でデータがどのように移動するかを詳しく見てみましょう。

取り込み:

特許データは AlloyDB に読み込まれます。

分析エンジン:

分析エンジンとして AlloyDB を使用して、以下のことを行います。

  1. コンテキスト抽出: エンジンは AlloyDB 内に保存されたデータを分析して、特許データセットを把握します。
  2. エンベディングの作成: ユーザーのクエリと AlloyDB に保存された情報の両方に対してエンベディング(テキストの数学的表現)が生成されます。
  3. ベクトル検索: エンジンが類似検索を実行し、クエリのエンベディングを特許要約のエンベディングと比較します。これにより、最も関連性の高い「最近傍」がフィルタできます

回答の生成:

検証済みのレスポンスは JSON 配列に構造化され、エンジン全体が、Agent Builder から呼び出されるサーバーレスの Cloud Run 関数にパッケージ化されます。

上記の手順は、ラボのパート 1 ですでに説明されています。

スマート特許検索アシスタントを強化する知識駆動型分析エンジンの構築に関する技術的な詳細についてもお話ししました。次は、Agent Builder のマジックを活用して、このエンジンを会話インターフェースで活用する方法を見ていきましょう。パート 2 を開始する前に、エンドポイント URL が準備されていることを確認してください。次のステップは、このラボで取り上げます。

会話でのやり取り:

Agent Builder は、自然言語形式でレスポンスをユーザーに提示し、やり取りを容易にします。

3. 始める前に

プロジェクトを作成する

  1. Google Cloud コンソールのプロジェクト選択ページで、Google Cloud プロジェクトを選択または作成します。
  2. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
  3. Cloud Shell を使用します。Cloud Shell は Google Cloud で動作するコマンドライン環境で、bq がプリロードされています。Google Cloud コンソールの上部にある [Cloud Shell をアクティブにする] をクリックします。

[Cloud Shell をアクティブにする] ボタンの画像

  1. Cloud Shell に接続したら、次のコマンドを使用して、すでに認証されていることと、プロジェクトが自分のプロジェクト ID に設定されていることを確認します。
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 を使用して、パート 1 で構築した Cloud Functions の関数のエンドポイントにシームレスに接続します。これにより、特許検索アシスタントが特許ナレッジベースにアクセスし、ユーザーのクエリにインテリジェントに応答できるようになります。

パート 1 で作成した Java Cloud Run 関数 が、書式なしテキストではなく JSON 配列を返すことを確認します。

エージェントの作成

アパレル商品に関するユーザーの質問に答えるため、この新しいエージェントを作成してみましょう。

  1. まず、Agent Builder プラットフォームにログインします。API を有効にするように求められたら、[続行] をクリックして API をアクティブにします。
  2. [CREATE APP] をクリックします。エージェントにわかりやすい名前を付けます(例:「特許検索アシスタント」)を入力します。
  3. [App Type] で [Agent] を選択します。

462bb48664e9a14e.png

  1. をタップします。エージェントにわかりやすい名前を付けます(「特許検索アシスタント」など)リージョンを 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

Enter Tool Name(ツール名を入力): Patent Search Tool

タイプ: 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 仕様をコピーし、山かっこで囲まれた URL プレースホルダを 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.

他の設定はデフォルト値のままにして、[保存] をクリックします。

  1. 「ツール」を追加したいので、この時点でエージェントに戻ります。エージェントの「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. エージェントをテストする

右側のペインに [Preview Agent] セクションが表示され、エージェントをテストできます。

以下のスクリーンショットからわかるように、私はユーザーとして挨拶し、チャットを開始し、「フィットネス トラッカーのアイデアと一致する特許」のリクエストを行いました。

e4ffaa48b5c1f012.png

JSON レスポンスは次のようになります。

b0ee0af57ba63943.png

これは、AlloyDB の類似度検索を処理する Cloud Functions の関数からの未加工の JSON 結果です。これで、これでエージェントの対応は完了です。

6. 導入と統合

エージェントに問題がなければ、Agent Builder の統合を使用して、さまざまなチャネルに簡単にデプロイできます。ウェブサイトに埋め込んだり、一般的なメッセージング プラットフォームと統合したり、専用のモバイルアプリを作成したりすることができます。また、Agent Builder API をウェブ クライアント アプリケーションで直接使用することもできます。これについては、こちらのブログで説明しています。

7. クリーンアップ

この投稿で使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. Google Cloud コンソールで、[管理 ] に移動します。
  2. リソースのページです。
  3. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  4. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

8. 完了

これで、カスタムビルドの分析エンジンの機能と Agent Builder の直感的なインターフェースを統合することで、文献検索をアクセスしやすく、効率的で、真の意味で意味のある検索を実現するインテリジェントな文献検索アシスタントを作成しました。AlloyDBVertex AIベクトル検索の機能を組み合わせることで、Google はコンテキスト検索とベクトル検索をアクセス可能で、効率的で、真の意味にドリブンかつエージェント型にするために、大きな飛躍を遂げました。