見出し画像

LangChain (TavilySearchAPI)【AIが最新の情報をリアルタイムで取得】

はじめに

ChatGPTをはじめ生成AIのLLMは最新情報が学習されておらず、最新情報に基づいた回答には課題がありました。

以前からSerpAPIというツールで検索結果をもとにした回答をしてくれていいましたが、このTavilySearchでも同じように最新情報に基づいた回答をしてくれます。

「AIエージェント専用」というキーワードどおり、回答の質はSerpAPIと比べて良さそうです。

Tavily Search

Tavily Searchとは?


Tavily の Search API は、AI エージェント (LLM) 専用に構築された検索エンジンで、リアルタイムで正確かつ事実に基づく結果を迅速に提供します。


なぜTavily Searchなのか?

  1. 専用の設計: LLM エージェント専用に調整されており、検索結果がRAG向けに最適化されていることを確認します。オンライン ソースからの情報の検索、スクレイピング、フィルタリング、抽出におけるすべての負担を当社が引き受けます。単一の API 呼び出しですべてが完了します。返された検索結果をコンテキストとして LLM に渡すだけです。

  2. 汎用性: Tavily Search API は、結果を取得するだけでなく、精度も提供します。カスタマイズ可能な検索の深さ、ドメイン管理、HTML コンテンツ コントロールの解析により、あなたは主導権を握ることができます。

  3. パフォーマンス: 迅速性と効率性を重視した当社の API は、リアルタイムで信頼できる情報を保証します。まだ始まったばかりであるため、パフォーマンスは変化し、時間の経過とともに改善される可能性があることに注意してください。

  4. 統合に優しい: 私たちは適応性の本質を高く評価しています。そのため、当社の API を既存のセットアップに統合するのは簡単です。 Python ライブラリ、単純な API 呼び出し、またはLangchainLLamaIndexなどのサポートされているパートナーのいずれかを選択できます。

  5. 透明性と有益性: 当社の詳細なドキュメントにより、あなたが暗闇に取り残されることがなくなります。セットアップの基本から微妙な機能まで、すべてをカバーします。


これらの特徴のとおりLLMエージェント向けに調整されているのがポイントです。
特にRAG向けに最適化されているようですので、外部情報でRAGを作るのもTavilyは最適なようです。


TavilySearchの使い方

インストール

pip install -U langchain-community tavily-python

インストールはpipだけで使えるようになります。


設定

import getpass
import os

os.environ["TAVILY_API_KEY"] = getpass.getpass()


コードサンプル

from langchain.retrievers.tavily_search_api import TavilySearchAPIRetriever

retriever = TavilySearchAPIRetriever(k=3)
res = retriever.invoke("LangChainの最新情報を日本語で教えて")

print(res)

使い方は簡単です。
たったこれだけで使えます。


実行結果

# python test-tavily.py
[Document(page_content='現在「LCEL Chains」と「Legacy Chains」の2種類のチェーンがサポートされていま す。(2024年2月12日時点) 1. LCEL Chains. LCEL(LangChain Composition Expression Language)を用いて 構築された、よりモダンで柔軟性の高いチェーン。', metadata={'title': '【LangChain】複数処理をつなげる「Chains」読解メモ - Zenn', 'source': 'https://zenn.dev/buenotheebiten/articles/8dbf5cfef5f3eb', 'score': 0.97795, 'images': None}), Document(page_content='LangChainは、チャットボットや仮想エージェン トなどの大規模言語モデル(LLM)を使用したアプリケーション開発のためのオープンソース・オーケストレー ション・フレームワークです。 ... 2022年10月にHarrison Chase氏によって立ち上げられたLangChainは、2023年6月 ...', metadata={'title': 'LangChainとは| IBM', 'source': 'https://www.ibm.com/jp-ja/topics/langchain', 'score': 0.96588, 'images': None}), Document(page_content='LangGraph については、ドキュメントを読んで学習してください。フィードバックがありましたら、ぜひお知らせください。\n?? LangChain 0.1  が登場しました!\nまだ LangChain 0.1 にアップグレードしていない場合は、ぜひチェックしてください。詳細についてはブログに書きましたが、重要な点は次のとおりです。\nマイナー バージョン リリースで重大な変更はなくなりました。\nLCEL は、並列化、フォールバック、バッチ、ストリーミング、非同期をすべてすぐにサ ポートします。\nLangChain は現在、約 700 の統合をサポートしており、統合パートナーとの共同メンテナン スが強化されています。\nRAG アプリの動作を改善するための、より高度な取得。\nLangChain エージェント用のコグニティブ アーキテクチャのツールとテンプレートの最大のライブラリ。\nLangSmith による 1 クリックの可観測性。\nOSS の新機能\nstream_events メソッドの紹介\nこの新しいメソッドは、エージェントが実行している現在のステップ、そのステップで取得したソース、およびエージェントの応答をストリーミングします。ドキュメント を参照してください。\n新しく改良されたユースケースドキュメント\nRAG による Q&A :独自の 質問回答チャット ボットを始めましょう。\nText to SQL :多くの企業が独自のテキストを SQL ボットに構築 していると聞きます。このガイドを参照してください。\nツールの使用: LLM が API や機能にアクセスして、 アクションを実行し、既存の企業ソフトウェアと統合できるようにします。\n??? ラングスミスの新機能\nトレースの改善\n最も重要な呼び出しがデフォルトのビューに表示されるように、実行ツリーを更新しました。トレースをクリーンで整然とした状態に保つことは、何が起こっているかをより早く把握するための重要なステップです。さらに詳細が必要な場合は、いつでも展開ビューですべてを表示できます。\nトレース ビューとプレイ グラウンドでのツールと関数呼び出しのレンダリングが向上しました。\nトレース履歴ビューで前または次の実行に移動するには、キーボード ショートカット ( J、K ) を使用します。\nトレース履歴に無限スクロールが 追加されたため、より多くのコンテキストを取得できるようになりました。\n注釈の改善\n注釈ラベルの更新と削除が高速化されました。\nモニタリングの改善\n[監視] タブのタグによるドリルダウンと動的な統計計算に より、セグメントごとにグラフをフィルターできます。\n監視チャートのレンダリングが速くなったことに気づきましたか?スケーリングを続け、UI での軽快なエクスペリエンスを維持できるように、データベースのプラットフォームを再構築しました。\n? 最新情報を入手\n教育リソース:\n DeepLearning.AIのLangChain.js を使用して LLM アプリを構築する\nランググラフ YouTube シリーズ\nLangChain 0.1 YouTube シリーズ\nstream_events メソッドを使用したスト\u200b\u200bリーミング イベント\nPDFでチャットする (Austin Vance)\n良い読 書:\nマルチエージェントのワークフロー\nAlly Financial、LangChain と協力して PII マスキングを LangChain JS に導入\nAstraDB、LangChain、Vercel を使用した Wikipedia チャットボットの構築 ( Datastax の Carter Rabasa 著)\n Week of 1/22(2024) LangChain Release Notes\nAI、LLMで有名なLangChain。LangChainはまだまだ進化中。定期的に”LangChain Release Notes”が発表されています。これはその ”LangChain Release Notes” からの記事紹介です。LangChainの理解の一助となれば幸いです。\n?? LangGraph の紹介\nエージェント ランタイムのカスタマイズに役立つ LangGraph をリリースしました。詳細については、ブログをご覧ください。\nLangGraph は、アプリケーションの状態を追跡しながらロジックのループを可能にする強力なエージェント エグゼキューターの構築に役立ちます。 LangGraph で構築されたエージェントは、より曖昧な入力を処理し、より一貫してタスクを実行できます。これらのエージェントは次のことができます。\nツールを強制的に呼び出す\n人間参加者の承認を待ちます\nエージェントのステップを管理する\n出力を特定の形式または生の形式で返す\n私たちは、エージェントにさらに制御可能な権限を提供できることに興奮しています。 Fiddler による 検索拡張生成を使用した AI チャットボット開発から得た 10 の教訓\nMendable が LangSmith を活用してツールとアクションをデバッグする方法by Nicolas Camara (Mendable)', metadata={'title': 'Week of 1/22(2024) LangChain Release Notes|necos - note(ノート)', 'source': 'https://note.com/neco_s/n/n790c95e3adfe', 'score': 0.95842, 'images': None})]

簡単に実行できるわりに、結果はそこそこ最新の話題を回答してくれています。


エージェントから呼び出す場合

エージェントでTavilyを呼び出すことも簡単にできます。

コード

from langchain import hub
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults

instructions = """You are an assistant."""
base_prompt = hub.pull("langchain-ai/openai-functions-template")
prompt = base_prompt.partial(instructions=instructions)
llm = ChatOpenAI(temperature=0)
tavily_tool = TavilySearchResults()
tools = [tavily_tool]
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,
)

agent_executor.invoke({"input": "LangChainの最新情報を日本語で教えて"})


実行

# python test-tavily-agent.py


> Entering new AgentExecutor chain...

Invoking: `tavily_search_results_json` with `{'query': 'LangChain 最新情報'}`


[{'url': 'https://www.forbes.com/sites/alexkonrad/2024/02/15/open-source-ai-startup-langchain-launches-langsmith/', 'content': '“There was a lot happening in the space, and I wanted to have a common interface to try it all out, and be able to access it all off the shelf, in a super easy way,” he said.\n That December 2022, as the release of OpenAI’s ChatGPT accelerated the generative AI rush, he watched on Discord, GitHub and Twitter as hundreds of industry practitioners flocked to the tool; by January, he’d quit his job and incorporated a business around the project.\n By the time LangChain announced that raise in April, Chase had already closed another one: $20 million from Sequoia, valuing the company at $200 million, as first reported by Business Insider just a week later and now confirmed by Chase and the firm to Forbes. LangSmith’s ability to track down to a single API ― one “trace,” or call to an end-user app, could involve a chain of a few ― makes it much easier to see how they fit together, or if they don’t. Companies don’t need to use LangChain’s open-source software to use LangSmith, though Chase said the paid tool also functions as the company’s enterprise-grade version of it, as well.'}, {'url': 'https://qiita.com/Isaka-code/items/7a9f19aef6284b7789ed', 'content': 'OpenAI GPT-4/ChatGPT/LangChain 人工知能プログラミング実践入門\n説明文引用\n本書は、ChatGPT、GPT-4/GPT-3.5の利用方法にとどまらず、「OpenAI API」を使うことでカスタマイズしたAIを独自のシステ ムに組み込むための方法をステップ・バイ・ステップで解説した1冊です。\nまた、大規模言語モデル(LLM)では学習されていないデータを参照して、質問応答(チャット)を作成するためのライブラリ「LlamaIndex」、複雑なタスクを実行するアプリケーションを作成するためのライブラリ「LangChain」についても詳細を解説して います。\n加えて、現時点では限定公開中の「ChatGPTプラグイン」についても取り上げました。\n本書を活用 することで、いま大きな話題となっている強力なAIの機能を自社のサービスやアプリケーションの一部として提供することが可能になります。\n2. ソフトウェア開発にChatGPTは使えるのか? ――設計からコーディングま でAIの限界を探る\n説明文引用\nChatGPTをソフトウェア開発で活用しよう!\n対話型人工知能ChatGPTの登場は衝撃でした。本書はインターネット草創期からソフトウェア開発に携わる筆者がプロの目線で、ChatGPTの限界 と利用方法を探ります。一般ユーザーレベルでは、パワーポイントやワード、エクセルファイルの自動生成などがChatGPTで簡単にできてしまいますが、ソフトウェア開発でその威力はすさまじく、プロが現場で使用する、UMLのクラス図やシーケンス図などソフトウェア設計にかかわるドキュメントをいとも簡単に生成します。データベースのER図もあっという間に出力します。プログラムコードの誤りも指摘し、さらによりよいコードにリファクタリングまでしてくれます。まさに人知を超えた存在です。でもこれは正しいコードで内容なのでしょうか。筆者の豊富な開発経験でChatGPTを多面的に試し、その有用性をつまびらかにしていきます。道具としてAIを活 用するか、それともただ驚くだけか、本書は積極的に人工知能を活用するための手引きになるでしょう。\n(こんな方におすすめ)\n・生成AIのChatGPTを仕事に生かしたいプログラマ、エンジニア\n3. 生成AI・ChatGPTでPythonプログラミング アウトプットを10倍にする!GPT4&GPT3.5対応\n説明文引用\n本書は、生成AI・ChatGPT  を代表とする大規模言語モデル(LLM)について解説しています。学んだことをすぐに実践できるよう具体例を 数多く掲載しています。\n生成AIは「使う人に応じて能力が大きく変わるAI」と言われています。その仕組みや使い方を学ぶことによって、その能力を最大限に引き出すことができるでしょう。特に、生成AIに入力する「プロンプト」と呼ばれるテキストを、ちょっと工夫するだけで生成物の質がぐっと改善します。本書の具体例の通りに入力することで、成果を上げることができます。\nまた、本書はエンジニアやデザイナーなど、アプリ開発やWebデザインに携わる人が、どのように生成AIを活用できるのか、という点を念頭に書かれています。\n本書 の対象読者は、生成 AI に興味があり、それらを実用的に活用したいと考えている方々です。特に次のような方に向けて書いています。\n・生成AIに興味がある方、学びたいと考えている方\n・生成AIを活用したいと考えているエンジニアやデザイナー\n・自動でプログラムを生成して作業を自動化したいと思っている方\n・生成AIの特徴やメリット・デメリットを具体例で確認したい方\n4. ChatGPT/LangChainによるチャットシステム構築[実践]入門\n説明文引用\nChatGPTのAPIとLangChainで大規模言語モデルをシステムに組み込む知識をステップバ イステップで実践できる!\n Software Design 2023年12月号\n説明文引用\n[内容紹介]\n【第1特集】リリースフローを再確認\n開発を加速するCI/CD\n生産性と品質を両立させるための鉄則\nみなさん、CI/CDできていますか?\u3000……こう尋ねられると、「そんなの、もうとっくにやってるよ」と答える人がいるでしょう。ですが、CI/CDを導入しただけで満足していませんか?\u3000効率的にリリースサイクルを回し、ユーザーに価値を 届けるためには、ビルドや、テスト、デプロイ、リリースまでの流れを無駄なく進められるしくみを作る必要があるのです。\n本特集では、CI/CDの基本を振り返り、CI、CDそれぞれの設計ポイントを整理します。続いて、 プラットフォーム事業におけるCI/CDの実施例を取り上げ、本番環境でCI/CDを効果的に推し進めるコツを紹介します。さらに発展的な取り組みとして、ブランチ戦略の一種、トランクベース開発に触れます。この機会にご自身の環境を振り返ってみてください!\n【第2特集】生成AIで自社サービスの幅を広げたい!\nChatGPTを組み込んだサービスを開発する\n「食べログ」の事例に学ぶPoC推進の秘訣\nChatGPTをはじめとした生成AIの活用が進んでいます。企業における活用方法の目的は、業務活用と事業活用という2つに大別できます。先行事例として 前者を見かけることが多いですが、「自社プロダクトの価値を高めるために生成AIを実装したサービスを開発したい」と考えている企業も少なくないと思います。しかし、事業活用のためには検討しなければならないことがたくさんあり、開発知識だけを持っていてもなかなかうまくいきません。\n本特集では、ChatGPTを中心とした 生成AIの基本原理から、業務活用の先行事例として「食べログ」における「食べログChatGPTプラグイン」およ び「食べログAIチャット(β)」の開発・リリースまでの取り組みを紹介します。開発方法はもちろん、リリースまでの社内調整やコスト管理などについても言及しているので、生成AIを組み込んだ機能やサービスの導入を見据えたPoC(Proof of Concept:概念実証)の参考事例としてもご活用ください。\n10. 全容解説GPT テキス ト生成AIプロダクト構築への第一歩\n説明文引用\nGPT技術・製品の基礎知識を幅広く解説!\n大規模言語モデ ルGPTの全体像を把握できる! ChatGPTの実行例やOpenAI API活用の基本、市場動向も解説。最新情報を加筆、GPT-3.5/4に対応―本書のテーマの1つはGPTの基本的な技術事項、もう1つはGPT拡大期の市場動向です。本書の前半では、GPT登場の背景、発展の経緯、GPT/OpenAI APIの技術要素、ChatGPTやOpenAI APIの基本的な活用方法を解説。後半は、GPTスタートアップの事例、グローバル企業の利用動向を取り上げた後、GPTのリスクと今後の動向を展望。GPT/Open APIを利用する前に押さえておきたい基礎知識を確認できる一冊です。\n発売前の技術書\n11. AITuberを作ってみたら生成AIプログラミングがよくわかった件\n説明文引用\n■□ 生成AIプログラミン グはAITuberで始めるとわかりやすい!\n□■ LLMを使って生成したテキストをYouTubeで配信するまで完全ガイド\nプログラミングを学んでいる人なら、誰もが気になる生成AI。どのように生成AIを利用して、生成したデータをどのように生かすのか。どのようにアプリケーションに組み込むのか。実例が知りたいですよね。\nそこで、AITuberを作ってみるのはいかがでしょう。AITuberは、YouTube配信を行うAIです。その根幹となるのが生成AI。YouTubeの配信に書き込まれたコメントを取得して、それに合う返答を生成する。ここで生成AIを使います。どのようにプログラムから返答を生成するのか、その実例が本書でわかります。AITuberのキャラクターにふさ わしい返答を生成するには、どのようにプロンプトを作っていくのか、そのコードの原則がマスターできます。\n生成した文字列をどのようにアプリケーションに活用するのか、それもAITuberで実例を学べます。取得した テキストを音声に変換し、配信ソフトを使ってYouTubeで配信する。それに必要なモジュールを作り、配信を実 行するためのプログラミングもくわしく解説します。\n生成AIプログラミングでは、実際のアプリケーションにどう生成AIを落とし込んでいくのかまで学ぶのがなかなか難しい現状があります。本書ではAITuberを題材にす ることで、YouTube配信という目に見えるゴールを目指してアプリケーションを作り込んで行くことができます 。\n読者限定の配信用画像(静止画)も無償で提供しています。また、YouTube配信に必要なツール類も無償で 利用できて使いやすいものを取り上げました。本書に沿ってプログラムやツールをそろえていくことにより、誰でもAIを使ったYouTube配信ができるようになっています。\n本書が対象としているのは、Pythonのプログラミ ングについて入門段階の文法はひと通りマスターしたものの、実際にどうアプリケーションを作ったいいかわからない人や、なかなか自分ではLLM(大規模言語モデル)を活用するプログラムを着想したり、実装したりはで きないプログラマーです。できるだけ早く生成AIプログラミングを学んで武器にしたいなら、ぜひ本書はお薦めです!\n9. Copilotを組み合わせたソフトウェア開発の実践的な方法を示します。また、OpenAI APIの活用方法や、新登場したGPTsを使い自分好みにカスタマイズする方法、AI開発で現在主流となっているLangChainの使用 方法についても詳細に説明します。\nこの環境に早く適応することは、同時代を生き抜くプログラマにとって不可欠なスキルです。本書を読んで、ChatGPTを活用したプログラミングの第一歩を踏み出そう!\nその他\n公式 ドキュメント\n『OpenAI API』\n『LangChain』\n洋書\n『LangChain Crash Course: Build OpenAI LLM powered Apps: Fast track to building OpenAI LLM powered Apps using Python』\nZenn Book\nUdemyの紹介記事\nRegister as a new user and use Qiita more conveniently ChatGPT API×Pythonで始める対話型AI実装入門(GPT-3.5&GPT-4 対応)\n説明文引用\n話題の対話型AI「ChatGPT」では、APIと呼ばれる、ChatGPTをアプリケーションに組み込んで利用するためのしくみが公開されています。ChatGPTのAPIを活用することで、ChatGPTを他の アプリケーションと連携でき、ブラウザ版のChatGPTを単独で使うよりも幅広い活用が可能になります。たとえ ば「音声認識サービスと連携し、会話の音声データを文字起こししてChatGPTで要約する」「Google検索の結果 を取得して、ChatGPTでニュース記事を作成する」といった処理ができます。本書では、Pythonの具体的なコー ドを示しながら、ChatGPT APIを活用したサービスを実装する方法を解説します。ChatGPTの回答を細かく制御できる「パラメータ」の利用方法についても紹介するため、ChatGPTをカスタマイズして使うことが可能になりま す。\n7. Python×APIで動かして学ぶ AI活用プログラミング (単行本)\n説明文引用\nStreamlitで手軽にAI 技術を活用!\nあなたはAIを使えているのか?\n生成AI“ChatGPT”や画像生成AI“DALL・E”などの最近話題のAIを扱うスキルを体験学習!!\nデータサイエンティスト・マーケッター 必須のスキル!!\n'}, {'url': 'https://venturebeat.com/ai/langchain-lands-25m-round-launches-platform-to-support-entire-llm-application-lifecycle/', 'content': 'Today, LangChain, the startup facilitating the development of large language model (LLM) apps with its open-source framework, announced it has raised $25 million in a series A round, led by ...'}, {'url': 'https://github.com/langchain-ai/langchain/releases', 'content': 'Fix rephrase step in chatbot use case by @jacoblee93 in #16763. [partners]: langchain-robocorp ease dependency version by @rihardsgravis in #16765. robocorp: release 0.0.3 by @efriis in #16789. Report which file was errored on in DirectoryLoader by @alex-dr in #16790. docs: add csv use case by @baskaryan in #16756.'}, {'url': 'https://www.sequoiacap.com/article/partnering-with-langchain-the-llm-application-framework/', 'content': "Zooming out, LangChain is a platform that allows companies to build the scaffolding of their applications' cognitive architectures. It is paving the way for developers to build much more powerful LLM applications, going beyond simple one-shot queries to the intelligent, interconnected systems in which these reasoning engines truly shine. ..."}]LangChainの最新情報 に関する情報をいくつか見つけました。

1. Forbesの記事によると、LangChainは大規模言語モデル(LLM)アプリの開発を支援するスタートアップであ り、オープンソースフレームワークを使用しています。最新のシリーズAラウンドで2500万ドルを調達しました 。[記事へのリンク](https://www.forbes.com/sites/alexkonrad/2024/02/15/open-source-ai-startup-langchain-launches-langsmith/)

2. LangChainは、企業がアプリケーションの認知アーキテクチャの骨組みを構築するプラットフォームであり、開発者がより強力なLLMアプリケーションを構築できるようにしています。[記事へのリンク](https://www.sequoiacap.com/article/partnering-with-langchain-the-llm-application-framework/)

3. LangChainのGitHubリリースには、チャットボットの使用例に関する修正や依存関係のバージョンの簡略化などが含まれています。[GitHubリリースへのリンク](https://github.com/langchain-ai/langchain/releases)

これらの情報がLangChainの最新情報に関するものです。

> Finished chain.

2024/2/15時点の情報を取得してるので最新情報が取得できているようです。



補足 GPT Researcher

TavilyがGithubで公開しているGPT Researcherというものがあります。

GPT Researcher は、さまざまなタスクに関する包括的なオンライン調査のために設計された自律エージェントです。
エージェントは、関連するリソース、概要、教訓に焦点を当てるためのカスタマイズ オプションを使用して、詳細で事実に基づいた公平な調査レポートを作成できます。最近のPlan-and-SolveおよびRAGの論文に触発された GPT Researcher は、速度、決定性、信頼性の問題に対処し、同期操作ではなく並列化されたエージェント作業を通じて、より安定したパフォーマンスと速度の向上を提供します

Unleash the Power of AI with Automated Research

Tavily does your research for you, so you can spend less time stressing over it and more time focusing on the things that really matter.


エージェントのように自律的に調査を行い、最終的にレポートを作ってくれます。
アイデア自体は以前から似たようなものがありましたが、Tavilyが作ってるだけあって、調査の質はかなり良さそうです。


まとめ

最新情報の取得はChatGPT PlusでもWebブラウジング機能やLangChainでもSerpAPI、GoogleAPIなどいろいろやり方はありましたが、TavilySearchはAIエージェント向けに調整されていてRAG向けにも最適化されているようです。

目新しい機能ではないですが、LLMが本当に役に立つかどうかはこういった地味な質の良さが重要と思っています。





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