找回密码
 立即注册
首页 业界区 安全 dify工作流转换openai

dify工作流转换openai

陈兰芳 2025-6-1 18:55:10
一、概述

dify工作流有自己的api接口,但是返回格式不是标准的openai格式,因此无法对接一些标准的AI客户端。
目前解决方案有2个:
1. 新版本的dify,有提供插件OpenAI Compatible Dify,可以进行转换。但是有2个缺点:
     1.1 只支持chat类型的应用,Workflow(工作流)是不支持的。
      1.2 插件提供的接口,可以直接调用,不需要api key也可以调用,不安全。
2. 通过Dify2OpenAI,就可以将dify工作流转换为标准的openai格式。可以同时支持Chat、Completion、Agent 和 Workflow bots API
二、Dify2OpenAI

简介

Dify2OpenAI 是一个将 Dify 应用程序转换为 OpenAI API 接口的网关服务,使您可以使用 OpenAI API 兼容的方式访问 Dify 的 LLM、知识库、工具和工作流程。
特征


  • 将 Dify API 转换为 OpenAI API
  • 支持流式传输和阻止
  • 在 dify 上支持 Chat、Completion、Agent 和 Workflow bots API
支持


  • 图像支持
  • 变量支持
  • 持续对话
  • Workflow Bot
  • Streaming & Blocking
  • Agent & Chat bots
 
官方github地址:https://github.com/onenov/Dify2OpenAI
三、Dify2OpenAI安装

github上有安装教程,安装最新版本的Node,最后npm run start就可以启动了。
但是这种启动方式,随时会中断。系统重启后,也不会自动起来。
我想使用docker方式启动,但是官方没有提供镜像。
怎么办?简单,自己做。没有条件,创造条件也要上
 
新建文件 Dockerfile
  1. cd /data
  2. # 下载项目
  3. git clone https://github.com/onenov/Dify2OpenAI.git
  4. cd Dify2OpenAI
  5. vi Dockerfile
复制代码
 内容如下:
  1. FROM node:23.11.0-alpine3.21
  2. ADD . /app
  3. RUN cd /app && npm install
  4. WORKDIR /app
  5. EXPOSE 3099
  6. ENTRYPOINT ["npm","run","start"]
复制代码
注意:这里的基础镜像,直接从dockerhub上面找了一个最新版本的node
 
构建镜像
  1. docker build -t dify2opai:v1 .
复制代码
 
新建文件docker-compose.yaml
内容如下:
  1. services:
  2.   dify2openai:
  3.     image: dify2openai:v1
  4.     container_name: dify2openai
  5.     ports:
  6.       - "3099:3099"
  7.     restart: always
复制代码
启动
  1. docker-compose up -d
复制代码
 
访问页面
http://ip地址:3099
效果如下:
1.png

 四、dify对接Dify2OpenAI

登录到dify,找到一个chatflow类型的应用,参考链接:https://www.cnblogs.com/xiao987334176/p/18781110
点击访问API-->API密钥
2.png

 创建一个api密钥,比如:app-MMajtWxluWwHhJcOuiSI80y9
3.png

 
打开AI客户端CherryStudio,添加模型
4.png

 添加dify
5.png

API密钥,app-MMajtWxluWwHhJcOuiSI80y9,这个就是dify的api密钥
API地址,http://10.44.32.14:3099/v1/,注意:这里的地址是Dify2OpenAI的地址,末尾必须携带/

点击添加模型
模型ID,dify|Chat|http://10.44.32.14/v1,
注意:格式就是参考Dify2OpenAI的第二种请求方式。
  1. model 参数格式:
  2. "model": "dify|BOT_TYPE|DIFY_API_URL|INPUT_VARIABLE|OUTPUT_VARIABLE"
复制代码
模型名称,可以随便写。为了方便区分,和dify应用名一样
分组名称,可以随便写。为了方便区分,写dify
7.png

添加完成后,点击检查
8.png

 选择模型
9.png

 确保连接成功
10.png

 返回聊天页面,选择模型test-chatflow,询问问题,得到结果。
11.png

 能返回正确的结果,说明对接dify成功。
 
注意:如果有几十个dify应用要进行转换openai,只需要部署一个Dify2OpenAI即可。如果并发量比较大,可以运行多个副本。
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册