flag92 flag92
博客
发布于 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 大限制:

  1. 绑死 OpenAI 模型——不能换 Claude / Qwen / DeepSeek
  2. 没有公开 API——只能在 ChatGPT 里访问,无法嵌入网站 / 客服
  3. 知识库黑盒——分块策略、向量库都不可控
  4. 使用数据归 OpenAI——商业敏感场景不合规

Dify 是最直接的开源替代——同样有 Prompt、Knowledge、Actions(工具),但全在你自己服务器上。

Custom GPT 与 Dify Chatbot 对应关系#

GPT BuilderDify Chatbot
Name + Description应用名 + 描述
InstructionsPrompt
Conversation starters前置示例(用户引导)
Knowledge(上传文件)Knowledge Base(数据集)
Capabilities → Web SearchWorkflow + 工具调用
Capabilities → Code InterpreterCode 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' }],
});

一些坑#

  1. Conversation starters 没法 1:1 迁移:Dify 用 opening_statement,只支持一个开场白,需要在 Prompt 中体现 4 个示例
  2. GPT 的 Web Search 没有直接替代:用 Dify Workflow + Tavily / Serper 节点替代
  3. Code Interpreter 需要 Sandbox:Dify 内置 sandbox 需要单独启用(默认关闭),生产环境建议跑独立 Docker

成本对比#

GPT Plus + BuilderDify + Qwen / DeepSeek
月费$20 + 用量$30-50 VPS + $5-50 LLM
可商业化否(个人)
可换模型
数据自主

站内搜索

按 ⌘ K 随时唤起