mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
132 lines
7.7 KiB
Plaintext
132 lines
7.7 KiB
Plaintext
---
|
||
title: "LLM"
|
||
description: "テキスト生成と分析のための言語モデルを起動"
|
||
icon: "brain"
|
||
---
|
||
|
||
<Note> ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/use-dify/nodes/llm)を参照してください。</Note>
|
||
|
||
LLMノードは大規模言語モデルを呼び出してテキスト、画像、ドキュメントを処理します。設定されたモデルにプロンプトを送信し、その応答を取得します。構造化出力、コンテキスト管理、マルチモーダル入力をサポートしています。
|
||
|
||
<Frame caption="LLMノード設定インターフェース">
|
||
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/85730fbfa1d441d12d969b89adf2670e.png" alt="LLM Node Overview" />
|
||
</Frame>
|
||
|
||
<Info>
|
||
LLMノードを使用する前に、**システム設定 → モデルプロバイダー**で少なくとも1つのモデルプロバイダーを設定してください。
|
||
</Info>
|
||
|
||
## モデル選択とパラメータ
|
||
|
||
設定したモデルプロバイダーから任意のモデルを選択できます。異なるモデルはそれぞれ異なるタスクに適しています。GPT-4とClaude 3.5は複雑な推論を得意としますがコストが高く、GPT-3.5 Turboは機能と価格のバランスが取れています。ローカル展開には、Ollama、LocalAI、Xinferenceを使用してください。
|
||
|
||
<Frame caption="モデル選択とパラメータ設定">
|
||
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/43f81418ea70d4d79e3705505e777b1b.png" alt="LLM Node Configuration" />
|
||
</Frame>
|
||
|
||
モデルパラメータは応答生成を制御します。**温度**は0(決定的)から1(創造的)の範囲です。**Top P**は確率によって単語選択を制限します。**頻度ペナルティ**は繰り返しを減らします。**存在ペナルティ**は新しいトピックを促進します。プリセットも使用できます:**精密**、**バランス**、**創造的**。
|
||
|
||
## プロンプト設定
|
||
|
||
インターフェースはモデルタイプに基づいて適応します。チャットモデルではメッセージロール(**システム**は動作用、**ユーザー**は入力用、**アシスタント**は例用)を使用し、補完モデルでは単純なテキスト継続を使用します。
|
||
|
||
プロンプト内でワークフロー変数を二重中括弧で参照します:`{{variable_name}}`。変数はモデルに到達する前に実際の値で置き換えられます。
|
||
|
||
```text
|
||
System: あなたは技術文書の専門家です。
|
||
User: {{user_input}}
|
||
```
|
||
|
||
## コンテキスト変数
|
||
|
||
コンテキスト変数はソース帰属を保持しながら外部知識を注入します。これにより、大規模言語モデルがあなたの特定のドキュメントを使用して質問に答えるRAGアプリケーションが可能になります。
|
||
|
||
<Frame caption="RAGアプリケーションでのコンテキスト変数の使用">
|
||
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/5aefed96962bd994f8f05bac96b11e22.png" alt="Context Variables" />
|
||
</Frame>
|
||
|
||
知識検索ノードの出力をLLMノードのコンテキスト入力に接続し、次のように参照します:
|
||
|
||
```text
|
||
このコンテキストのみを使用して回答してください:
|
||
{{knowledge_retrieval.result}}
|
||
|
||
質問:{{user_question}}
|
||
```
|
||
|
||
知識検索からのコンテキスト変数を使用する場合、Difyは自動的に引用を追跡するため、ユーザーは情報源を確認できます。
|
||
|
||
## 構造化出力
|
||
|
||
プログラムで使用するために、JSONなどの特定のデータ形式での応答をモデルに強制します。3つの方法で設定できます:
|
||
|
||
<Tabs>
|
||
<Tab title="ビジュアルエディター">
|
||
シンプルな構造のためのユーザーフレンドリーなインターフェース。名前とタイプでフィールドを追加し、必須フィールドをマークし、説明を設定します。エディターは自動的にJSONスキーマを生成します。
|
||
</Tab>
|
||
|
||
<Tab title="JSONスキーマ">
|
||
ネストされたオブジェクト、配列、検証ルールを含む複雑な構造のためにスキーマを直接記述します。
|
||
|
||
```json
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"sentiment": {
|
||
"type": "string",
|
||
"enum": ["positive", "negative", "neutral"]
|
||
}
|
||
},
|
||
"required": ["sentiment"]
|
||
}
|
||
```
|
||
</Tab>
|
||
|
||
<Tab title="AI生成">
|
||
平易な言語でニーズを説明し、AIにスキーマを生成させます。
|
||
</Tab>
|
||
</Tabs>
|
||
|
||
<Warning>
|
||
ネイティブJSON対応のモデルは構造化出力を確実に処理します。その他のモデルについては、Difyがプロンプトにスキーマを含めますが、結果は異なる場合があります。
|
||
</Warning>
|
||
|
||
## メモリとファイル処理
|
||
|
||

|
||
メモリを有効にすると、チャットフロー会話内の複数のLLM呼び出しでコンテキストを維持できます。有効にすると、以前のインタラクションがフォーマットされたユーザー - アシスタント出力として後続のプロンプトに含まれます。`USER`テンプレートを編集することで、ユーザープロンプトに入力される内容をカスタマイズできます。メモリはノード固有であり、異なる会話間では持続しません。
|
||
|
||
**ファイル処理**では、マルチモーダルモデル用にプロンプトにファイル変数を追加します。GPT-4Vは画像を、ClaudeはPDFを直接処理しますが、他のモデルでは前処理が必要な場合があります。
|
||
|
||
### ビジョン機能設定
|
||
|
||
画像を処理する際、詳細レベルを制御できます:
|
||
- **高詳細** - 複雑な画像でより良い精度を提供しますが、より多くのトークンを使用します
|
||
- **低詳細** - シンプルな画像でより少ないトークンでより高速な処理
|
||
|
||
ビジョン機能のデフォルト変数セレクターは`userinput.files`で、ユーザー入力ノードからファイルを自動的に取得します。
|
||
|
||
<Frame caption="マルチモーダル大規模言語モデルでのファイル処理">
|
||
<img src="https://assets-docs.dify.ai/2024/11/05b3d4a78038bc7afbb157078e3b2b26.png" alt="File Processing" />
|
||
</Frame>
|
||
|
||
## Jinja2テンプレートサポート
|
||
|
||
LLMプロンプトは高度な変数処理のためにJinja2テンプレートをサポートしています。Jinja2モード(`edition_type: "jinja2"`)を使用すると、次のことができます:
|
||
|
||
```jinja
|
||
{% for item in search_results %}
|
||
{{ loop.index }}. {{ item.title }}: {{ item.content }}
|
||
{% endfor %}
|
||
```
|
||
|
||
Jinja2変数は通常の変数置換とは別に処理され、プロンプト内でループ、条件文、複雑なデータ変換が可能になります。
|
||
|
||
## ストリーミング出力
|
||
|
||
LLMノードはデフォルトでストリーミング出力をサポートしています。各テキストチャンクは`RunStreamChunkEvent`として生成され、リアルタイムの応答表示が可能になります。ファイル出力(画像、ドキュメント)はストリーミング中に自動的に処理され保存されます。
|
||
|
||
## エラーハンドリング
|
||
|
||
失敗したLLM呼び出しのリトライ動作を設定します。最大リトライ回数、リトライ間隔、バックオフ乗数を設定します。リトライが十分でない場合のデフォルト値、エラールーティング、代替モデルなどのフォールバック戦略を定義します。
|