LangBotは、プラグインがさまざまなLangBotモジュールを操作し、メッセージコンテキストを制御するための一連のAPIを提供します。
リクエストAPI
現在処理中のユーザーリクエスト(メッセージ)に対する操作です。EventListenerとCommandコンポーネントでのみ使用可能です。アクセス方法:
EventListenerのイベントハンドラメソッド内: event_context: context.EventContextオブジェクトの内部メソッド
Commandのサブコマンドハンドラメソッド内: context: ExecuteContextオブジェクトの内部メソッド
直接返信メッセージ
現在のリクエストが存在するセッションにメッセージチェーンで直接返信します。
メッセージチェーンの構築方法については、メッセージプラットフォームエンティティを参照してください。
Bot UUIDの取得
現在のリクエストを発行したBotのUUIDを取得します。
リクエスト変数の設定
単一のリクエスト内の一部の情報は、リクエスト変数に保存されます。Difyなどの外部Agent プラットフォームを使用する場合、これらの変数はAgent プラットフォームに明示的に渡されます。
リクエスト変数の取得
単一のリクエスト変数を取得します。
すべてのリクエスト変数の取得
現在のパイプラインに設定されたナレッジベース一覧の取得
現在のリクエストが使用するパイプラインに設定されたナレッジベースの一覧を取得します。
現在のリクエストに対応するパイプラインの Local Agent 設定にバインドされたナレッジベースのみを返します。現在のパイプラインにナレッジベースが設定されていない場合、または Local Agent を使用していない場合は、空のリストが返されます。
LangBot API
これらのAPIは、任意のプラグインコンポーネントで呼び出すことができます。アクセス方法:
- プラグインルートディレクトリの
main.py内: selfオブジェクトの内部メソッド。これらのAPIはすべて、プラグインクラスの親クラスBasePluginによって提供されます。
- 任意のプラグインコンポーネントクラス内:
self.pluginオブジェクトの内部メソッド。
プラグイン設定の取得
プラグイン設定フォーマットはmanifest.yamlに記述でき、ユーザーはLangBotのプラグイン管理でプラグイン設定フォーマットに従って入力する必要があります。プラグインコードはこのAPIを呼び出してプラグイン設定情報を取得できます。
LangBotバージョンの取得
LangBotのバージョン番号を取得します。v<major>.<minor>.<patch>形式の文字列として返されます。
設定済みBotリストの取得
すべてのBot UUIDのリストを返します。
Bot情報の取得
Bot情報を取得します。
プロアクティブメッセージの送信
Bot UUIDとターゲットセッションIDを通じてプロアクティブメッセージを送信します。
メッセージチェーンの構築方法については、メッセージプラットフォームエンティティを参照してください。
設定済みLLMモデルリストの取得
設定されたすべてのLLMモデルのUUIDのリストを返します。
LLMモデルの呼び出し
LLMモデルを呼び出し、LLMメッセージを返します。非ストリーミング。
利用可能な Parser の一覧取得
ホスト上で現在利用可能な Parser プラグインを列挙します。MIME タイプで絞り込むこともできます。
利用可能なツール一覧を取得
現在の LangBot インスタンスで利用可能なすべてのツール(プラグインツールおよび MCP ツール)を取得します。
ツール詳細を取得
特定のツールの詳細情報を取得します。
ツールを呼び出す
指定されたツールを呼び出します。
ツール名は metadata.name(例: echo_tool、get_weather_alerts)を使用します。作者やプラグイン名のプレフィックスは不要です。
プラグイン永続データの設定
プラグインデータを永続的に保存します。このインターフェースを通じて保存されたデータは、このプラグインのみがアクセスできます。値は手動でbytesに変換する必要があります。
プラグイン永続データの取得
すべてのプラグイン永続データキーの取得
プラグイン永続データの削除
ワークスペース永続データの取得
このインターフェースを通じて保存されたデータは、すべてのプラグインがアクセスできます。値は手動でbytesに変換する必要があります。
ワークスペース永続データの取得
すべてのワークスペース永続データキーの取得
ワークスペース永続データの削除
プラグインファイル型設定フィールドデータの取得
これはfileまたはarray[file型の設定フィールドと組み合わせて使用します。
ナレッジベース API
これらのAPIは任意のコンポーネントからself.plugin経由でアクセスでき、パイプライン制限なしにLangBotインスタンス内のすべてのナレッジベースの一覧取得と検索が可能です。
すべてのナレッジベースの一覧取得
LangBotインスタンスで利用可能なすべてのナレッジベースを一覧取得します。
ナレッジベースからの検索
任意のナレッジベースから関連ドキュメントを検索します。
これらのAPIはquery_idを必要とせず、任意のコンポーネント(Toolコンポーネントを含む)で使用できます。現在のパイプライン設定に制限されることなく、すべてのナレッジベースにアクセスできます。
RAG API
これらのAPIはKnowledgeEngineコンポーネントがLangBotホストの埋め込みモデル、ベクトルデータベース、ファイルストレージにアクセスするために使用できます。アクセス方法:
KnowledgeEngineコンポーネントクラス内: self.pluginオブジェクトの内部メソッド。
埋め込みモデルの呼び出し
ホストに設定された埋め込みモデルを使用してテキストのベクトルを生成します。
ベクトルの書き込み
ホストのベクトルデータベースにベクトルを書き込みます。
ベクトル検索
ホストのベクトルデータベースで類似ベクトルを検索します。
vector_searchが返す各結果はdictで、id(ベクトルID)、score(距離スコア)、metadata(upsert時に提供したメタデータ)の3つのフィールドを含みます。検索結果にテキスト内容が必要な場合は、取り込み時にmetadataにテキストを保存してください。
ベクトルの削除
ホストのベクトルデータベースからベクトルを削除します。
filtersパラメータはChromaスタイルのwhere構文によるメタデータフィルタリングをサポートしています。複数のトップレベルキーはAND条件として結合されます。サポートされる演算子:$eq、$ne、$gt、$gte、$lt、$lte、$in、$nin。注意: Chroma、Qdrant、SeekDBは完全なメタデータを保存し、任意のフィールドでフィルタリングできます。MilvusとpgvectorはDB側にtext、file_id、chunk_uuidのみ保存しており、それ以外のフィールドでのフィルタリングは無視されます。
ホストストレージからアップロードされたファイルの内容を取得します。