A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。
目录[-]
上一篇文章介绍了使用 Dify
提供的工作流编排以及 Dify
自带的 Tavily Search
搜索工具、 LLM
模型 Qwen2.5 (7B)
模型实现自己专属的AI搜索引擎。
今天我们来体验下 Dify
提供的Agent智能体功能,结合 LLM
模型 Qwen2.5 (7B)
,同时利用外部工具 Flux.1
(文生图的“新王”)实现自己专属的文生图智能体,其中, LLM
充当了 智能体(Agent)
的大脑。先看生图效果:
智能体(Agent)是一种自动推理和决策引擎。智能体(Agent) = 大语言模型的推理能力 + 使用工具行动的能力。
智能体(Agent)
利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。 智能体(Agent)
的优势在于其能自动执行复杂任务,大幅提升自动化和智能决策的效率; 智能体(Agent)
工作原理主要是四个步骤:包括感知、记忆、规划与决策、行动/使用工具。
下面要实现的文生图智能体,便是用到了以下两个核心要素:
作为体验,本次的智能体仅仅用到了一个文生图工具、一个 LLM
模型以及一段提示词,便可以完成复杂的推理、翻译、转换、工具使用、模型选择、指令遵循以及响应生成的完整过程。
在 Dify
的工作室中,新建一个“Agent”类型的应用。
在工具处,点击添加,在右侧弹框中选择图片中的 SiliconFlow
硅基流动下的 Flux
工具(授权后使用)。
SiliconFlow
需要授权后才能使用,通过“如何获取”超链接跳转到 SiliconFlow
官方进行注册登录,我这里使用手机号注册登录,之后可以获取到一个 API Key
。左侧选择“生图”过滤选项,里面有个 black-forest-labs/FLUX.1-schnell
,即: FLUX.1
,这是由黑森林(Black Forest Labs)实验室发布的文生图模型,包含三个不同的版本,分别是 Pro
(专业版)、 Dev
(开发版)、 Schnell
(本地个人使用版,免费)。我们选择 Schnell
这个免费版, Schnell
在德语里意为“快速”,是个蒸馏过的四步生成模型,也是迄今为止最先进的少步生成模型,专为本地开发和个人使用量身定制。 FLUX.1-schnell
在 Apache2.0
许可下公开使用。
可以直接在硅基流动官网上进行在线体验,生成效率2-3秒。
上图的提示词如下:
In a vast, boundless desert, a female warrior stands at the center of the composition. Her figure contrasts sharply with the endless sand dunes, dressed in futuristic, post-apocalyptic armor adorned with sci-fi elements. She turns her head towards the camera, her gaze deep and mysterious, as if concealing a secret. The style of the artwork is inspired by the film Dune, evoking a sense of desolation and future aesthetics. The desert sky is painted in soft hues, with the distant dunes glistening in golden light. The overall tone of the piece is composed and powerful.
参考官方文档:SiliconFlow (支持Flux绘图)中的提示词,对工具进行配置:
你是一个绘图提示词作家,用户给你想要的图片需求,请你补全提示词并使用flux绘图。
文生图需求:
一只狗看着镜子,发现镜子里的倒影是一匹狼,高分辨率摄影作品,高细节、逼真,场景温馨。
Note:显然,上述结果不尽人意,稍微分析下得出了推论:像 Flux.1
这种长在国外的模型,对于中文的处理差强人意;因此,我们需要提示智能体将用户的中文输入转换为对应的英文。
根据用户输入
- 生成给图像生成工具的参数:提示词,对提示词的要求:从对话记录中找到和图片生成相关的词汇,生成给Stable Diffusion等图片生成模型的英文提示词;
- 获取生成图像的URL,直接展示图像。
使用与上次文生图相同的需求再次生成,效果还行。
这里使用默认的 ReAct
推理模式,ReAct
结合了推理和行动,旨在使 LLM
能够通过在一系列步骤(重复N次)之间交错来解决复杂的任务: Thought
, Action
和 Observation
。
ReAct:Reasoning + Acting with LLMs
直接采用 Dify
中 Agent
默认的提示词,完整内容如下:
Respond to the human as helpfully and accurately as possible.
You have access to the following tools:
Use a json blob to specify a tool by providing an key (tool name) and an key (tool input).
Valid "" values: "Final Answer" or
Provide only ONE action per $JSON_BLOB, as shown:
``
{
"": $TOOL_NAME,
"": $ACTION_INPUT
}
``
Follow this format:
Question: input question to answer
Thought: consider previous and subsequent steps
Action:
``
$JSON_BLOB
``
Observation: action result
... (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:
``
{
"": "Final Answer",
"": "Final response to human"
}
``
Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:` ` $JSON_BLOB ` `then Observation:.
当我问了关于中文古诗相关内容的问题后,无法重复利用提供的中文细节内容来生成让人满意的图像。eg:
这篇文章主要介绍了如何使用 Dify
平台结合 Qwen2.5(7B)
模型和 Flux.1
文生图工具,打造一个专属的文生图智能体(Agent),实现了中文输入到高质量图片生成的功能。文章详细说明了从创建应用、配置工具、编写提示词到实际使用的完整流程,并展示了多个成功的文生图示例。
主要技术要点:
通过优化提示词实现中英文转换,提升生图质量,这个方案的特点是搭建简单,使用方便,能够将用户的中文描述准确转换为英文提示词,并生成高质量的图片。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!