前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现的AI版飞花令

python实现的AI版飞花令

原创
作者头像
金鹏
修改2023-12-21 15:13:15
3850
修改2023-12-21 15:13:15
举报
文章被收录于专栏:SDLC技术探究SDLC技术探究

一 前言

“春城无处不飞花”,在遥远的古代,古人就开始有饮酒作乐的智慧,伴随着“飞花令”的诞生,文学创作者饮酒作乐必须要飞花令助兴了。然而在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版本的机器人,让其完成飞花令游戏,从结果可以看出,这个模型可能还需要更多的训练才能让其顺利完成飞花令的游戏,当然在之前的混元体验过程中,我也明确感受到了混元大模型的语言理解的威力,让我们更近一步期待混元能对个人开放更多能力,让我再实现一个基于混元的飞花令机器人。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 前言
  • 二 实战
    • 2.1 注册账号并实名认证个人版
      • 2.2 Python版bot实现
      • 三 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档