08-模型接入与配置

第八章:模型接入与配置

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 和一个国产模型
    • 对比不同模型在相同任务上的表现
    • 配置负载均衡
  2. 思考题

    • 如何选择适合业务场景的模型?
    • 如何在质量和成本之间取得平衡?
    • 本地部署模型有哪些优缺点?

下一章预告:第九章将介绍 API 集成与发布,包括应用发布方式、API 调用和安全管理。

posted @ 2025-11-29 13:06  我才是银古  阅读(0)  评论(0)    收藏  举报