发布于 Sun Jan 18 2026 08:00:00 GMT+0800 (中国标准时间)
迁移DifyOpenAI
从 OpenAI GPTs 迁移到 Dify:把 Custom GPT 搬回自部署
你在 ChatGPT 上做的 Custom GPT 一旦想商业化、要 API、要换模型都受限。本文给出把 GPT Builder 配置迁移到 Dify 的完整步骤。
为什么要迁#
OpenAI Custom GPT 适合个人玩,做严肃产品有 4 大限制:
- 绑死 OpenAI 模型——不能换 Claude / Qwen / DeepSeek
- 没有公开 API——只能在 ChatGPT 里访问,无法嵌入网站 / 客服
- 知识库黑盒——分块策略、向量库都不可控
- 使用数据归 OpenAI——商业敏感场景不合规
Dify 是最直接的开源替代——同样有 Prompt、Knowledge、Actions(工具),但全在你自己服务器上。
Custom GPT 与 Dify Chatbot 对应关系#
| GPT Builder | Dify Chatbot |
|---|---|
| Name + Description | 应用名 + 描述 |
| Instructions | Prompt |
| Conversation starters | 前置示例(用户引导) |
| Knowledge(上传文件) | Knowledge Base(数据集) |
| Capabilities → Web Search | Workflow + 工具调用 |
| Capabilities → Code Interpreter | Code Interpreter 节点 |
| Actions(OpenAPI schema) | 工具 / API 节点 |
迁移步骤#
1. 导出 GPT 配置#
OpenAI 没提供 GPT 导出 API,只能手动:
- 打开你的 GPT → Configure
- 把 Name / Description / Instructions / Conversation starters 各自复制
- 下载 Knowledge 文件
- 复制 Actions 的 OpenAPI schema
2. 在 Dify 新建应用#
- 类型:聊天助手 / Agent / Workflow 任选(推荐 Agent)
- Prompt:粘贴 Instructions,开头加:
你是一个 [GPT 名] 助手。 原 GPT 的 Conversation starters:[列出 starters] - 模型:选 Qwen2.5-72B 或 DeepSeek-V3 或保留 GPT-4
3. 重建知识库#
Dify 知识库的设置比 GPTs 详细:
- 上传文件
- 选分块策略(推荐「父子」)
- 选 Embedding 模型(中文:bge-m3,英文:text-embedding-3-large)
- 在 Chatbot 设置中绑定
4. 重建 Actions#
GPT 的 Actions 是 OpenAPI schema,Dify 的「自定义工具」也是。
# 直接把 GPT 的 OpenAPI 粘进 Dify Tools → Import OpenAPI
openapi: 3.0.0
info:
title: My API
servers:
- url: https://api.example.com
paths:
/lookup:
get:
operationId: lookup
parameters: [...]
导入后,Dify 自动生成可调用工具节点。
5. 测试与对比#
把同一组测试问题分别给 GPT 和 Dify 应用:
| 问题 | GPT 答案 | Dify 答案 | 评估 |
|---|---|---|---|
| … | … | … | … |
通常 Dify 配 Qwen / DeepSeek 后准确率与 GPT-4 在 ±5% 内,月成本降 70-90%。
6. 嵌入到你的产品#
Dify 提供:
- 聊天 Widget(带主题定制)
- OpenAI 兼容 API(替换 base_url 即可让现有代码生效)
- Webhook 集成
// 把原本调 OpenAI 的代码改一行
const client = new OpenAI({
baseURL: 'https://dify.your.com/v1',
apiKey: 'app-xxxxxxxx', // Dify 应用 API Key
});
const response = await client.chat.completions.create({
model: 'gpt-3.5-turbo', // Dify 忽略此字段,用你 Bot 配的模型
messages: [{ role: 'user', content: 'hello' }],
});
一些坑#
- Conversation starters 没法 1:1 迁移:Dify 用
opening_statement,只支持一个开场白,需要在 Prompt 中体现 4 个示例 - GPT 的 Web Search 没有直接替代:用 Dify Workflow + Tavily / Serper 节点替代
- Code Interpreter 需要 Sandbox:Dify 内置 sandbox 需要单独启用(默认关闭),生产环境建议跑独立 Docker
成本对比#
| 项 | GPT Plus + Builder | Dify + Qwen / DeepSeek |
|---|---|---|
| 月费 | $20 + 用量 | $30-50 VPS + $5-50 LLM |
| 可商业化 | 否(个人) | 是 |
| 可换模型 | 否 | 是 |
| 数据自主 | 否 | 是 |