このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
概要#
ほとんどのプラグインツールとエンドポイントは、ステートレスな単一ラウンドのインタラクションモデルで動作します:
- リクエストを受信
- データを処理
- レスポンスを返却
- インタラクションを終了
しかし、多くの実際のアプリケーションでは、複数のインタラクション間で状態を維持する必要があります。ここで 永続ストレージ が不可欠になります。
永続ストレージを使用すると、プラグインは同じワークスペース内でインタラクションをまたいでデータを保存でき、ステートフルなアプリケーションやメモリ機能を実現できます。
Dify は現在、プラグイン用のキーバリュー(KV)ストレージシステムを提供しています。今後、開発者のニーズに基づいて、より柔軟で強力なストレージインターフェースを提供する予定です。
ストレージへのアクセス#
すべてのストレージ操作は、プラグインのセッションで利用可能な storage オブジェクトを通じて実行されます:
ストレージ操作#
データの保存#
set メソッドでデータを保存します:
値は bytes 形式である必要があります。これにより、ファイルを含むさまざまな種類のデータを柔軟に保存できます。
例:さまざまなデータ型の保存#
データの取得#
get メソッドで保存されたデータを取得します:
例:データの取得と変換#
データの削除#
delete メソッドで保存されたデータを削除します:
ベストプラクティス#
競合を避け、コードをより保守しやすくするために、キーに一貫した命名規則を作成してください。
キーが見つからない可能性があるため、処理前にデータが存在するかどうかを常に確認してください。
保存前に複雑なオブジェクトをJSONまたは他のシリアライズ形式に変換してください。
潜在的なエラーを適切に処理するために、ストレージ操作をtry/exceptブロックでラップしてください。
一般的なユースケース#
- ユーザー設定:セッション間でユーザーの設定やプリファレンスを保存します。
- 会話履歴:以前の会話からのコンテキストを維持します。
- API トークン:認証トークンを安全に保存します。
- キャッシュデータ:API 呼び出しを減らすために頻繁にアクセスされるデータを保存します。
- ファイルストレージ:ユーザーがアップロードしたファイルや生成されたコンテンツを保存します。