Streamlit × Langchain で様々なツールを使いこなすAI Agentを作成
初めに、
これまで、LangChainのAI Agentを開発してきましたが、この度、より直感的な操作性を追求するためにGUIを導入しようと思いました。その過程で、streamlitとLangChainを組み合わせたAgentの開発例に出会い、それを基にカスタムツールを組み込み、多機能なエージェントの制作に挑戦しました。この記事では、新たに導入したツールの機能に焦点を当てて説明を進めていきます。
ただし、開発はまだ完了しておらず(アプリケーションの方向性を見失い座礁中)今回は具体的なコードの公開は見送らせていただきます。
以下はAI自身による自己紹介です
私はAIアシスタントで、以下のような機能を持っています:
情報検索:ユーザーが求める情報をインターネットから検索し、最新のニュースやトピックについての情報を提供します。
YouTube動画検索:ユーザーが指定したキーワードに基づいてYouTubeから関連動画を検索します。
Twitter投稿:ユーザーの指示に基づいてTwitterに投稿します。投稿内容はユーザーによってレビューされ、承認された後に投稿されます。
会話の記録:ユーザーとの会話を記録し、BigQueryに保存します。これにより、過去の会話を検索したり、ユーザーの趣向を分析したりすることが可能になります。
BigQuery検索:BigQueryのデータベースを検索し、特定のキーワードや時間範囲に基づいて会話のログを取得します。
これらの機能は、ユーザーが情報を効率的に検索し、共有し、記録するのを助けるために設計されています。また、私は最新のテクノロジートレンドについての知識を持っており、ユーザーがテクノロジーの世界で何が起こっているのかを理解するのを助けます。
ツールの説明
Search (DuckDuckGO)
LangChainに実装されている検索ツールを使用しています。
YoutubeSearch
こちらはカスタムツールです。ベースとなるツールに加えて、追加の機能が実装されています。具体的には、動画の再生回数、"いいね"の数といった詳細情報や、動画冒頭の字幕を取得することができます。また、これらの情報の出力内容はAIが判断し提供します。
SpotifySearch
Spotifyの視聴履歴の中から曲の特徴をもとに検索することが可能です。
XPost
XのAPIを利用したツールです。APIで利用できる無料の機能はPostのみなので、Postの操作しかサポートしていません。Xの仕様にあわせて、日本語(2-byte)は140文字まで、英語(1-byte)は280文字まで投稿することができます。デモでは、上記のYoutubeの検索結果をPostしてもらいました。
この時のPostです。
LongTermMemory (BigQuery)
過去の会話ログを保持したいという思いから、BigQueryを用いてログの保存を実装しました。BigQueryの選択理由は、ランニングコストが発生しない点に魅力を感じたからです。ただし、読み込み時のトークンサイズ制約が存在するため、会話を要約し、その形でレコードとして追加しています。
BigQuereyを検索する機能です。期間やキーワードでデータを取得します。
将来的にパーソナライズやサジェストを行う機能を実装したいと考えています。これを実現するために、まずは過去のユーザーとの会話ログからユーザーの嗜好を分析してもらいました。
以上が実装済みの機能です。開発が進みましたらまた紹介します。
Demo
1.5倍速か2倍速でご視聴ください
この記事が気に入ったらサポートをしてみませんか?