logo

【千帆平台】零代码构建应用《未来信使》,通过两个组件和两个应用综合实现确认和发送邮件的效果

背景

最近接触千帆平台比较多,特别是零代码构建应用,对于我来说觉得非常有意思,
在大模型通用能力的基础上,我们只需要发挥自己的文字表达就能创建一些有创意的应用。
非常开心和荣幸和大家分享《未来信使》这个应用的实现思路,希望我的分享能够给大家带来一些帮助和解决方案。
在线上会议里,大家也提了很多问题,在这里博主小5就简单整理下,有什么说的不对的地方也请大家指正,相互学习,共同成长。
下面博主小5将直接从大家在线上会议提到的点进行展开,之后会将实现的过程,包括组件一些参数描述也会和大家分享。
千帆作品点赞和体验地址:https://cloud.baidu.com/qianfandev/matchs
欢迎大家点赞和体验,有任何问题和疑问的都可以咨询我,谢谢!!!

关心的点

参数识别

大家最关心的点,就是AI应用是如何识别到具体的组件和参数。
先通过下面信息和验证来说明。
我们先来看看,思考模型和问答模型的基本信息
类型
能力描述
模型选择
思考模型
用于任务规划和选择组件
ERNIE-3.5-8K、ERNIE-4.0-8K
问答模型
用于总结生成回复结果
ERNIE Speed-AppBuilder、ERNIE-3.5-8K、ERNIE-4.0-8K

总结,从上面信息可以知道,其实不管哪个模型都具有思考和问答能力,但会偏向某个方向比较强的地方。

组件和参数验证

下面做个简单验证,prompt是否会影响到组件的选择和参数的识别
  • 默认下效果
没有加任何prompt和组件
  • 增加组件
然后同样输入之前的邮箱地址值,似乎AI应用理解了我可能要做什么,
从上面回复内容可以知道,AI应用已经能够理解你可能需要发送一封邮件。
为什么它能知道我可能要发送一封邮件,因为我的组件的描述是这么写的。
给自己写一封未来的信。为了区分邮箱地址和信内容。#井号前面是邮箱地址,井号后面是信的内容。
由此可以知道,应用是会通过组件描述加以理解你的意图,只要有足够组件信息参数就会发起组件调用,同时把参数筛选出来。
具体组件内容可以在文章后面会有写到。
  • 输入具体内容效果
  • 验证码识别
在没有选择任何组件情况下,肯定是无法识别的
在选择了邮件验证码确认组件后,直接输入验证码无法识别到具体调用的组件。
此时,可以针对prompt进行发挥了,通过指令来让应用去识别到用户输入的是验证码。
加上下面一段指令后,你再去输入回复验证码,很容易就能识别到具体组件和参数。
#角色设定
你是一名未来信使,负责转发邮件信息和识别验证码。
#要求与限制
1.验证码规则,6位长度,数字、小写字母混合组合
总结:相信大家看到这里后,会对指令、参数、以及组件选择有一定的了解了。

语音输入

https://cloud.baidu.com/qianfandev/live/9ec82d877b
语音Agent实操案例看这里-【AppBuilder深度技术训练-SDK专场】

时间格式

有小伙伴问到,说接收时间设置2024-05-23 21:57:40为什么还是说接收时间不符合要求。
其实时间格式这个有做了兼容,基本上是可以识别到时间的。这位小伙伴看到可以具体反馈下给我,我优化下。

组件编写

https://cloud.baidu.com/qianfandev/live/e69b4777bd
组件工作流教程看这里-【AppBuilder又上新能力了?直播帮你get工作流编排新功能
精选视频课程】

开发语言

博主主要是以C#为主,工作的十年里,从事的行业也基本都是用C#作为后端开发语言。
C#在国内来说,市场相对比较窄,语言不分好坏,能解决我们日常需求就可以。
C#和Java两者其实非常像的,最大区别就是,一个是公司独立管理,另一个是属于全球开发者管理。
每个人都更加愿意去使用开源的语言,知根知底嘛。
所以,C#之后的版本其实也是开源了,感兴趣的可以了解下。
有些小伙伴应该知道我CSDN上的昵称,全栈小5。
其实,博主工作的十年里,基本都是前后端一起开发,前端从以前的纯javascript、easyui、layui,到现在流行的vue都有在接触。
总结,前端后技术迭代更新很快,只能说,学习永无止尽。

未来信使功能

简单来说,它就是给你发邮件的。
它能够识别到你输入的内容,调用不同组件完成确认,之后通过定时任务来实现在指定未来的某一个时刻给自己发送一封邮件。

发送邮件

怎么实现把信息发送到指定的邮箱?
大家可以参考博主写的这篇文章:https://blog.csdn.net/lmy_520/article/details/102762785
下面Python代码是通过文心一言进行转换的代码。关键词:把下面代码转为python:
温馨提示:在创建Python文件名时,最好不要使用email.py,这有可能会和现有插件有冲突。
  
  
  
  
  
  
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 创建邮件消息
msg = MIMEMultipart()
msg['To'] = "收件人QQ号码@qq.com"
msg['CC'] = "收件人QQ号码@qq.com"
msg['From'] = "名称 <发件人QQ号码@qq.com>"
msg['Subject'] = "标题"
msg.attach(MIMEText("内容", 'plain', 'utf-8'))
# 发送邮件
try:
smtp = smtplib.SMTP("smtp.qq.com", 587)
smtp.starttls()
smtp.login("发件人QQ号码@qq.com", "密码或授权码")
smtp.send_message(msg)
print('邮件发送成功')
except smtplib.SMTPException as ex:
pass
finally:
smtp.quit()
也可以自己创建一个代码转换应用,或者使用会议上开发分享的应用《Slinda》进行代码转换

第三方服务器

实际上就是自己云服务器,类似百度云的云服务器,
简单点来讲就是自己的一台电脑,一个操作系统,可以部署自己开发的后端代码,
然后可以注册绑定自己的域名,通过域名来访问具体接口,比如:https://www.xxx.com/api/Data/Get
还在读大学的小伙伴可能还没接触到服务器这块,可以使用组件上面的大模型节点、知识库节点、以及网上免费调用的第三方API节点都可以。

未来信使

我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!「未来信使」:https://appbuilder.baidu.com/s/Q1VPg

功能说明

博主对这个未来信使AI应用的功能定位,其实就是一个能够在未来指定时间,给我发送一封邮件,这个邮件内容可能是你对自己一年后完成的目标或者是一个月你可能完成的一件事情。
目的是,在未来的某一天,在你已经逐渐淡忘的那一天,突然接收到了一封来自曾经写下的一封信,也许能够给你鼓励,也许让你在看到信件内容时能够继续不忘初心。
总之,未来信使的功能就是实现在指定未来的某一个时刻给自己发送一封邮件。机遇这样一个思路,大家也可以继续脑洞大开,发挥自己的想象力,完成更多更有创意的AI应用。

预发送流程图

这个过程主要是让AI应用能够准确识别到邮箱地址、接收时间、邮件内容,
然后调用邮箱预发送助手组件,把核心三个参数发送到对应组件API里。
API接口拿到参数后,会记录一条待确认待发送邮件记录。
同时AI应用也会对用户输入的内容进行识别,如果识别到的是验证码,那么就会去调用邮件验证码确认组件,
API接口拿到验证码参数后,会根据验证码查询数据库表记录,查询到记录后,更将待确认标记改为已确认。

确认流程图

这个过程就是邮件发送的过程。
定时任务会在5到10秒内查询一次数据库,将满足条件的记录查询出来,
满足条件的记录为,已确认、待发送、且发送时间小于了当前时间。
此时会遍历记录,在遍历过程也会去调用两个AI应用。
一个是【未来信件扩展助手】目的是拿到优化后的邮件内容,
一个是【智能标题提炼助手】目的是拿到邮件内容的标题。
这样标题、邮件内容、指定邮箱都有,就通过调用邮箱服务器进行发送。

邮箱预发送助手

组件描述上面提示很重要:请准确描述组件的应用场景,大模型将根据此描述识别并调用该组件
然后就是到了具体参数的描述,也同样重要,必须描述准确和清楚,这样模型才能一对一匹配和筛选

邮件验证码确认

博主总结到这里,发现组件描述也还是有优化空间,或者在组件描述里就能把验证码规则加上。

未来信息指令

# 角色任务
你是一名未来信使助手,你需要识别用户输入的邮箱地址、邮件发送时间、以及邮件内容三部分。
另外你还能够识别6位长度的邮箱验证码,并且能够区分上一步输入的内容。
# 要求与限制
1.输入内容合法合规,否则提示用户重新输入
2.内容必须包含邮箱的@符号,否则提示用户输入邮箱地址
这个限制需要排除内容是验证码的情况
3.内容必须包含时间,否则提示需要输入邮件接收时间
这个限制需要排除内容是验证码的情况
4.对用户输入的内容,除了邮箱地址和接收时间外,内容保持原样不变,不需要进行扩展
# 能力
1.能够识别用户输入的时间,然后统一转为时间格式:yyyy-MM-dd HH:mm:ss
2.识别6位长度验证码,验证码组合为数字、小写字母混合
3.保持用户输入原样内容,把原样内容作为参数传递给API

总结

理解AI应用相关的知识点会对各个流程更加熟悉,当然也可以在不断尝试过程中去理解和学习,毕竟有些AI应用相关的概念不是一下子就能消化。
博主其实并非天赋型选手,所以对知识点理解不会那么快,我需要对知识点进行尝试和验证来得到自己的结果和经验。
评论
用户头像