このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
Dify の真の価値は、どんなに複雑なアイデアでも簡単に構築、デプロイ、スケールできることにあります。高速プロトタイピング、スムーズなイテレーション、あらゆるレベルでの信頼性の高いデプロイのために構築されています。
まずは、アプリケーションへの信頼性の高い LLM 統合を学びましょう。このガイドでは、ユーザーの質問を分類し、LLM を使用して直接応答し、国固有の豆知識で応答を強化する簡単なチャットボットを構築します。
ステップ 1:新しいワークフローを作成(2 分)
- スタジオ > ワークフロー > 空白から作成 > オーケストレート > 新しいチャットフロー > 作成 へ移動
ステップ 2:ワークフローノードを追加(6 分)
任意の変数を参照したい場合は、まず { または / を入力すると、ワークフローで使用可能なさまざまな変数が表示されます。
1. LLM ノードと出力:質問を理解して回答
LLM ノードは言語モデルにプロンプトを送信し、ユーザー入力に基づいて応答を生成します。API 呼び出し、レート制限、インフラストラクチャの複雑さを抽象化するので、ロジックの設計に集中できます。
LLM ノードを作成
ノードを追加 ボタンを使用して LLM ノードを作成し、開始ノードに接続
システムプロンプトを設定
システムプロンプトフィールドに以下を貼り付け:ユーザーは国に関する質問をします。質問は {{sys.query}} です
タスク:
1. 言及された国を特定する。
2. 質問を明確に言い換える。
3. 一般的な知識を使って質問に答える。
次のJSON形式で応答してください:
{
"country": "<国名>",
"question": "<言い換えた質問>",
"answer": "<質問への直接的な回答>"
}
構造化出力を有効化
構造化出力を有効にする により、LLM が返すものを簡単に制御し、正確なデータ抽出や条件ロジックでのダウンストリーム使用のために一貫した機械可読出力を確保できます。
- 出力変数の構造化を ON に切り替え >
設定 をクリックして JSONからインポート をクリック
- 貼り付け:
{
"country": "string",
"question": "string",
"answer": "string"
}
2. コードブロック:豆知識を取得
コード ノードはコードを使用してカスタムロジックを実行します。必要な場所に正確にコードを注入できます(ビジュアルワークフロー内で)。バックエンド全体を配線する必要がありません。
コードノードを作成
ノードを追加 ボタンを使用して コード ノードを作成し、LLM ブロックに接続
入力変数を設定
1 つの 入力変数 名を “country” に変更し、変数を structured_output > country に設定
Python コードを追加
このコードを PYTHON3 に貼り付け:def main(country: str) -> dict:
country_name = country.lower()
fun_facts = {
"japan": "日本には500万台以上の自動販売機があります。",
"france": "フランスは世界で最も訪問者が多い国です。",
"italy": "イタリアは他のどの国よりも多くのユネスコ世界遺産を持っています。"
}
fun_fact = fun_facts.get(country_name, f"{country.title()}に関する豆知識はありません。")
return {"fun_fact": fun_fact}
出力変数の名前を変更
より良いラベル付けのため、出力変数 result を fun_fact に変更
3. 回答ノード:ユーザーへの最終回答
回答 ノードはクリーンな最終出力を作成して返します。
回答ノードを作成
ノードを追加 ボタンを使用して 回答 ノードを作成
回答フィールドを設定
回答フィールドに貼り付け:Q: {{ structured_output.question }}
A: {{ structured_output.answer }}
豆知識:{{ fun_fact }}
ワークフローの終了:
ステップ 3:ボットをテスト(3 分)
プレビュー をクリックして、次の質問をしてみましょう:
- “フランスの首都は何ですか?”
- “日本料理について教えてください”
- “イタリアの文化について説明してください”
- その他の質問
ボットが期待通りに動作することを確認してください!
ボットが完成しました!
このガイドでは、インフラストラクチャを再発明することなく、言語モデルを確実かつスケーラブルに統合する方法を示しました。Dify のビジュアルワークフローとモジュラーノードにより、より速く構築するだけでなく、LLM 駆動アプリのためのクリーンでプロダクション対応のアーキテクチャを採用しています。