概要
この投稿では次のことを説明します。
自然言語処理(NLP)におけるエージェントとは何ですか?
エージェントは自然言語アプリケーションの重要なコンポーネントであり、自然言語理解 (NLU) を使用してクエリを理解します。これらのエージェントは、一連のタスクを使用して人間と対話するための会話テンプレートのように機能するプログラムです。エージェントは、複数のアクションを実行したり、次に実行するタスクを指定したりするために呼び出すことができる複数のツールを使用します。
LangChain のエージェントの使用を開始する
LangChain のエージェントを使用して出力を抽出することで、人間と会話するためのエージェントを構築するプロセスを開始します。 LangChain でエージェントの使用を開始するプロセスを学ぶには、以下にリストされている手順に従ってください。
ステップ 1: フレームワークのインストール
まず、「」を使用して LangChain フレームワークをインストールするプロセスを開始します。 ピップ 」コマンドを使用して、エージェントを使用するために必要な依存関係を取得します。
pip インストール ラングチェーン
LLM を構築するための OpenAI モジュールをインストールし、それを使用して LangChain でエージェントを構成します。
pip インストール openai
環境をセットアップする 次のコードを実行して、アカウントの API キーを使用して OpenAI モジュールを開きます。
輸入 あなた輸入 ゲットパス
あなた 。 約 [ 「OPENAI_API_KEY」 】 = ゲットパス 。 ゲットパス ( 「OpenAI API キー:」 )
ステップ 2: チャット モデルの構成
LangChain から ChatOpenAI モジュールをインポートし、その関数を使用して LLM を構築します。
から ラングチェーン。 チャットモデル 輸入 チャットオープンAIllm = チャットオープンAI ( 温度 = 0 )
エージェントが実行する必要があるタスクまたはアクションを構成するためのエージェント用ツールをインポートします。次のコードは、get_word_length() メソッドを使用して、ユーザーが指定した単語の長さを取得します。
から ラングチェーン。 エージェント 輸入 道具@ 道具
確かに get_word_length ( 言葉: str ) - > 整数 :
'''単語の長さを取得しています'''
戻る のみ ( 言葉 )
ツール = [ get_word_length 】
チャット モデルのテンプレートまたは構造を構成して、チャットを行うためのインターフェイスを作成します。
から ラングチェーン。 プロンプト 輸入 チャットプロンプトテンプレート 、 メッセージプレースホルダープロンプト = チャットプロンプトのテンプレート。 from_messages ( [
( 'システム' 、 「あなたのアシスタントはとても素晴らしいですが、長さの計算には改善の必要があります。」 ) 、
( 'ユーザー' 、 '{入力}' ) 、
メッセージプレースホルダー ( 変数名 = 「エージェント_スクラッチパッド」 ) 、
】 )
ステップ 3: ビルディング エージェント
LangChain モジュールから OpenAI 関数を使用してツールを使用して LLM を構築するためのツール ライブラリをインポートします。
から ラングチェーン。 ツール 。 与える 輸入 format_tool_to_openai_functionllm_with_tools = そうですね。 練る (
機能 = [ format_tool_to_openai_function ( t ) のために t で ツール 】
)
OpenAI 関数エージェントを使用して、出力パーサーを使用してアクション/タスク シーケンスを設定するようにエージェントを構成します。
から ラングチェーン。 エージェント 。 フォーマット_スクラッチパッド 輸入 format_to_openai_functionsから ラングチェーン。 エージェント 。 出力パーサー 輸入 OpenAIFunctionsAgentOutputParser
エージェント = {
'入力' : ラムダ ×:× [ '入力' 】 、
「エージェント_スクラッチパッド」 : ラムダ x: format_to_openai_functions ( バツ [ '中間ステップ' 】 )
} |プロンプト | llm_with_tools | OpenAIFunctionsAgentOutputParser ( )
ステップ 4: エージェントの呼び出し
次のステップでは、invoke() 関数を使用して、input 引数とintermediate_steps 引数を使用してエージェントを呼び出します。
エージェント。 呼び出す ( {'入力' : 「良いという言葉は何文字ですか」 、
「中間ステップ」 : [ 】
} )
ステップ 5: エージェント ツールを構成する
その後、AgentFinish ライブラリをインポートして、シーケンス内のすべてのステップを統合してintermediate_steps を構成し、アクティビティを完了するだけです。
から ラングチェーン。 スキーマ 。 エージェント 輸入 エージェントフィニッシュ中間ステップ = [ 】
その間 真実 :
出力 = エージェント。 呼び出す ( {
'入力' : 「手紙は良いです」 、
「中間ステップ」 : 中間ステップ
} )
もし インスタンス ( 出力 、 エージェントフィニッシュ ) :
最終結果 = 出力。 戻り値 [ '出力' 】
壊す
それ以外 :
印刷する ( 出力。 道具 、 出力。 ツール入力 )
道具 = {
'get_word_length' : get_word_length
} [ 出力。 道具 】
観察 = 道具。 走る ( 出力。 ツール入力 )
中間ステップ。 追加する ( ( 出力 、 観察 ) )
印刷する ( 最終結果 )
ステップ 6: エージェントのテスト
次に、LangChain からライブラリをインポートした後、AgentExecutor() メソッドを呼び出してエージェントを実行します。
から ラングチェーン。 エージェント 輸入 エージェントエグゼキュータエージェント_エグゼキューター = エージェントエグゼキュータ ( エージェント = エージェント 、 ツール = ツール 、 冗長な = 真実 )
最後に、入力引数を指定して Agent_executor を呼び出し、エージェントのクエリを入力します。
エージェント_エグゼキュータ。 呼び出す ( { '入力' : 「良いという言葉は何文字ですか」 } )エージェントは、チェーンの終了後に、入力引数で指定された質問に対する回答を表示しました。
LangChain フレームワークでエージェントを使い始める方法はこれですべてです。
結論
LangChain でエージェントの使用を開始するには、OpenAI API キーを使用して環境のセットアップに必要なモジュールをインストールするだけです。その後、一連の中間ステップでエージェントを構築するためのプロンプト テンプレートを設定して、チャット モデルを構成します。エージェントを構成したら、ユーザーに入力文字列を与えた後、タスクを指定してツールを構築するだけです。このブログでは、LangChain でエージェントを使用するプロセスを説明しました。