見出し画像

Streamlit × Langchain で様々なツールを使いこなすAI Agentを作成



初めに、

これまで、LangChainのAI Agentを開発してきましたが、この度、より直感的な操作性を追求するためにGUIを導入しようと思いました。その過程で、streamlitとLangChainを組み合わせたAgentの開発例に出会い、それを基にカスタムツールを組み込み、多機能なエージェントの制作に挑戦しました。この記事では、新たに導入したツールの機能に焦点を当てて説明を進めていきます。
ただし、開発はまだ完了しておらず(アプリケーションの方向性を見失い座礁中)今回は具体的なコードの公開は見送らせていただきます。


以下はAI自身による自己紹介です

私はAIアシスタントで、以下のような機能を持っています:

  1. 情報検索:ユーザーが求める情報をインターネットから検索し、最新のニュースやトピックについての情報を提供します。

  2. YouTube動画検索:ユーザーが指定したキーワードに基づいてYouTubeから関連動画を検索します。

  3. Twitter投稿:ユーザーの指示に基づいてTwitterに投稿します。投稿内容はユーザーによってレビューされ、承認された後に投稿されます。

  4. 会話の記録:ユーザーとの会話を記録し、BigQueryに保存します。これにより、過去の会話を検索したり、ユーザーの趣向を分析したりすることが可能になります。

  5. BigQuery検索:BigQueryのデータベースを検索し、特定のキーワードや時間範囲に基づいて会話のログを取得します。

これらの機能は、ユーザーが情報を効率的に検索し、共有し、記録するのを助けるために設計されています。また、私は最新のテクノロジートレンドについての知識を持っており、ユーザーがテクノロジーの世界で何が起こっているのかを理解するのを助けます。

自己紹介するAI

ツールの説明

Search (DuckDuckGO)

LangChainに実装されている検索ツールを使用しています。

検索結果

YoutubeSearch

こちらはカスタムツールです。ベースとなるツールに加えて、追加の機能が実装されています。具体的には、動画の再生回数、"いいね"の数といった詳細情報や、動画冒頭の字幕を取得することができます。また、これらの情報の出力内容はAIが判断し提供します。

思考中のAI
Youtubeの検索結果

SpotifySearch

Spotifyの視聴履歴の中から曲の特徴をもとに検索することが可能です。

XPost

XのAPIを利用したツールです。APIで利用できる無料の機能はPostのみなので、Postの操作しかサポートしていません。Xの仕様にあわせて、日本語(2-byte)は140文字まで、英語(1-byte)は280文字まで投稿することができます。デモでは、上記のYoutubeの検索結果をPostしてもらいました。

文字数とユーザのレビューに対応するAI

この時のPostです。


LongTermMemory (BigQuery)

過去の会話ログを保持したいという思いから、BigQueryを用いてログの保存を実装しました。BigQueryの選択理由は、ランニングコストが発生しない点に魅力を感じたからです。ただし、読み込み時のトークンサイズ制約が存在するため、会話を要約し、その形でレコードとして追加しています。

BQに会話の要約を保存

BigQuereyを検索する機能です。期間やキーワードでデータを取得します。

直近1週間の会話のログからテスラを検索

将来的にパーソナライズやサジェストを行う機能を実装したいと考えています。これを実現するために、まずは過去のユーザーとの会話ログからユーザーの嗜好を分析してもらいました。

ユーザーの嗜好を分析するAI


以上が実装済みの機能です。開発が進みましたらまた紹介します。


Demo

1.5倍速か2倍速でご視聴ください


この記事が参加している募集

AIとやってみた

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