热门智能体应用详细拆解,手把手教你搭建智能体应用
前几个月,各个大模型公司都发布了自己的智能体应用。这个智能体降低了AI的使用门槛,而且更有针对性。这篇文章,作者通过几个案例教大家如何创建自己的智能体应用。
一、智能体简介1.1DreamStory
DreamStory是利用Coze平台搭建的一款智能体应用,可以通过关键词或简单的描述生成一段图文并茂的故事画本。该应用充分的利用了AIGC的文生图及文生文的能力,将AiGC与实际应用场景深度结合。上架一周即被Coze官方推荐至首页,日均会话1K 。
我们以此热门应用,来开始今天的Aiagent智能体应用拆解。希望让人人都可以搭建属于自己的Ai智能体应用。
1.2体验地址
为了便于您更好的理解和学习该应用,请先体验试用后再进行深度的研究。
DALLE3智能体体验链接地址:
www.coze.com/store/bot/7375114153545187345?bid=6cnmcn3d85g07&from=bots_card&panel=1
二、背景及目的2.1需求分析
目前,在小红书、抖音等各大媒体平台上,通过AI工具批量生成儿童绘本的案例越来越多。许多博主借此迅速涨粉,并已具备了变现能力,因此我们基于此切入点准备做一个儿童画本故事生成的智能体:
2.2bot功能说明
1.根据用户输入内容扩写故事内容
请提供一个简短的故事开头或主题,我们将根据此扩写出完整的故事内容。
2.将故事内容拆分为5个分镜内容
我们会将扩写后的故事内容拆分成5个主要情节或场景。
3.将5个分镜内容分别生成关键词
从每个分镜内容中提取出描述该场景的关键词。
4.通过关键词生成相应的图片
使用关键词通过DALLE3和StableDiffusion生成相应的图片。
2.3bot效果展示
DALLE3智能体
体验链接地址:
Coze:Next-GenAIChatbotDevelopingPlatform
问题:一位红衣女侠客在荒凉的戈壁上看到一家客栈
输出效果:
StableDiffusion
Bot链接–StableDiffusion:
www.coze.com/store/bot/7376115189772648449?panel=1&bid=6cnmeuvqg9g08
三、应用制作详细步骤拆解3.1创建一个新的Coze项目
创建一个新的Coze项目的步骤如下:
登录Coze
在左侧导航栏的MyWorkspace区域,选择进入指定团队
在页面顶部进入Plugins页面,或进入Bot编排页面,在Plugins区域单击
单击CreateBot
在CreateBot对话框,完成配置并单击Confirm
3.2Bot的基本结构
DreamStorybook-DALLE3主要使用了工作流的方式来实现故事与图片的生成,具体的实现步骤如下;
3.2.1bot基础设置
基础prompt,定义调用工作流即可
Backgroundimage,选择一个符合场景的图片
Voices,儿童绘本选择一个能够吸引小孩子声音
开场白,可以使用markdown的格式放一些生成图片的效果图,能够更好的吸引用户使用
3.2.2bot工作流设置
1、工作流整体结构图
2、输入
接收用户输入内容,用于后面流程分析
3、LLM大模型解析
模型选择
-建议选择GPT-4o或GPT4Turbo
-由于用户使用bot时调用workflow会增加响应回复时长甚至因为工作流较复杂导致请求超时,如不需要在prompt中处理极其复杂的逻辑,可优先使用GPT-4o
prompt配置
-在工作流中写prompt与在bot中写prompt规则一致
-DreamStorybook-DALLE3中prompt解析主要分为以下三部分
1)角色定义
你是一个儿童绘本的专家,擅长根据用户的简单描述来创建详细且吸引人的故事。
2)流程1:解读内容并生成分镜
-分析{{input}}内容及语言-创造五个分镜内容,分镜内容包括标题、正文-每个分镜内容为一组数据,生成的标题赋值到title,生成的正文赋值到text-将title、text翻译成{{input}}对应语言-将title、text按下方格式严格拼接为一个json字符串到content中输出-最终输出格式示例,仅供参考:content:"[{"title":"title1","text":"text1"},{"title":"title2","text":"text2"},{"title":"title3","text":"text3"},{"title":"title4","text":"text4"},{"title":"title5","text":"text5"}]"
3)流程2:以分镜内容为基础生成图片关键词
-将流程1生成的五个分镜内容分别生成五组适用于DALLE3图片生成工具的关键词-关键词包括三部分内容:角色描述、场景描述、通用关键词。-对于角色和场景的描述都要尽可能的详细-如分镜内容中涉及到相同场景或角色描述时相同的部分必须使用相同关键词-与图片风格相关的关键词必须使用相同的-通用关键词为默认固定值,其默认固定值为:dynamiccomposition、animationaesthetic、children'sbookillustration、Disneystyle、inthestyleofWaltDisney、fairytalestyle、animationaesthetic、peacefulscene、warmlighting、fantasyelements、fantasyscene、dynamiccomposition、storybookillustration、highdetail、hyperquality、masterpiece、highres、cute-将五组最终关键词翻译成英文词组,将五组英文词组作为一个数组输出到prompt格式如下,仅供参考:prompt:["","","","",""]
output配置(输出格式如下)
content:存放根据prompt生成的故事标题与正文;输出格式为string字符串
prompt:存放根据prompt生成的图片关键词;输出格式为一维数组
4、code输出内容结构解析
通过代码的方式解析content内容,由字符串转换成二维数组,见下方
asyncfunctionmain({params}:Args):Promise<Output>{constret={"outputcontent":JSON.parse(params.inputcontent)};returnret;}//代码含义解读:params.inputcontent是一个包含JSON格式字符串的变量,即在LLM大模型解析时生成的title、text。JSON.parse是Java中的一个方法,用于将JSON格式的字符串转换为Java对象。outputcontent是解析后的Java对象,及将inputcontent由一个字符串转换成一个二维数组。所以,"outputcontent":JSON.parse(params.inputcontent)的作用是将params.inputcontent中的JSON字符串解析成Java对象,并将其赋值给outputcontent变量。举个例子,如果params.inputcontent的值是'{"title":"在森林里跳舞的开始","text":"小女孩穿着白色的连衣裙,在阳光照射下的森林里快乐地跳舞"}',那么执行JSON.parse(params.inputcontent)后,outputcontent的值将是一个包含两个属性的对象:{name:"Alice",age:25}如果实在理解不了,遇到想要将一个字符串转换为二维数组的情况,可直接复制本段代码,将inputcontent与outputcontent替换为对应的输入与输出即可
5、图片生成
-添加DALLE3插件,选择Batchprocessing批量生成,即可一次性生成5张图片
-如选择Singletime则只会根据第一条prompt生成一张图片
6、结果输出
最终结果输出时我们需要展示给用户是标题分镜内容及对应的图片
1)SelecMode可选择“AnswerdirectlyAnswerContent(直接使用下方内容回复)”
2)固定格式内容输出,可是使用Markdown或html的格式
##二级标题
*内容*正文内容使用斜体
![](图片链接)将图片链接直接展示
***分割线
##{{outputtext[0].title}}*{{outputtext[0].text}}*![]({{outputimage[0].data_structural[0].image_thumb.url}})***##{{outputtext[1].title}}*{{outputtext[1].text}}*![]({{outputimage[1].data_structural[0].image_thumb.url}})***##{{outputtext[2].title}}*{{outputtext[2].text}}*![]({{outputimage[2].data_structural[0].image_thumb.url}})***##{{outputtext[3].title}}*{{outputtext[3].text}}*![]({{outputimage[3].data_structural[0].image_thumb.url}})***##{{outputtext[4].title}}*{{outputtext[4].text}}*![]({{outputimage[4].data_structural[0].image_thumb.url}})
四、常见问题和解决方案
如何在工作流程确定使用插件的参数及使用规则
4.1为什么要知道插件的用法?
为了确保工作流的顺利进行,插件参数的输入需要严格遵循格式要求。因此,在使用大语言模型(LLM)或其他工具时,必须预先定义好插件所需的参数格式,以确保插件能够成功运行。
4.2如何了解插件的用法?
以DALLE3和StableDiffusion举例,可以在coze上找一个功能较全的聊天机器人,直接提问“stablediffusion插件参数及用法”,回答如下,如对某一个参数有疑问可继续展开询问:
markdown的常见语法
1、我们如果想要输出内容为固定格式需要使用markdown格式,什么是markdown及常见用法可查看下图
2、该bot中标题、分割线、图片展示等语法
补充stablediffusion在workflow中调用方法。
StableDiffusion的text_prompt格式要求比较严格,需要是数组格式,此处需要通过代码方式解析格式,如果没有代码基础,可以直接修改参数值后饮用。
第一步:使用LLM大语言模型解析关键词格式
注意:大模型存在一定解析失败的概率
–最终输出格式如下,严格拼接为一个json字符串到prompt输出,最终输出格式示例,仅供参考:
-最终输出格式如下,严格拼接为一个json字符串到prompt输出最终输出格式示例,仅供参考:prompt:"[{"text":"A(0)","weight":1},{"text":"A(1)","weight":1},{"text":"A(2)","weight":1},{"text":"A(3)","weight":1},{"text":"A(4)","weight":1}]"//prompt输出参数名称,可替换
第二步:代码解析字符串格式为数字
生成单张图片
asyncfunctionmain({params}:Args):Promise<Output>{constret={"outputprompt":JSON.parse(params.inputprompt),"outputtext":JSON.parse(params.inputtext)};returnret;}
生成多张图片
asyncfunctionmain({params}:Args):Promise<Output>{constinputPrompts=JSON.parse(params.inputprompt);//假设是一个数组constformattedPrompts=inputPrompts.map(text=>({"prompt":[text]}));constret={"outputprompt":formattedPrompts,"outputtext":JSON.parse(params.inputtext)};returnret;}4、欢迎讨论:
生成图片很难保证一套图片的角色和画风一致,大家有什么好的解决方案分享么~(可以通过评论此文档或者在群聊里沟通哦)
五、如何利用Coze变现
5.1什么是BlueAD?
BlueAD是利用生成式人工智能改变营销和广告行业的革命性平台。它简单高效。开发者可以轻松地集成我们的API,使他们的GPT、Coze或其他AI软件从中受益。此外,BlueAD也提供越来越多的广告形式和策略,以供广泛应用。
5.2如何通过BlueAD变现?
如果你使用Coze、GPTs等AIAgent平台,热门智能体应用详细拆解,手把手教你搭建智能体应用都有能够商业变现变现的机会,例如coze只需要将“BlueAD”插件加入到Bot中获取接入广告,你的使用者查看了广告即可获得一定比例的收入奖励,Coze上已经有很多高流量的bot已经接入了这个插件,有变现需求和兴趣的同学可以试试~
参考资料:AIAgent智能体榜单
本文由@jyc原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务