第八章:模型接入與配置

8.1 模型概述

8.1.1 Dify 與模型的關係

Dify 是基於大語言模型(LLM)的 AI 應用開發平台,模型是 Dify 的核心驅動力。Dify 本身不提供模型,而是作為一個統一的接口層,讓你可以:

  • 接入數百種不同的模型
  • 統一管理模型配置
  • 靈活切換和對比模型
  • 控制模型調用成本

8.1.2 為什麼需要模型管理

多模型支持
不同的任務可能需要不同的模型,統一的管理界面讓切換更便捷。

成本控制
跟蹤和優化模型調用成本,選擇性價比最優的方案。

靈活性
可以隨時更換模型供應商,不被單一供應商鎖定。

安全性
集中管理 API 密鑰,保護敏感信息。

8.1.3 模型類型分類

在 Dify 中,模型按使用場景分為四類:

類型

用途

示例模型

系統推理模型

應用核心推理

GPT-4, Claude 3

Embedding 模型

文本向量化

text-embedding-3

Rerank 模型

檢索結果重排序

Cohere Rerank

語音模型

語音轉文字

Whisper

8.2 模型供應商

8.2.1 主流模型供應商

OpenAI

公司: OpenAI
主要模型: GPT-4, GPT-3.5-turbo
特點:
  - 最廣泛使用的商業模型
  - 優秀的指令跟隨能力
  - 支持函數調用
獲取 API Key: platform.openai.com

Anthropic

公司: Anthropic
主要模型: Claude 3 (Opus, Sonnet, Haiku)
特點:
  - 強大的長文本處理能力
  - 優秀的推理和分析能力
  - 注重安全和可控性
獲取 API Key: console.anthropic.com

Azure OpenAI

公司: Microsoft Azure
主要模型: GPT-4, GPT-3.5-turbo (Azure 部署版)
特點:
  - 企業級服務保障
  - 合規性認證
  - 與 Azure 生態集成
獲取方式: Azure Portal

8.2.2 國產模型供應商

百度文心一言

公司: 百度
主要模型: ERNIE-4.0, ERNIE-Bot
特點:
  - 中文理解能力強
  - 本土化服務
  - 多模態支持
獲取 API Key: cloud.baidu.com/product/wenxinworkshop

阿里通義千問

公司: 阿里雲
主要模型: qwen-turbo, qwen-plus, qwen-max
特點:
  - 優秀的中文能力
  - 長上下文支持
  - 與阿里雲集成
獲取 API Key: dashscope.aliyun.com

訊飛星火

公司: 科大訊飛
主要模型: Spark 3.5, Spark 3.0
特點:
  - 語音能力強
  - 多輪對話優化
  - 行業解決方案
獲取 API Key: xinghuo.xfyun.cn

智譜 AI

公司: 智譜 AI
主要模型: GLM-4, ChatGLM
特點:
  - 開源與商用結合
  - 中英雙語能力
  - 工具調用支持
獲取 API Key: open.bigmodel.cn

8.2.3 開源模型部署

Hugging Face

平台: Hugging Face Inference API
主要模型: Llama, Mistral, Mixtral 等
特點:
  - 海量開源模型
  - 按需調用
  - 社區活躍

本地部署方案

方案

特點

適用場景

Ollama

簡單易用

本地開發測試

vLLM

高性能推理

生產環境

LocalAI

OpenAI 兼容

本地替代

Xinference

多框架支持

靈活部署

8.3 模型接入配置

8.3.1 進入模型配置

  1. 登錄 Dify 控制枱
  2. 點擊左下角"設置"
  3. 選擇"模型供應商"

8.3.2 接入 OpenAI

配置步驟

  1. 在模型供應商列表中找到 OpenAI
  2. 點擊"設置"按鈕
  3. 輸入 API Key
  4. 點擊"保存"

高級配置

API Key: sk-xxxxxxxxxxxxxxxx
API Base URL: https://api.openai.com/v1  # 可選,用於代理
組織 ID: org-xxxxx  # 可選

可用模型

  • gpt-4-turbo
  • gpt-4
  • gpt-3.5-turbo
  • text-embedding-3-small
  • text-embedding-3-large
  • whisper-1

8.3.3 接入 Anthropic

配置步驟

  1. 找到 Anthropic 供應商
  2. 輸入 API Key
  3. 保存配置

可用模型

  • claude-3-opus
  • claude-3-sonnet
  • claude-3-haiku
  • claude-2.1

8.3.4 接入 Azure OpenAI

配置步驟

API Base URL: https://your-resource.openai.azure.com
API Key: xxxxxxxxxx
API Version: 2024-02-15-preview
部署名稱: your-deployment-name

注意事項

  • 需要先在 Azure Portal 創建資源
  • 每個模型需要單獨部署
  • 部署名稱需要手動指定

8.3.5 接入國產模型

百度文心

API Key: xxxxxxxxxxx
Secret Key: xxxxxxxxxxx

阿里通義

API Key: sk-xxxxxxxxxx

訊飛星火

App ID: xxxxxxxx
API Key: xxxxxxxxxx
API Secret: xxxxxxxxxxxx

8.3.6 接入本地模型

Ollama 配置

API Base URL: http://localhost:11434
模型名稱: llama2, mistral, mixtral 等

啓動 Ollama

# 安裝 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 運行模型
ollama run llama2

# Ollama 服務地址
http://localhost:11434

Xinference 配置

API Base URL: http://localhost:9997
模型名稱: 根據部署的模型確定

8.4 模型參數配置

8.4.1 核心參數説明

Temperature(温度)

範圍: 0.0 - 2.0
默認: 1.0
作用: 控制輸出的隨機性
  - 低值(0.1-0.3): 輸出更確定、更一致
  - 中值(0.5-0.7): 平衡創造性和一致性
  - 高值(0.8-1.5): 輸出更多樣、更有創意
推薦設置:
  - 代碼生成: 0.1-0.3
  - 客服回答: 0.3-0.5
  - 創意寫作: 0.7-1.0

Top P(核採樣)

範圍: 0.0 - 1.0
默認: 1.0
作用: 控制詞彙選擇的範圍
  - 低值(0.5): 只選擇概率最高的詞
  - 高值(0.9): 允許選擇更多詞彙
注意: 通常不與 Temperature 同時調整

Max Tokens(最大輸出長度)

作用: 限制模型輸出的最大 Token 數
設置建議:
  - 簡短回答: 256-512
  - 一般對話: 1024-2048
  - 長文生成: 4096+
注意: 更長的輸出需要更多成本

Presence Penalty(存在懲罰)

範圍: -2.0 - 2.0
默認: 0
作用: 懲罰已出現的詞彙
  - 正值: 鼓勵討論新話題
  - 負值: 允許重複話題

Frequency Penalty(頻率懲罰)

範圍: -2.0 - 2.0
默認: 0
作用: 懲罰頻繁出現的詞彙
  - 正值: 減少重複用詞
  - 負值: 允許重複用詞

8.4.2 參數調優建議

按場景調參

場景

Temperature

Top P

Max Tokens

代碼生成

0.2

0.9

2048

客服對話

0.5

0.9

512

創意寫作

0.8

0.95

4096

數據分析

0.3

0.9

2048

翻譯

0.3

0.9

2048

摘要

0.5

0.9

1024

8.4.3 模型切換

在應用中切換模型

  1. 進入應用編排界面
  2. 點擊模型選擇下拉框
  3. 選擇目標模型
  4. 調整相應參數
  5. 測試效果

模型對比測試

  1. 準備測試用例
  2. 在相同輸入下對比不同模型
  3. 記錄響應質量、速度和成本
  4. 選擇最優方案

8.5 默認模型設置

8.5.1 設置默認模型

在"設置" → "模型供應商"中配置:

系統推理模型

  • 用於新建應用的默認推理模型
  • 用於系統功能(對話命名、建議問題等)

Embedding 模型

  • 用於知識庫向量化的默認模型

8.5.2 默認配置建議

系統推理模型: gpt-3.5-turbo
  # 性價比高,適合大多數場景
  
Embedding 模型: text-embedding-3-small
  # 成本較低,效果良好
  
備選方案:
  推理: gpt-4-turbo(需要更強能力時)
  Embedding: text-embedding-3-large(需要更高質量時)

8.6 負載均衡

8.6.1 什麼是負載均衡

當需要處理大量請求時,可以配置多個相同模型的 API Key,實現:

  • 提高併發能力
  • 避免單個 Key 的速率限制
  • 故障轉移

8.6.2 配置負載均衡

步驟

  1. 進入模型配置
  2. 點擊"負載均衡"
  3. 添加多個 API Key
  4. 配置負載策略

負載策略

輪詢(Round Robin): 按順序依次使用
權重(Weighted): 按權重比例分配
最少連接: 選擇當前連接最少的

8.6.3 配置示例

模型: gpt-4-turbo
負載均衡:
  - API Key: sk-key1
    權重: 50
    狀態: 啓用
  - API Key: sk-key2
    權重: 30
    狀態: 啓用
  - API Key: sk-key3
    權重: 20
    狀態: 備用

8.7 成本控制

8.7.1 模型定價瞭解

OpenAI 定價示例(價格可能變化):

模型

輸入

輸出

gpt-4-turbo

$10/1M tokens

$30/1M tokens

gpt-3.5-turbo

$0.5/1M tokens

$1.5/1M tokens

text-embedding-3-small

$0.02/1M tokens

-

8.7.2 成本優化策略

選擇合適的模型

  • 簡單任務用 gpt-3.5-turbo
  • 複雜任務才用 gpt-4

優化提示詞

  • 精簡提示詞減少輸入 Token
  • 明確輸出格式減少輸出 Token

合理設置參數

  • 限制 max_tokens
  • 避免不必要的長輸出

使用緩存

  • 相似問題複用答案
  • 減少重複調用

8.7.3 用量監控

在 Dify 中查看用量:

  1. 進入應用詳情
  2. 查看"監控"面板
  3. 分析 Token 消耗趨勢

監控指標

  • 總 Token 消耗
  • 平均每次調用 Token
  • 成本趨勢
  • 高消耗請求

8.8 Embedding 模型配置

8.8.1 Embedding 模型的作用

Embedding 模型用於將文本轉換為向量表示:

  • 知識庫文檔向量化
  • 用户查詢向量化
  • 相似度計算

8.8.2 主流 Embedding 模型

OpenAI

text-embedding-3-large:
  維度: 3072
  效果: 最佳
  成本: 較高
  
text-embedding-3-small:
  維度: 1536
  效果: 良好
  成本: 較低

開源方案

BGE(中文):
  模型: bge-large-zh
  維度: 1024
  特點: 中文效果好
  
Jina Embeddings:
  模型: jina-embeddings-v2
  維度: 768
  特點: 多語言支持

8.8.3 選擇建議

場景

推薦模型

原因

英文為主

text-embedding-3-small

性價比高

中文為主

bge-large-zh

中文優化

高精度要求

text-embedding-3-large

效果最好

預算有限

開源模型本地部署

成本最低

8.9 Rerank 模型配置

8.9.1 Rerank 的作用

Rerank 模型用於對檢索結果進行重排序:

  • 提高檢索準確率
  • 過濾不相關結果
  • 優化答案質量

8.9.2 配置 Rerank

Cohere Rerank

提供商: Cohere
模型: rerank-multilingual-v2.0
配置:
  API Key: your-cohere-api-key

Jina Reranker

提供商: Jina AI
模型: jina-reranker-v1
配置:
  API Key: your-jina-api-key

8.9.3 使用建議

適用場景

  • 知識庫檢索質量要求高
  • 檢索結果需要精確排序
  • 願意承擔額外成本

配置位置

  • 在知識庫檢索設置中啓用
  • 在工作流知識檢索節點中配置

8.10 最佳實踐

8.10.1 模型選擇原則

按任務選擇

簡單對話: gpt-3.5-turbo
複雜推理: gpt-4
代碼生成: gpt-4 或 Claude 3
長文處理: Claude 3
中文任務: 國產模型或專門優化的模型

按成本選擇

開發測試: gpt-3.5-turbo
生產環境: 根據質量要求選擇
高價值場景: 選擇最優模型

8.10.2 安全建議

API Key 管理

  • 定期輪換 Key
  • 不在代碼中硬編碼
  • 使用環境變量

訪問控制

  • 限制 Key 的訪問 IP
  • 設置使用配額
  • 監控異常調用

8.10.3 可靠性保障

故障轉移

  • 配置備用模型
  • 使用負載均衡
  • 監控模型可用性

超時處理

  • 設置合理的超時時間
  • 配置重試策略
  • 提供降級方案

8.11 本章小結

通過本章的學習,你應該掌握:

  1. 模型分類:瞭解不同類型模型的用途
  2. 供應商接入:掌握各主流供應商的接入方法
  3. 參數配置:理解核心參數的含義和調優方法
  4. 成本控制:學會監控和優化模型使用成本
  5. 高可用:瞭解負載均衡和故障轉移配置

8.12 思考與練習

  1. 實踐練習
  • 接入 OpenAI 和一個國產模型
  • 對比不同模型在相同任務上的表現
  • 配置負載均衡
  1. 思考題
  • 如何選擇適合業務場景的模型?
  • 如何在質量和成本之間取得平衡?
  • 本地部署模型有哪些優缺點?

下一章預告:第九章將介紹 API 集成與發佈,包括應用發佈方式、API 調用和安全管理。