Dify搭建AI图片生成助手中的坑!

使用 Dify 搭建 AI 图片生成助手并不是什么难事,而且不需要你会编程知识,也能轻松实现。

但是,Dify 在搭建 AI 图片生成助手的过程中会遇到很多坑,例如以下这些:

  • 有些组件随着时间的推移,已经不能正常调用了;
  • 有些组件在国内需要魔法才能使用;
  • 有些组件需要复杂的本地部署才能正常调用;
  • 有些组件虽然能用,但生成的速度、成本、质量,是无法应用于生产环境的。

所以,接下来本文就带你来避开这些坑。

1.搭建AI图片生成助手

在 Dify 中,搭建 AI 图片生成助手的步骤主要分为以下几步:

  1. 添加“文生图”组件(这一步有很多坑)。
  2. 获取组件 API Key,通常需要去官网注册账号,申请 API Key。
  3. 在 Dify 中创建“Agent”应用。
  4. 添加提示词。
  5. 添加“文生图”工具。
  6. 编写提示词,生成图片。

接下来我们分别来看。

2.添加文生图组件

所谓“文生图”组件,指的是根据文字生成图片的组件(工具),Dify 中提供的和“图片”有关的插件如下:

这些组件大致可以这样分类:

  1. 本地模型
  2. 云端模型
    • 需要魔法
    • 不需要魔法

当然,其中本地模型因为部署麻烦,所以我们这里不会使用(但企业级应用为了考虑数据隐私性可能会用),需要魔法的云端模型我们也不会用,执行速度慢,并且对于小白用户不友好。所以最符合预期的模型为不需要魔法的云端大模型

不需要魔法的(好用一点的)云端大模型有以下这些:

  • Doubao:字节旗下大模型,非官方维护插件,对使用者来说无影响。
  • 智普 AI:清华团队开发的国内知名大模型,并且智普 AI 提供了可以免费生成图片的大模型(生成图片效果一般)。
  • 讯飞星火:讯飞公司旗下生成图片的大模型。
  • Stability:国际知名图片生成大模型,不需要魔法可调用,但不支持中文提示词,以及只为新用户提供了 25 积分(一次图片生成大概会消耗 4 积分)

2.1 避坑硅基流动(SiliconFlow)

有人这里会说生成图片为什么不选择硅基流动(SiliconFlow)啊?它支持 Flux 和 Stable Diffusion 都是图片生成届注明的大模型,如下图所示:

当然,我刚开始的时候也是这么想的,把 SiliconFlow 插件添加上,申请一个 API Key 可以选择调用多个大模型,看起来是很美好的时候。

但是当我尝试的时候,发现这两种图片生成的大模型压根就调用不了,起初我以为是配置权限或 API Key 填写的某个环节出现了问题,各种折腾,到最后发现效果还是一样的,完全不用了。

于是就 Google 了一把,发现了问题,原来是早些时候确实是能正常调用的,但是在今年 2 月份,硅基流动为了规范化运营,已经把很多大模型给下线了,其中也包括咱们要使用的 Flux 和 Stable Diffusion,这是不能调用的关键,但 Dify 中的插件并没有将这两个工具去掉,所以调用就会出现各种奇怪的报错信息,如下图所示:

2.2 推荐图片模型

不同的使用场景,推荐使用的图片模型是不同的,例如以下这些:

  • 如果对生成图片的成本比较敏感:可以使用智普 AI 的免费文生图的模型。
  • 如果对生成图片的质量要求比较高:建议使用 Doubao 文生图模型,Doubao 3.0 版本之前生成图片的质量很差,但 3.0 版本之后,不知道是不是和即梦 AI 整合了,视觉生成质量有一个很多的提升,并且也为新用户送 500 次的免费调用次数,开发环境够用了。但在调用插件的时候也有一些坑,需要注意。

3.调用Doubao文生图工具

调用 Doubao 图片生成有几个坑,这个需要给大家详细说一下,不然很容易出错。

首先在插件市场,安装 Doubao 插件:

之后是去 Doubao 平台开通图片生成权限和添加生成 API Key,这两个步骤都很容易出错。

插件提供的访问地址不对,一定要去火山方舟平台,也就是这个地址:https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement

我们需要以下三步:

实名认证完成之后,一定是选择下面栏目并开通服务:

接下来是容易出错的地方,当你点击获取 API Key 有可能会到这个地址,但这个地址不对(是火山方舟不是火山引擎):

如果获取的是这个地方的 API Key 就会在生成调用的时候,提示 401 没有权限,正常的操作是点击上面的“方舟大模型专用 API Key”,进入到这个页面,点击创建 API Key 才行

4.Dify创建Agent编排任务

创建 Agent 应用:

什么是 Agent?

Agent 是一种模拟人类行为和能力的 AI 系统,它通过自然语言处理与环境交互,能够理解输入信息并生成相应的输出。Agent 还具有 "感知" 能力,可以处理和分析各种形式的数据。此外,Agent 能够调用和使用各种外部工具和 API 来完成任务,扩展其功能范围。这种设计使 Agent 能够更灵活地应对复杂情况,在一定程度上模拟人类的思考和行为模式。

因此,很多人都会将 Agent 称为“智能体”。

4.1 撰写提示词

提示词(Prompt)是 Agent 的灵魂,直接影响到输出的效果。通常来说越具体的提示词输出的效果越好,但是过冗长的提示词也会导致一些负面效果。

调整提示词的工程,我们称之为提示词工程(Prompt Engineering)

在本次实验中,你不必担心没有掌握提示词工程,我们会在后面循序渐进地学习它。

让我们从最简单的提示词开始:

根据用户的提示,使用工具绘画指定内容。

用户每次输入命令的时候,Agent 都会知晓这样的系统级的指令,从而了解要执行用户绘画的任务的时候需要调用一个叫 Doubao 的工具进行绘图。

4.2 添加绘图工具

4.3 测试图片生成

5.发布

点击右上角的发布按钮,发布后选择运行就可以获得一个在线运行的 Agent 的网页。

复制这个网页的 URL,可以分享给其他好友使用。

6.优化:指定图片风格

我们可以在用户输入的命令中加上画风的指令,例如:二次元风格,画一个女孩,手中拿着一本打开的书

但是如果我们希望风格默认都是二次元风格呢,那么我们加在系统提示词里就行了,因为我们之前了解到系统提示词是每次执行用户命令都会知晓的,优先级更高。

根据用户的提示,使用工具绘画指定内容,画面是二次元风格

7.优化:拒绝某些不当请求?

在许多业务场景中,我们需要避免输出一些不合理的内容,但是 LLM 很多时候比较 “傻”,用户下指令时会照做不误,即使输出的内容是错的,这种模型为了努力回答用户而编造虚假内容的现象称为模型幻觉(Hallucinations),那么我们需要让模型必要的时候拒绝用户的请求。

此外,用户也可能提一些和业务无关的内容,我们也需要让 Agent 这个时候拒绝请求。

我们可以使用 markdown 格式给不同的提示词进行划分,将上述教 Agent 拒绝不合理内容的提示词写到 “约束” 标题下。当然,这样的格式仅仅是为了规范化,你可以有自己的格式。

## 任务
根据用户的提示,使用工具绘画指定内容,画面是二次元风格。

## 约束
如果用户在请求和绘画无关的内容,回复:“对不起,我不明白你在说什么”

例如,我们尝试提问:今晚吃什么

在一些更正式的业务场景中,我们可以调用敏感词库来拒绝用户的请求。

添加功能 - 内容审查中添加关键词 “晚饭”,当用户输入关键词时,则 Agent 应用输出 “对不起,我不明白你在说什么”。

小结

Dify 是一个入门简单,但用好比较难的技术,这点和 Java 有点像,但没关系,跟我一起,快速上手学习 AI 技术,避免踩坑。一起动手试起来吧~

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、AI Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

原创作者: vipstone 转载于: https://www.cnblogs.com/vipstone/p/18903521
### 使用 Dify 平台生成 PPT 文件或模板 #### 创建应用并命名 在 Dify 平台上构建新的应用程序来处理 PPT 的生成功能,此应用被命名为 `save_marp_content` 并作为工具发布[^2]。 #### 设计流程概述 为了实现这一目标,设计过程遵循特定的工作流: - **定义模板** 应用程序利用 Marp 语法创建 PPT 模板,在这些模板内部署占位符以便之后的内容填充。Marp 是一种基于 Markdown 的演示文稿制作工具,它允许开发者通过简单的标记语言快速搭建专业的幻灯片页面[^1]。 - **获取用户输入** 用户交互界面接收来自用户的标题信息以及其他必要的定制化选项,这一步骤对于个性化每一份报告至关重要。 - **调用 AI 模型** 当接收到具体的请求时,平台会激活预先训练好的本地 AI 模型以自动生成适合填入各占位区域的文字材料。这种自动化方式极大地提高了效率并且减少了人为错误的可能性。 - **合成与转换** 所有准备就绪后,系统将把之前设定的结构同新产生的文本结合起来形成完整的 Markdown 文档;随后借助于 Marp 提供的命令行接口 (CLI),该文档会被进一步加工成标准的 PowerPoint (.pptx) 文件格式。 - **存储与分发** 最终的产品可以上传到对象存储服务(OSS),从而方便地分享给其他成员或者公开访问。与此同时,前端部分可以通过集成 Marp-core 来实现实时预览效果,并附带直接下载的功能按钮。 ```python from pptx import Presentation def create_presentation(title): prs = Presentation() slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(slide_layout) title_placeholder = slide.shapes.title subtitle_placeholder = slide.placeholders[1] title_placeholder.text = title subtitle_placeholder.text = "Generated by save_marp_content" return prs ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值