見出し画像

LangChain の Googleカスタム検索 連携を試す

「LangChain」に「Googleカスタム検索」連携が追加されたので、試してみました。

前回

1. Googleカスタム検索

「Googleカスタム検索」は、WebサイトやアプリケーションでGoogle検索の機能を利用することができます。

LangChainのデフォルトの検索API「SerpAPI」との料金比較は、次のとおりです。

◎ SerpAPI
無料版 : 1ヶ月に100クエリ
有料版 : 5000クエリで50ドル

◎ Googleカスタム検索
無料版 : 1日に100クエリ
有料版 : 1000クエリで5ドル

2. 検索エンジンIDとAPIキーの取得

Googleカスタム検索のサイトで、新しい検索エンジン(の設定)を作成し、検索エンジンIDとAPIキーを取得します。

(1) Googleカスタム検索のサイトを開き、「使ってみる」を押す。
(2) 新しい検索エンジンを作成。
検索エンジンの名前とウェブ全体を検索を指定します。

(3) 「基本」の「検索エンジンID」をコピー。

(4) 「プログラマティックなアクセス」「Custom Search JSON API」の「開始する」を押す。

(5) 「プログラム可能検索エンジン (無料版) ユーザー」の「キーの取得」を押し、「APIキー」をコピー。

3. Colabでの実行

Google Colabでの実行手順は、次のとおりです。

(1) パッケージのインストール。

# パッケージのインストール
!pip install langchain
!pip install openai

(2) 環境変数の準備。
自分の検索エンジンIDとAPIキーを指定します。

# 環境変数の準備
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIキー>"
os.environ["GOOGLE_CSE_ID"] = "<Googleカスタム検索_検索エンジンID>"
os.environ["GOOGLE_API_KEY"] = "<Googleカスタム検索_APIキー>"

(3) ツールの準備。

from langchain.agents import ZeroShotAgent, Tool, AgentExecutor, load_tools
from langchain import OpenAI, SerpAPIWrapper, LLMChain

# ツールの準備
tools = load_tools(["google-search"], llm=OpenAI())

(4) プロンプトテンプレートとエージェントの準備。
デフォルトだと英語の応答になってしまうことがあるため、カスタムエージェントにしてます。

# プロンプトテンプレートの準備
prefix = """次の質問にできる限り答えてください。次のツールにアクセスできます:"""
suffix = """始めましょう! 最終的な答えを出すときは、一人称は"ぼく"、語尾には"なのだ"を使用してください

Question: {input}
{agent_scratchpad}"""

prompt = ZeroShotAgent.create_prompt(
    tools,
    prefix=prefix,
    suffix=suffix,
    input_variables=["input", "agent_scratchpad"]
)

# エージェントの準備
llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt)
agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools)
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)

(5) 会話の実行。

agent_executor.run("ぼっち・ざ・ろっくの作者の名前は?")
> Entering new AgentExecutor chain...
Thought: この質問に答えるために、Google Searchを使う必要がある
Action: Google Search
Action Input: "ぼっち・ざ・ろっくの作者"
Observation: まんがタイムきららMAXで『ぼっち・ざ・ろっく!』載せてもらってます ⑤巻発売中。アニメ202210~12月放送してました。バンド大好き!通知切ってるのでリプライ ... 『ぼっち・ざ・ろっく!』(BOCCHI THE ROCK!)は、はまじあきによる日本の4コマ漫画。『まんがタイムきららMAX』(芳文社)にて、20182月号から4月号までゲスト連載 ... Nov 29, 2022 ... その筆頭といえるのが、アニメが今期最大級の注目作となっている『ぼっち・ざ・ろっく』の作者、はまじあきであろう。もともとはまじは「ちゃお」で ... Feb 27, 2019 ... ぼっち×女子高生×バンドという異色の組み合わせが話題の『ぼっち・ざ・ろっく!』。作者・はまじあき先生の、ロックすぎるインタビューをお届けし ... 8 days ago ... そして、現在放送中の『ぼっち・ざ・ろっく!』。原作者のはまじあきが、バンド活動に興味を持ち、調べ上げた上で原作を手がけたこともあり、コメディ ... 1cmの原作改変がヤバい?最終回目前で作者遂に情緒不安定..『ぼっち・ざ・ろっく!』アニメのヤバさを原作と比較 ... 4 days ago ... スタッフ ; 原作:はまじあき ; 監督:斎藤圭一郎 ; シリーズ構成・脚本:吉田恵里香 ; キャラクターデザイン・総作画監督:けろりら ; ライブディレクター: ... 7 days ago ... バンドって結構複雑で一筋縄では行かない」という感覚を教えてくれるアニメ『ぼっち・ざ・ろっく!』が最終回を迎える。本作は、いつかバンド活動する ... TVアニメ「ぼっち・ざ・ろっく!」エンディング映像/「なにが悪い」 · ED映像のキャラ(喜多郁代)が中指を立てていると話題に · 喜多郁代中指ファンアートが生まれてしまう ... Feb 25, 2020 ... 「ぼっち・ざ・ろっく!」の無料試し読みです! 【あらすじ】 「ぼっちちゃん」こと後藤ひとりは、ギターを愛する孤独な少女。 ... 作者:はまじあき.
Thought: はまじあきが『ぼっち・ざ・ろっく!』の作者であることがわかった
Final Answer: はまじあきなのだ。
> Finished AgentExecutor chain.
'はまじあきなのだ。

次回



この記事が気に入ったらサポートをしてみませんか?