AI エージェントのメモリの例
この例では、TiDB のベクトル検索機能を活用した永続メモリを備える AI エージェントの構築方法を紹介します。
わずか数行のコードで、過去のやり取りを記憶し、時間の経過とともにコンテキストを構築する会話型 AI を作成できます。
- 永続メモリ: セッションやユーザー操作をまたいで会話を記憶します
- 対話型チャット: Web UI またはコマンドラインインターフェースのいずれかを使用します
- マルチユーザー対応: ユーザーごとに個別のメモリコンテキストを保持します
- リアルタイムのメモリ表示: Web インターフェースに保存されたメモリを表示します
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 コンソールで My TiDB ページに移動し、対象の TiDB Cloud Starter インスタンス名をクリックして概要ページを開きます。
- 右上の Connect をクリックします。接続ダイアログが表示され、接続パラメータが一覧表示されます。
- 以下のように、接続パラメータに従って環境変数を設定します。
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. Web アプリケーションを起動する
streamlit run app.py
ブラウザで http://localhost:8501 を開き、Web アプリケーションでメモリを操作する に従って、メモリ対応 AI アシスタントの利用を開始します。
オプション 2. コマンドラインアプリケーションを実行する
python main.py
コマンドラインアプリケーションでメモリを操作する に従って、メモリ対応 AI アシスタントの利用を開始します。
Web アプリケーションでメモリを操作する
Web アプリケーションでは、AI アシスタントと対話できます。UI には次のコンポーネントが含まれます。
- Sidebar: ユーザー設定とチャット一覧。
- Main chat area: AI アシスタントとのチャットインターフェース。
- Memory viewer: 保存された事実をリアルタイムで表示するメモリビューア。
メモリの動作を確認するには、次の手順を実行します。
- デフォルトのチャットセッションで自己紹介します。たとえば、"Hello, I am John. I work as a software engineer and love guitar." のように入力します。
- 入力した情報がメモリビューアに表示されます。
- サイドバーの New chat をクリックして、新しいチャットセッションを開始します。
- 新しいチャットセッションで "Who am I?" と質問します。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 アシスタントに "Who am I?" と尋ねることができます。
別のチャットセッションでの会話例:
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 で見る
