逆呼び出しノードとは、プラグインがDify内のChatflow/Workflowアプリケーション内部のノードにアクセスできる機能を指します。
Workflow
内の ParameterExtractor(パラメータ抽出器)
と QuestionClassifier(問題分類器)
ノードは、より複雑なプロンプトとコードロジックをカプセル化しており、LLM を通じて多くのハードコーディングでは解決困難なタスクを完了することができます。プラグインはこれら2つのノードを呼び出すことができます。
パラメータ抽出器ノードの呼び出し;
エントリーポイント
self.session.workflow_node.parameter_extractor
インターフェース
def invoke(
self,
parameters: list[ParameterConfig],
model: ModelConfig,
query: str,
instruction: str = "",
) -> NodeResponse
pass
ここで、parameters
は抽出する必要のあるパラメータのリストであり、model
は LLMModelConfig
仕様に準拠し、query
はパラメータを抽出する元のテキストであり、instruction
はLLMに追加で与える必要のある可能性のある指示です。NodeResponse
の構造については、こちらのドキュメントを参照してください。
使用例
会話の中から特定の人物名を抽出したい場合は、以下のコードを参照してください。
from collections.abc import Generator
from dify_plugin.entities.tool import ToolInvokeMessage
from dify_plugin import Tool
from dify_plugin.entities.workflow_node import ModelConfig, ParameterConfig
class ParameterExtractorTool(Tool):
def _invoke(
self, tool_parameters: dict
) -> Generator[ToolInvokeMessage, None, None]:
response = self.session.workflow_node.parameter_extractor.invoke(
parameters=[
ParameterConfig(
name="name",
description="name of the person",
required=True,
type="string",
)
],
model=ModelConfig(
provider="langgenius/openai/openai",
name="gpt-4o-mini",
completion_params={},
),
query="My name is John Doe",
instruction="Extract the name of the person",
)
yield self.create_text_message(response.outputs["name"])
問題分類器ノードの呼び出し
エントリーポイント
self.session.workflow_node.question_classifier
インターフェース
def invoke(
self,
classes: list[ClassConfig],
model: ModelConfig,
query: str,
instruction: str = "",
) -> NodeResponse:
pass
このインターフェースパラメータは ParameterExtractor
と同じで、最終的な戻り結果は NodeResponse.outputs['class_name']
に格納されます。
このページを編集する | 問題を報告する
Responses are generated using AI and may contain mistakes.