打造智能成语接龙游戏机器人——基于Appbuilder-SDK的创意实践
探秘Appbuilder:轻松构建前端应用,开启交互新体验
首先使用百度智能云千帆Appbuilder创建一个应用,本实例将创建一个成语接龙应用,见下图所示:
- 你可以依据你需要的应用能力来调用相应的组件
- 如果您的应用需要外部知识库,您也可以在平台直接添加到外部知识库到平台应用
- 您可以依据设计角色指令,从而精确的控制应用的作用范围,确定其扮演的角色,并且确定其输出结果的格式与风格,同时,您还可以规定应用不得执行哪些操作
- 设计开场白、推荐问以及追问,使应用更加利于使用
最后,您可以点击发布选项发布您创建的应用
接下来来到你的个人空间
您可以获取到您创建的应用的应用id,并且在个人主页中获取到自己的appbuilder-api
接下来将展示如何使用Appbuilder-SDK来调用您创建的应用
惊艳亮相!在Appbuilder前端界面,使用您亲手打造的成语接龙应用
超越界面限制!用Appbuilder-SDK灵活调用你的Agent应用,解锁代码态全新玩法
除了在Appbuilder的前端网页使用我们创建好的Agent应用,我们还可以使用Appbuilder-SDK实现代码态的调用Agent应用,接下来将展示如何使用Appbuilder-SDK实现代码态的调用Agent应用
配置您的api-key和app-id
# 安装appbuilder-sdk
!pip install appbuilder-sdk
import os
import appbuilder
# 请前往千帆AppBuilder官网创建密钥,流程详见:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5
os.environ["APPBUILDER_TOKEN"] = "密钥"
# 自己创建的应用对应的id
app_id='应用id'
使用Appbuilder-SDK调用您创建的应用机器人
player = appbuilder.AppBuilderClient(app_id)
conversation_id = player.create_conversation()
i=1
while i<=10:
print("----------第%d轮比拼----------" % (i,))
q = str(input("请输入成语: "))
msg = player1.run(conversation_id, q)
answer = msg.content.answer
print("成语接龙机器人: ", answer)
i+=1
探索AI边界!用Appbuilder-SDK让应用自我对话,ERNIE模型性能一测便知
除了实现用户与Agent应用进行交互,我们还可以实现Agent应用的自我问答,我们甚至可以通过调用不同的模型通过Agent应用的自我问答来测试不同的模型性能。
我们可以创建两个应用,分别调用ERNIE-4和ERNIE-3.5模型进行循环测试
class IdiomSolitaire:
def __init__(self, real_player, app_id1, app_id2):
self.player1 = appbuilder.AppBuilderClient(app_id1)
self.player2 = appbuilder.AppBuilderClient(app_id2)
self.real_player = real_player
def run(self):
conversation_id1 = self.player1.create_conversation()
conversation_id2 = self.player2.create_conversation()
if self.real_player:
print("---------游戏开始,请输入一个成语---------")
q = str(input("真实玩家: "))
else:
q = "龙年大吉"
i = 1
while True:
print("----------第%d轮比拼----------" % (i,))
msg = self.player1.run(conversation_id1, q)
answer = msg.content.answer
print("LLM玩家1: ", answer)
# answer作为下一个玩家的输入
q = answer
msg = self.player2.run(conversation_id2, q)
answer = msg.content.answer
print("LLM玩家2: ", msg.content.answer)
q = answer
if self.real_player:
q = str(input("真实玩家: "))
i += 1
# 无真实玩家
def main1():
idiom_solitaire = IdiomSolitaire(False, app_id1,app_id2)
idiom_solitaire.run()
# 真实玩家
def main2():
idiom_solitaire = IdiomSolitaire(True,app_id1,app_id2)
idiom_solitaire.run()
if __name__ == "__main__":
app_id1='ERNIE-4-app-id'
app_id1='ERNIE-3.5-app-id'
main1()
# main2()
为我们的应用加点料!轻松添加多样组件,让Appbuilder创造更多可能!
除了调用我们已经创建好的Agent应用,Appbuilder-SDK还支持拓展组件的调用,通过添加组件让我们的应用更加富有活力
Appbuilder-SDK新技能解锁!短文本在线合成语音,TTS组件助你实现语音交互新体验!
tts = appbuilder.TTS()
cwd = os.getcwd()
Generate_text="生成的成语文本"
# 使用baidu-tts模型, 默认返回MP3格式
inp = appbuilder.Message(content={"text": Generate_text})
out = tts.run(inp)
mp3_sample_path = os.path.join(cwd,"result.mp3")
with open(mp3_sample_path, "wb") as f:
f.write(out.content["audio_binary"])
print("成功将文本转语音,mp3格式文件已写入:{}".format(mp3_sample_path))
Appbuilder-SDK玩法大揭秘!更多趣味组件等你探索,尽享创意开发新乐趣!