一 前言
“春城无处不飞花”,在遥远的古代,古人就开始有饮酒作乐的智慧,伴随着“飞花令”的诞生,文学创作者饮酒作乐必须要飞花令助兴了。然而在AI时代的今天,虽然酒文化不及古时的清淡高雅,但是一切似乎都变的那么的简单,你只需要跟一个机器说上那么两句话,就可以玩转飞花令游戏了,这就是大模型时代的魅力所在。
本文是基于千帆大模型,尝试使用其接口实现的一个chat机器人,当然可以玩飞花令游戏,让我们一起看看这个模型语言理解能力吧。
二 实战
2.1 注册账号并实名认证个人版
本打算尝试腾讯混元模型,可惜其没有开放个人API,而千帆模型提供了个人版本,所以这里姑且使用千帆,截至2024年一月初可以在不提前够买的情况下进行按量付费,开通后的界面如下:
开通后可以创建应用,生成id和token。
2.2 Python版bot实现
在上面的界面中也提供了样例脚本,我们可以基于其做一些编码,最终的代码如下:
代码语言:python代码运行次数:0复制#-*- coding:utf-8 -*-
import requests
import json,sys
API_KEY = "xxxxx"
SECRET_KEY = "yyyyyy"
def get_access_token():
"""
使用 AK,SK 生成鉴权签名(Access Token)
:return: access_token,或是None(如果错误)
"""
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" get_access_token()
def chatbot(his_msg:list)->list:
user_msg=input("you: ")
if user_msg=='exit':
sys.exit(0)
his_msg.append({
"role": "user",
"content": user_msg
})
payload = json.dumps({
"user_id": "feihualing",
"temperature": 0.5,
"penalty_score": 2,
"messages": his_msg
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
new_resp = json.loads(response.text)
print(f"bot: {new_resp['result']}")
his_msg.append({
"role": "assistant",
"content": new_resp["result"]
})
return his_msg
if __name__ == '__main__':
his_msg=[]
while True:
his_msg=chatbot(his_msg)
上面我把temperature设置成了0.5,以便让结果更精确一点,
然后在命令行终端运行如上代码,执行效果如下
代码语言:txt复制you: 我们玩下飞花令游戏吧
bot: 好的,我们可以玩飞花令游戏。请你先说第一个字或词组吧!
you: 月
bot: 月色如水,月光皎洁。
you: 窗前明月光
bot: “窗前明月光”是李白的《静夜思》中的名句,接下去的诗句是什么呢?
you: 这是飞花令游戏
bot: 对不起,我误解了你的意思。让我们继续玩飞花令游戏吧!请说出下一个含有“月”字的词语或诗句:
回答:“但愿人长久”。
you: 回答错误
bot: 非常抱歉,让我再试一次。请说出下一个含有“月”字的词语或诗句:
回答:“清风半夜鸣蝉”。
you: 回答错误
bot: 非常感谢您的参与,让我再试一次。请说出下一个含有“月”字的诗句:
回答:“举头望明月”。
you: 对了
bot: 非常好,现在轮到我说一个含有“月”字的词语或诗句了: “月光如水”。 接下去的飞花令你来定吧。
you: 说一个 以鸟为关键词的飞花令游戏
bot: 好的,让我们来一场以鸟为关键词的飞花令游戏。请先说出第一个含有“鸟儿”或与它相关的词语、诗句:
回答:“百啭无人能解”。 (注意此句出自黄庭坚《清平乐•春归何处》。)
you: 不会
bot: 非常抱歉,我出错了。让我再试一次:请说出下一个含有“鸟儿”或与它相关的词语、诗句:“月落乌啼霜满天”。接下去你来定吧!
you: 不对
bot: 非常抱歉,让我再试一次。“鸟语花香”如何?接下去你来定吧。
you: 不对,要诗句
bot: 好的,那下一句可以是“春花秋月何时了”。接下去你来定吧!
you: 要有鸟字
bot: 好的,那下一句可以是“双飞燕子几时回”。接下去你来定吧!
you: 不对
bot: 非常抱歉,让我再试一次。“月落乌啼双燕飞”如何?接下去你来定吧!
you: 不对
bot: 非常抱歉,我可能真的没有理解对。让我们再试一次吧!请说出下一个含有“鸟”字的词语或诗句:
回答:“月明星稀”。 (这句诗出自曹操的《短歌行》)。
you: 不对
bot: 非常抱歉,我再来一次。“一行白鹭上青天”如何?接下去你来定吧!
you: 不对要含有鸟字
bot: 非常抱歉,让我再试一次。“鸟宿池边树”。接下去你来定吧!
you: 对了
bot: 非常好,现在轮到你说一个含有“鸟”字的词语或诗句了: “莺歌燕舞”。 接下去的飞花令你来定吧。
you: exit
我们可能需要进一步训练这个工具才能让他成为一个飞花令高手。
三 总结
本文在对AI好奇的基础上,水文一篇,尝试探索千帆大模型平台,基于这个平台尝试调用其接口实现python版本的机器人,让其完成飞花令游戏,从结果可以看出,这个模型可能还需要更多的训练才能让其顺利完成飞花令的游戏,当然在之前的混元体验过程中,我也明确感受到了混元大模型的语言理解的威力,让我们更近一步期待混元能对个人开放更多能力,让我再实现一个基于混元的飞花令机器人。