前几个月,各个大模型公司都发布了自己的智能体应用。这个智能体降低了AI的使用门槛,而且更有针对性。这篇文章,作者通过几个案例教大家如何创建自己的智能体应用。

一、 智能体简介

1.1 Dream Story

Dream Story是利用Coze平台搭建的一款智能体应用,可以通过关键词或简单的描述生成一段图文并茂的故事画本。该应用充分的利用了AIGC的文生图及文生文的能力,将AiGC与实际应用场景深度结合。上架一周即被Coze官方推荐至首页,日均会话1K+。

我们以此热门应用,来开始今天的Ai agent智能体应用拆解。希望让人人都可以搭建属于自己的Ai智能体应用。

1.2 体验地址

为了便于您更好的理解和学习该应用,请先体验试用后再进行深度的研究。

DALLE 3 智能体体验链接地址:

www.coze.com/store/bot/7375114153545187345?bid=6cnmcn3d85g07&from=bots_card&panel=1

二、背景及目的

2.1 需求分析

目前,在小红书、抖音等各大媒体平台上,通过AI工具批量生成儿童绘本的案例越来越多。许多博主借此迅速涨粉,并已具备了变现能力,因此我们基于此切入点准备做一个儿童画本故事生成的智能体:

2.2 bot功能说明

1. 根据用户输入内容扩写故事内容

请提供一个简短的故事开头或主题,我们将根据此扩写出完整的故事内容。

2. 将故事内容拆分为5个分镜内容

我们会将扩写后的故事内容拆分成5个主要情节或场景。

3. 将5个分镜内容分别生成关键词

从每个分镜内容中提取出描述该场景的关键词。

4. 通过关键词生成相应的图片

使用关键词通过DALLE 3和Stable Diffusion生成相应的图片。

2.3 bot效果展示

DALLE 3 智能体

体验链接地址:

Coze: Next-Gen AI Chatbot Developing Platform

www.coze.com/store/bot/7375114153545187345?bid=6cnmcn3d85g07&from=bots_card&panel=1

问题:一位红衣女侠客在荒凉的戈壁上看到一家客栈

输出效果:

Stable Diffusion

Bot 链接 – Stable Diffusion:

Coze: Next-Gen AI Chatbot Developing Platform

www.coze.com/store/bot/7376115189772648449?panel=1&bid=6cnmeuvqg9g08

问题:一位红衣女侠客在荒凉的戈壁上看到一家客栈

输出效果:

三、 应用制作详细步骤拆解

3.1 创建一个新的Coze项目

创建一个新的Coze项目的步骤如下:

  1. 登录 Coze
  2. 在左侧导航栏的 My Workspace 区域,选择进入指定团队
  3. 在页面顶部进入 Plugins 页面,或进入 Bot 编排页面,在 Plugins 区域单击 +
  4. 单击 Create Bot
  5. 在 Create Bot 对话框,完成配置并单击 Confirm

3.2 Bot的基本结构

Dream Storybook-DALLE 3主要使用了工作流的方式来实现故事与图片的生成,具体的实现步骤如下;

3.2.1 bot基础设置

  1. 基础prompt,定义调用工作流即可
  2. Background image,选择一个符合场景的图片
  3. Voices,儿童绘本选择一个能够吸引小孩子声音
  4. 开场白,可以使用markdown的格式放一些生成图片的效果图,能够更好的吸引用户使用

3.2.2 bot工作流设置

1、工作流整体结构图

2、输入

接收用户输入内容,用于后面流程分析

3、LLM大模型解析

模型选择

-建议选择GPT-4o或GPT 4 Turbo

-由于用户使用bot时调用workflow会增加响应回复时长甚至因为工作流较复杂导致请求超时,如不需要在prompt中处理极其复杂的逻辑,可优先使用GPT-4o

prompt配置

-在工作流中写prompt与在bot中写prompt规则一致

-Dream Storybook-DALLE 3中prompt解析主要分为以下三部分

1)角色定义

你是一个儿童绘本的专家,擅长根据用户的简单描述来创建详细且吸引人的故事。

2)流程1:解读内容并生成分镜

-分析{{input}}内容及语言
-创造五个分镜内容分镜内容包括标题正文
-每个分镜内容为一组数据生成的标题赋值到title生成的正文赋值到text
-将titletext翻译成{{input}}对应语言
-将titletext按下方格式严格拼接为一个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生成的五个分镜内容分别生成五组适用于DALLE 3图片生成工具的关键词
- 关键词包括三部分内容:角色描述、场景描述、通用关键词。
- 对于角色和场景的描述都要尽可能的详细
- 如分镜内容中涉及到相同场景或角色描述时相同的部分必须使用相同关键词
- 与图片风格相关的关键词必须使用相同的
- 通用关键词为默认固定值,其默认固定值为:dynamic composition、animation aesthetic、children's book illustration、Disney style、in the style ofWalt Disney、fairy tale style、animation aesthetic、peaceful scene、warm lighting、fantasy elements、fantasy scene、dynamic composition、storybook illustration、high detail、hyper quality、masterpiece、highres、cute
- 将五组最终关键词翻译成英文词组,将五组英文词组作为一个数组输出到prompt
格式如下,仅供参考:
prompt:["","","","",""]

output配置(输出格式如下)

  1. content:存放根据prompt生成的故事标题与正文;输出格式为string字符串
  2. prompt:存放根据prompt生成的图片关键词;输出格式为一维数组

4、code输出内容结构解析

通过代码的方式解析content内容,由字符串转换成二维数组,见下方

async function main({ params }: Args): Promise<Output> {
    const ret = {
        
        "outputcontent": JSON.parse(params.inputcontent)
    
    };

    return ret;
}

//代码含义解读:
params.inputcontent 是一个包含JSON格式字符串的变量即在LLM大模型解析时生成的titletextJSON.parse() 是JavaScript中的一个方法用于将JSON格式的字符串转换为JavaScript对象outputcontent 是解析后的JavaScript对象及将input content由一个字符串转换成一个二维数组所以"outputcontent": JSON.parse(params.inputcontent) 的作用是将 params.inputcontent 中的JSON字符串解析成JavaScript对象并将其赋值给 outputcontent 变量举个例子如果 params.inputcontent 的值是 '{ "title": "在森林里跳舞的开始", "text": "小女孩穿着白色的连衣裙,在阳光照射下的森林里快乐地跳舞" }'那么执行 JSON.parse(params.inputcontent) outputcontent 的值将是一个包含两个属性的对象{
    name: "Alice",
    age: 25
}
如果实在理解不了遇到想要将一个字符串转换为二维数组的情况可直接复制本段代码将inputcontent与outputcontent替换为对应的输入与输出即可

5、图片生成

-添加DALLE 3插件,选择Batch processing 批量生成,即可一次性生成5张图片

-如选择Single time则只会根据第一条prompt生成一张图片

6、结果输出

最终结果输出时我们需要展示给用户是标题分镜内容及对应的图片

1)Selec Mode 可选择“Answer directly Answer Content(直接使用下方内容回复)”

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 如何了解插件的用法?

以DALLE 3和Stable Diffusion举例,可以在coze上找一个功能较全的聊天机器人,直接提问“stable diffusion 插件参数及用法”,回答如下,如对某一个参数有疑问可继续展开询问:

markdown的常见语法

1、我们如果想要输出内容为固定格式需要使用markdown格式,什么是markdown及常见用法可查看下图

2、该bot中标题、分割线、图片展示等语法

补充stable diffusion 在workflow中调用方法。

Stable Diffusion的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输出参数名称,可替换

第二步:代码解析字符串格式为数字

生成单张图片

async function main({ params }: Args): Promise<Output> {

    const ret = {
        "outputprompt": JSON.parse(params.inputprompt),
        "outputtext": JSON.parse(params.inputtext)
    };

    return ret;
}

生成多张图片

async function main({ params }: Args): Promise<Output> {
    const inputPrompts = JSON.parse(params.inputprompt); // 假设是一个数组
    const formattedPrompts = inputPrompts.map(text => ({
        "prompt": [
            text
        ]
    }));

    const ret = {
        "outputprompt": formattedPrompts,
        "outputtext": JSON.parse(params.inputtext)
    };

    return ret;
}

4、 欢迎讨论:

生成图片很难保证一套图片的角色和画风一致,大家有什么好的解决方案分享么~ (可以通过评论此文档或者在群聊里沟通哦)

五、如何利用Coze变现

5.1 什么是BlueAD?

BlueAD 是利用生成式人工智能改变营销和广告行业的革命性平台。它简单高效。开发者可以轻松地集成我们的 API,使他们的 GPT 、Coze或其他 AI 软件从中受益。此外,BlueAD也提供越来越多的广告形式和策略,以供广泛应用。

5.2 如何通过BlueAD变现?

如果你使用Coze、GPTs等AI Agent平台,都有能够商业变现变现的机会,例如coze只需要将“BlueAD”插件加入到Bot中获取接入广告,你的使用者查看了广告即可获得一定比例的收入奖励,Coze上已经有很多高流量的bot已经接入了这个插件,有变现需求和兴趣的同学可以试试~

参考资料:AI Agent 智能体榜单

本文由 @jyc 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

收藏已收藏{{ postmeta.bookmark }} 点赞已赞{{ postmeta.postlike }}