プロセスの設計
このスキルを使用して、「テキスト内の単語をカウントするプロセスを作って」といった要求をステップ計画に変換します。その後、create-process スキルで実装を進めてください。
パッケージは process_package/ にあります。親クラスは process_package/toy_process/process.py です。
1. ステップを列挙する
目標を、それぞれ動詞句で表される小さなアクションの順序付きリストとして記述します。
WordReport
1. テキストをクリーニング
2. 単語をカウント
3. レポートを構築
各ステップは1つの処理を行い、その結果を共有の context ディクショナリに格納します。
2. 各ステップの種類を決定する
各ステップについて、以下を選択します。
| メソッドステップ を使用する場合 | サブプロセスステップ を使用する場合 |
|---|---|
| 1つの小さなアクションである | 複数のアクションがまとまっている |
| このプロセスだけで使用される | 他のプロセスでも再利用できる |
| 独自の設定を必要としない | 独自のパラメータを持つ |
サブプロセスはさらにサブプロセスを含むことができます。ネストは浅く保ち、ほとんどのおもちゃプロセスでは2レベルで十分です。
3. 計画を文書化する
各プロセス(親プロセスとすべてのサブプロセス)について、以下を記録します。
- クラス名:
CamelCaseの名詞句または動詞句。例:CleanText。 - パラメータ: 名前 → デフォルト値。これらは
set_parametersに記述します。 - ステップ: 順序通り。メソッドは
snake_case、サブプロセスはクラス名を使用します。 - コンテキストキー: 各ステップが読み書きするもの。
計画の例:
CleanText パラメータ: lowercase=True
- strip_punctuation 読み: text 書き: text
- normalise_case 読み: text 書き: text
WordReport パラメータ: text="", lowercase=True, top_n=3
- load_text 読み: - 書き: text
- CleanText(lowercase=...) (サブプロセス)
- count_words 読み: text 書き: counts
- build_report 読み: counts 書き: report
4. 計画を確認する
- ステップが読み取るすべてのコンテキストキーが、以前のステップによって書き込まれていること。
- ステップが使用するすべてのパラメータが、そのプロセスのパラメータに含まれていること。
- サブプロセスには、親からキーワード引数としてパラメータが渡されること(例:
CleanText(lowercase=self.params["lowercase"]))。
要求が曖昧だった場合は、計画をユーザーに表示し、その後 create-process スキルに従ってください。