AIエージェントのメモリ例
この例では、TiDBのベクトル検索機能を利用した、永続メモリを備えたAIエージェントの構築方法を示します。
ほんの数行のコードで、過去のやり取りを記憶し、時間の経過とともに文脈を構築していく対話型AIを作成できます。
- 永続メモリ:セッションをまたいでの会話やユーザー操作を記憶します
- 対話型チャット:Web UIまたはコマンドラインインターフェースのいずれかを使用します。
- マルチユーザーサポート:ユーザーごとに個別のメモリコンテキストを保持します
- リアルタイムメモリ表示:ウェブインターフェースに保存されているメモリを表示します
TiDBを搭載したメモリ付きAIエージェント
前提条件
始める前に、以下のものを用意してください。
- Python (>=3.10) : Python 3.10以降のバージョンをインストールしてください。
- TiDB Cloud Starterインスタンス: TiDB Cloudで無料のTiDB Cloud Starterインスタンスを作成できます。
- OpenAI API キー: OpenAIから OpenAI API キーを取得します。
実行方法
ステップ1. pytidbリポジトリをクローンする
pytidbはTiDBの公式Python SDKであり、開発者がAIアプリケーションを効率的に構築できるよう設計されています。
git clone https://github.com/pingcap/pytidb.git
cd pytidb/examples/memory/
ステップ2. 必要なパッケージをインストールします
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r reqs.txt
ステップ3.環境変数を設定する
- TiDB Cloudコンソールで、私のTiDBページに移動し、ターゲットのTiDB Cloud Starterインスタンスの名前をクリックして、その概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示され、接続パラメータが表示されます。
- 接続パラメータに応じて環境変数を以下のように設定してください。
cat > .env <<EOF
TIDB_HOST={gateway-region}.prod.aws.tidbcloud.com
TIDB_PORT=4000
TIDB_USERNAME={prefix}.root
TIDB_PASSWORD={password}
TIDB_DATABASE=test
OPENAI_API_KEY={your-openai-api-key}
EOF
ステップ4.アプリケーションを実行する
以下の選択肢から1つを選んでください。
オプション1:ウェブアプリケーションを起動する
streamlit run app.py
ブラウザを開いてhttp://localhost:8501にアクセスし、 Webアプリケーションでメモリを操作するに従ってメモリ対応 AI アシスタントの使用を開始します。
オプション2:コマンドラインアプリケーションを実行する
python main.py
メモリ対応 AI アシスタントの使用を開始するには、「コマンドラインアプリケーションコマンドラインアプリケーションでメモリを操作するに従ってください。
Webアプリケーションでメモリを操作する
ウェブアプリケーションでは、AIアシスタントと対話できます。UIには以下のコンポーネントが含まれています。
- サイドバー:ユーザー設定とチャットリスト。
- メインチャットエリア:AIアシスタントとのチャットインターフェース。
- メモリビューア:保存されている情報をリアルタイムで表示するメモリビューア。
メモリの仕組みを理解するには、以下の手順に従ってください。
- デフォルトのチャットセッションで自己紹介をしてください。例えば、「こんにちは、ジョンです。ソフトウェアエンジニアとして働いていて、ギターが大好きです。」など。
- 入力された情報はメモリビューアで確認できます。
- 新しいチャットセッションを開始するには、サイドバーの「新しいチャット」をクリックしてください。
- 新しいチャットセッションで「私は誰ですか?」と質問してください。AIが過去の会話からあなたの情報を記憶します。
コマンドラインアプリケーションでメモリを操作する
コマンドラインアプリケーションでは、AIアシスタントとチャットしたり、自己紹介をしたりできます。
会話例:
Chat with AI (type 'exit' to quit)
You: Hello, I am Mini256.
AI: Hello, Mini256! How can I assist you today?
You: I am working at PingCAP.
AI: That's great to hear, Mini256! PingCAP is known for its work on distributed databases, particularly TiDB. How's your experience been working there?
You: I am developing pytidb (A Python SDK for TiDB) which helps developers easily connect to TiDB.
AI: That sounds like a great project, Mini256! Developing a Python SDK for TiDB can make it much easier for developers to integrate with TiDB and interact with it using Python. If you need any advice on best practices, libraries to use, or specific features to implement, feel free to ask!
You: exit
Goodbye!
最初の会話の後、AIアシスタントはあなたが提供した情報を記憶し、今後の質問に答える際にそれを使用します。
これで、新しいチャットセッションを開始して、AIアシスタントに「私は誰ですか?」と尋ねることができます。
別のチャットセッションでの会話例:
Chat with AI (type 'exit' to quit)
You: Who am I?
AI: You are Mini256, and you work at PingCAP, where you are developing pytidb, a Python SDK for TiDB to assist developers in easily connecting to TiDB.
You: exit
Goodbye!
ご覧のとおり、AIアシスタントはセッションをまたいであなたのことを記憶しています!
関連リソース
- ソースコード: GitHubでビュー
