Files
LangBot/ja/develop/plugin-runtime.mdx
T

96 lines
4.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "プラグインランタイム、CLI、SDKのデバッグ"
---
<Info>
プラグインランタイム、CLI、SDKはこちらでオープンソース化されています: https://github.com/langbot-app/langbot-plugin-sdk
</Info>
LangBotはlangbot-plugin-sdkで定義されたエンティティに依存するため、新しいディレクトリでVS Codeを開き、LangBotとlangbot-plugin-sdk(git clone https://github.com/langbot-app/langbot-plugin-sdk)をサブディレクトリとして配置することをお勧めします。ディレクトリ構造は以下の通りです:
```bash
langbot-projects
├── LangBot
├── langbot-plugin-sdk
```
LangBotディレクトリに移動し、依存関係をインストールします:
```bash
cd LangBot
uv sync --dev
```
この時点で、uvは自動的に仮想環境(.venv)を作成します。エディターがこの仮想環境を使用するかどうかを尋ねる場合は、`Yes`を選択してください。
<img
width="600"
src="/images/zh/develop/confirm_venv.png"
/>
プロンプトが表示されない場合は、右下隅からPythonインタープリターのパスをvenv内のインタープリターに手動で設定してください。
次に、VS Code下部のターミナルを開きます。これにより自動的にvenvがアクティブ化されます。
または、この仮想環境を手動でアクティブ化できます:
```bash
# .venvのパスに応じてコマンドを変更してください
source .venv/bin/activate
```
## プラグインランタイムの起動
```bash
uv run --no-sync lbp rt
```
または`python -m langbot_plugin.cli.__init__ rt`で起動してください。
プラグインランタイムは以下のパラメーターを受け入れます:
- `--debug-only`: `data/plugins`ディレクトリのプラグインを起動せず、デバッグ接続を通じたプラグインの読み込みのみを許可します。
- `--ws-debug-port`: リッスンするデバッグポート、デフォルトは`5401`です。
- `--ws-control-port`: リッスンする制御ポート(LangBotメインプログラム接続用)、デフォルトは`5400`です。
- `-s`: `stdio`を使用して制御接続を受け入れます。**本番環境でのみ使用してください**。
- `--skip-deps-check`: すべてのプラグイン依存関係がインストールされていることを確認するため、ランタイムは起動時に毎回すべてのインストール済みプラグインの依存関係をチェックしてインストールします。このパラメーターを使用してこのチェックを無効にします。
### LangBotでローカル修正したlangbot-plugin-sdkを使用する
メッセージエンティティやプラグインデータ定義などを変更した場合、実行時のデータ形式の互換性を確保するために、LangBot環境に更新する必要があります。
**LangBotディレクトリの仮想環境(.venv)がアクティブ化されたターミナル**で、langbot-plugin-sdkディレクトリに移動し、以下を実行します:
```bash
uv pip install .
```
これにより、修正したlangbot-plugin-sdkがLangBotの環境にインストールされます。
### LangBotをこのランタイムに接続する
LangBotの`data/config.yaml`で`plugin.runtime_ws_url`を`ws://localhost:5400/control/ws`に設定します。
```yaml
plugin:
runtime_ws_url: ws://localhost:5400/control/ws
```
そして、LangBotメインプログラムの起動時に起動パラメーター`--standalone-runtime`を追加します(例: `uv run --no-sync main.py --standalone-runtime`)。このコマンドでは必ず`--no-sync`パラメーターを付けてください。これにより、同期したローカルのlangbot-plugin-sdkがリモート版で上書きされないことが保証されます。\
LangBotを再起動すると、WebSocketを使用してこのランタイムに接続されます。
## langbot-plugin-sdkアーキテクチャ
このコードベースには以下が含まれています:
- `langbot_plugin.api`: プラグイン関連のエンティティとAPI定義。
- `langbot_plugin.assets`: プラグインテンプレート。
- `langbot_plugin.cli`: プラグイン開発CLIツール。
- `langbot_plugin.entities`: APIで定義されていないプラグインシステム関連のエンティティ。
- `langbot_plugin.runtime`: プラグインランタイムと基礎通信(stdioおよびwebsocket)の実装。
## `lbp` CLIツール
CLIツールは、ランタイムの起動、プラグインの初期化、プラグインコンポーネント管理、Marketplaceとのインタラクションなどの機能を提供します。
詳細なプログラムエントリポイントについては、[`langbot_plugin.cli.__init__`](https://github.com/langbot-app/langbot-plugin-sdk/blob/main/src/langbot_plugin/cli/__init__.py)を参照してください。