本文介绍了基于文心大模型开发的传统射覆游戏项目。射覆是源于汉代的猜物游戏,后演变为文字酒令,规则是以谜猜谜。项目让模型扮覆者,玩家扮射者,模型需完成随机给物品及打油诗、按物品作诗、判断射者答案这三项功能,并给出了相应prompt设计、代码实现及利用gradio开发的游戏原型,还介绍了玩法。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
射覆是一种古时的猜物游戏,常用于占卜,也是酒令的一种形式。所谓“射”,是“猜”的意思,所谓“覆”,是“遮盖、隐藏”的意思。游戏通常在一个器具(如瓯、盂)下覆盖某一物件,让参与者猜测里面是什么东西。
射覆的起源可以追溯到汉代,当时的皇宫中就已经流行这种游戏。游戏所用的物品通常是日常用品,如手巾、扇子、笔墨、盒罐等。
随着时间的推移,射覆逐渐演变成民间宴饮时的文字游戏。
在《红楼梦》中,射覆被描述为一种酒令,参与者通过成语或诗句来猜测物体,这不仅考验参与者的知识储备,还体现了他们的才学和性格。
射覆的游戏规则是这样的:
①覆者先说谜面(在本游戏中谜面是一首打油诗);
②射者猜中的话不能直接说出谜底,要另说一个谜面来作答;
③彼此都对才算过关;
通俗一点来说,就是猜谜语,但是比猜谜语更难,准确来说是以谜猜谜。
射覆对于我们现代人来说是比较难的,好在有文心大模型的帮忙,玩射覆就简单多啦。
射覆的具体游戏流程如下:
本项目中,我们让文心大模型扮演覆者,玩家扮演射者,则模型需要做以下三件事:
def ernie_cover_prompt():
return ("我想要你陪我玩'射覆'游戏:"
"你的任务如下:"
"1.你需要从你的身边随机找一件物品,不要选钟表等过于常见的、特别容易猜中的物品"
"2.输出一句有趣的打油诗,来生动形象的描述这件物件。(打油诗中不要出现该物品的名称,内容不要过于直白,不要使用户一下子就猜到)"
"3.将结果以{\"thing\":\"\",\"poem\":\"\"}的JSON格式返回,其中thing表示物品名称,poem表示描述这件物品的打油诗。"
"注意: 除了JSON格式结果以外,不要返回其他任何内容。")2.需求描述:根据物品名称,给出一首描述该物品的打油诗
输入:物品名称
输出:描述该物品的打油诗
def shoot_prompt(thing):
return f"""
请你用一句打油诗描述{thing},诗中不能出现"{thing}"几个字。除了打油诗以外,不要返回其他任何内容。
"""def user_shoot_prompt(shoot_poem, cover_thing):
prompt = f"""
你现在正在跟我玩射覆游戏,你"覆"的物品是{cover_thing},我给的描述这个物品的打油诗是{shoot_poem}。
如果你认为我猜对了,请你对我说:我覆的是"{cover_thing}",你猜对了,你和我还真是心有灵犀呢,让我们共饮一杯吧!
如果你认为我猜错了,请你对我说:我覆的是"{cover_thing}",你猜错了,请自罚一杯!
最后再说一句寓意美好的祝酒辞作为结尾。
"""
return prompt
# 安装依赖!pip install -U erniebot
import erniebotdef set_token(token):
erniebot.api_type = 'aistudio'
erniebot.access_token = token
set_token("替换为你自己的token")
def get_ernie_res(txt):
model = 'ernie-3.5'
messages = [{'role': 'user', 'content': txt}]
response = erniebot.ChatCompletion.create(
model=model,
messages=messages,
) return response.result#test get_ernie_res("hi")'您好!有什么我可以帮助您的吗?如果您有任何疑问或需要建议,请随时告诉我,我将竭诚为您服务。'
# 随机给出一个物品名称和描述这件物品的打油诗def ernie_cover_prompt():
return ("我想要你陪我玩'射覆'游戏:"
"你的任务如下:"
"1.你需要从你的身边随机找一件物品,不要选钟表等过于常见的、特别容易猜中的物品"
"2.输出一句有趣的打油诗,来生动形象的描述这件物件。(打油诗中不要出现该物品的名称,内容不要过于直白,不要使用户一下子就猜到)"
"3.将结果以{\"thing\":\"\",\"poem\":\"\"}的JSON格式返回,其中thing表示物品名称,poem表示描述这件物品的打油诗。"
"注意: 除了JSON格式结果以外,不要返回其他任何内容。")
In [10]
import json# 将字段值分别输出def process_ernie_cover():
json_res = get_ernie_res(ernie_cover_prompt()) # 提取JSON部分
start_index = json_res.find('{')
end_index = json_res.rfind('}') + 1
json_str = json_res[start_index:end_index]
json_obj = json.loads(json_str) return json_obj["thing"], json_obj["poem"]
process_ernie_cover()('魔方', '多彩多面藏智慧,旋转之间现神奇。千变万化难捉摸,手中把玩思无限。')
In [ ]
# 根据物品名称,给出一首描述该物品的打油诗def shoot_prompt(thing):
return f"""
请你用一句打油诗描述{thing},诗中不能出现"{thing}"几个字。除了打油诗以外,不要返回其他任何内容。
"""# testget_ernie_res(shoot_prompt('雪糕'))
In [ ]
# 根据覆的物品名称 和 射者的打油诗判断游戏结果(猜中、没猜中),并给出对应的输出 def user_shoot_prompt(shoot_poem, cover_thing):
prompt = f"""
你现在正在跟我玩射覆游戏,你"覆"的物品是{cover_thing},我给的描述这个物品的打油诗是{shoot_poem}。
如果你认为我猜对了,请你对我说:我覆的是"{cover_thing}",你猜对了,你和我还真是心有灵犀呢,让我们共饮一杯吧!
如果你认为我猜错了,请你对我说:我覆的是"{cover_thing}",你猜错了,请自罚一杯!
最后再说一句寓意美好的祝酒辞作为结尾。
"""
return prompt
get_ernie_res(user_shoot_prompt("红纸轻裁锦绣词,佳期遥盼喜相思。诚心挚意传千里,佳宾云集共此时。", "请柬"))
参考代码如下:
with gr.Blocks(title="射覆", theme="soft") as game:
gr.Markdown("中国传统游戏--射覆
")
gr.Markdown("""
射覆是一种古时的猜物游戏,常用于占卜,也是酒令的一种形式。游戏通常在一个器具(如瓯、盂)下覆盖某一物件,让参与者猜测里面是什么东西。射覆的起源可以追溯到汉代,当时的皇宫中就已经流行这种游戏。游戏所用的物品通常是日常用品,如手巾、扇子、笔墨、盒罐等。
随着时间的推移,射覆逐渐演变成民间宴饮时的文字游戏。在《红楼梦》中,射覆被描述为一种酒令,参与者通过成语或诗句来猜测物体,这不仅考验参与者的知识储备,还体现了他们的才学和性格。
射覆的游戏规则是这样的:所谓“射”,是“猜”的意思。所谓“覆”,是“遮盖、隐藏”的意思。
①覆者先说谜面(在本游戏中谜面是一首打油诗);
②射者猜中的话不能直接说出谜底,要另说一个谜面来作答;
③彼此都对才算过关;
通俗一点来说,就是猜谜语,但是比猜谜语更难,准确来说是以谜猜谜。
作诗对于我们现代人来说是比较难的,好在有文心大模型的帮忙,我们就可以愉快的玩射覆啦。
""")
token = gr.Textbox(label="Token") with gr.Tab("你\"射\",文心\"覆\""): with gr.Row(): with gr.Column():
cover_button = gr.Button(value="覆") # 谜底隐藏不显示
cover_thing = gr.Textbox(visible=False)
cover_poem = gr.Textbox(label="谜面") with gr.Column():
shoot_thing = gr.Textbox(label="物品名称")
shoot_poem = gr.Textbox(label="射")
shoot_button = gr.Button(value="不会写诗,文心帮帮我♥️") with gr.Row():
res = gr.Textbox(label="结果")
judge_button = gr.Button(value="看看你猜对了吗")
cover_button.click(ernie_cover, [], [cover_thing, cover_poem])
shoot_button.click(gene_poem, [shoot_thing], [shoot_poem])
judge_button.click(user_shoot_res, [shoot_thing, cover_thing], [res])
**游戏体验链接:**https://aistudio.baidu.com/application/detail/26562
效果展示:
玩法介绍:
# access
# ai
# 文心大模型
# https
# prompt
# 这件
# 一首
# 一句
# 的是
# 请你
# 错了
# 你猜
# 我猜
# 对了
# 诗中
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化91478 】
【
技术知识72672 】
【
云计算0 】
【
GEO优化84317 】
【
优选文章0 】
【
营销推广36048 】
【
网络运营41350 】
【
案例网站102563 】
【
AI智能45237 】
相关推荐:
Logic Pro 11更新全面解析:免费升级、AI功能与音乐制作流程
通义千问怎么设置常用功能快捷键_通义千问快捷键设置【步骤】
EdrawMax AI:使用人工智能快速创建流程图和图表
AdobeExpressAI智能排版怎么快速生成Logo_AdobeExpressAI智能排版Logo生成入口【步骤】
2025年最佳AI流程图工具:效率提升秘籍
Midjourney怎么用一键生成logo_Midjourneylogo生成步骤【教程】
使用文心一言进行高质量的唐诗宋词创意改编
教你用AI把照片变成动漫风格,3个简单步骤刷爆朋友圈
雷小兔ai智能写作如何优化语句_雷小兔ai智能写作语句润色技巧【攻略】
揭秘:发电机咒语的音频魔力与音乐的力量
2025年必备:顶级AI工具,赋能您的日常工作和业务流程
RPGGO AI:颠覆传统!2D游戏创作新纪元
提升房地产业务:AI语音助手赋能房地产经纪公司
批改网ai检测工具如何导出检测报告_批改网ai检测工具报告导出格式【步骤】
OpenAI DevDay 2025:开发者必知的七大AI进展
AI如何变革法律行政助理角色?未来发展趋势分析
goPDF:AI驱动的PDF文档处理全方位指南,提升工作效率
GitHub MCP Server:AI赋能代码管理的未来
终极游戏工作站:帝王蝎椅沉浸式体验评测
CallidusAI:提升合同起草效率的智能Word插件指南
EcoFlow Delta 3 Max Plus:打造你的智能电力生态系统
AI网页生成工具有哪些_一键生成企业官网的AI工具推荐
tofai网页版官方入口 tofai官网登录网址
豆包AI怎么关闭消息推送_通知与提醒管理设置教程
壹伴AI智能排版如何自动生成文章配图_壹伴AI智能排版配图生成与版权说明【教程】
AI赋能软件测试:自动化、智能化与未来趋势
五大AI视频编辑工具:提升视频创作效率和质量
AI时代生存指南:掌握软实力,成为不可替代的人
秀米AI排版如何自动生成模板_秀米AI排版模板生成入口与风格选择【攻略】
Ifor Williams拖车终极指南:农场主的选择和省税秘诀
AI伴侣:连接还是孤独?真实对话揭秘AI伦理困境
教你用AI进行角色扮演对话,练习你的沟通和谈判技巧
TechInternPath.ai:AI驱动的实习之路,助你梦想成真
DeepSeek AI:AI通用谜题解题器,解题思路全解析
利用AI模板高效创建产品需求文档 (PRD)
歌曲分析:The Killers乐队的《Mr. Brightside》歌词深度解析
如何用AI帮你创建自定义表情符号(Emoji)?聊天斗图更有趣
ATS优化:Euron ResumeAI打造高效求职简历
探索泰勒·斯威夫特《August》的深层含义:歌词解析与情感分析
豆包AI怎么评价回答的好坏_点赞与反馈功能使用教程
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
AI驱动的Web应用测试:突破QA挑战,提升用户体验
Avokaado AI:简化合同管理和法律流程的终极指南
CanvaAI抠图怎么批量处理_CanvaAI批量抠图与团队协作功能【指南】
kimi生成ppt怎么编辑文字_kimi编辑文字后怎么保存
Gemini怎样用语音输入_Gemini语音输入设置【方法】
ASUS Armoury Crate深度评测:最新功能与个性化定制
文本分类:生成模型与朴素贝叶斯算法的全面指南
EdrawMind终极评测:AI赋能思维导图,提升效率与创造力
AI在软件测试中的应用:提升效率与质量的关键策略
2025-07-16
南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。