メインコンテンツへスキップ
見出し画像

LangChain の会話エージェント conversational-react-description を試す

    「LangChain」の会話エージェント「conversational-react-description」を試したのでまとめました。

    前回

    1. conversational-react-description

    「conversational-react-description」は、会話用に最適化されたエージェントです。エージェントがユーザーとチャットしながら、必要な時にツールの機能を呼び出すことができます。

    2. Colabでの実行

    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キー>"

    検索エンジンIDとAPIキーについては、以下を参照。

    (3) パッケージのインポート。

    from langchain.agents import Tool
    from langchain.chains.conversation.memory import ConversationBufferMemory
    from langchain import OpenAI
    from langchain.utilities import GoogleSearchAPIWrapper
    from langchain.agents import initialize_agent

    (4) ツールの準備。

    # ツールの準備
    search = GoogleSearchAPIWrapper()
    tools = [
        Tool(
            name = "Current Search",
            func=search.run,
            description="アニメや漫画の質問に答える必要がある場合に役立ちます"
        ),
    ]

    (5) メモリの準備。

    # メモリの準備
    memory = ConversationBufferMemory(memory_key="chat_history")

    (6) エージェントの準備。

    # エージェントの準備
    llm=OpenAI(temperature=0)
    agent_chain = initialize_agent(
        tools, 
        llm, 
        agent="conversational-react-description", 
        verbose=True, 
        memory=memory
    )

    (7) 会話の実行。
    ツールが必要ない会話では、ツールは使わず通常会話が返されます。

    agent_chain.run(input="こんにちは!今日も寒いですね")
    > Entering new AgentExecutor chain...
    
    Thought: Do I need to use a tool? No
    AI: こんにちは!そうですね、今日はとても寒いですね。
    
    > Finished chain.
    'こんにちは!そうですね、今日はとても寒いですね。

    (8) 会話の実行。
    ツールが必要な会話では、ツールが実行され、その結果を元にした会話が返されます。

    agent_chain.run(input="ぼっち・ざ・ろっくの作者は誰だっけ?")
    > Entering new AgentExecutor chain...
    
    Thought: Do I need to use a tool? Yes
    Action: Current Search
    Action Input: ぼっち・ざ・ろっくの作者
    Observation: まんがタイムきららMAXで『ぼっち・ざ・ろっく!』載せてもらってます ⑤巻発売中。アニメ2022年10~12月放送してました。バンド大好き!アニメ公式. 『ぼっち・ざ・ろっく!』(BOCCHI THE ROCK!)は、はまじあきによる日本の4コマ漫画。『まんがタイムきららMAX』(芳文社)にて、2018年2月号から4月号までゲスト連載 ... 7 days ago ... 今期のアニメーション界の話題を席巻する作品になった、はまじあきの4コマ漫画『ぼっち・ざ・ろっく!』。 ... 「陰キャならロックをやれ!」という ... 8 days ago ... 同人誌即売会「コミックマーケット101」(C101)が東京ビッグサイトで開催。1日目となる12月30日に、人気アニメ「ぼっち・ざ・ろっく! Feb 27, 2019 ... ぼっち×女子高生×バンドという異色の組み合わせが話題の『ぼっち・ざ・ろっく!』。作者・はまじあき先生の、ロックすぎるインタビューをお届けし ... 【LIVE映像】結束バンド「星座になれたら」LIVE at 秀華祭/ 「ぼっち・ざ・ろっく!」劇中曲 · アニプレックス チャンネル. アニプレックス チャンネル. スタッフ ; 原作:はまじあき ; 監督:斎藤圭一郎 ; シリーズ構成・脚本:吉田恵里香 ; キャラクターデザイン・総作画監督:けろりら ; ライブディレクター:川上雄介 ... 8 days ago ... 間違いなく今期の覇権アニメとなった「ぼっち・ざ・ろっく!」 · その原作者・はまじあき先生が本日のコミケに参加とか · どえらいことになりそう…… · そして ... 商品の説明. ぼっち・ざ・ろっく! ぼっちざろっく、 デフォルメ ぬいぐるみ 全5種セット 後藤ひとり(ぼっちちゃん) 伊地知虹夏山田リョウ喜多郁代 「ぼっち・ざ・ろっく! 2」はまじあき#はまじあき #本 #コミック/コミック直筆サイン本 未開封品水濡れの対策と緩衝材で包んで発送 ...
    Thought: Do I need to use a tool? No
    AI: はまじあきさんが『ぼっち・ざ・ろっく!』の作者です。
    
    > Finished chain.
    'はまじあきさんが『ぼっち・ざ・ろっく!』の作者です。'

    次回



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ