成语接龙游戏生成器:结合 ZhipuAI 的 Python 实现
成语接龙游戏生成器:结合 ZhipuAI 的 Python 实现
概述
成语接龙是一种有趣的文字游戏,玩家需要根据前一个成语的最后一个字作为下一个成语的第一个字进行接龙。本文将介绍如何使用 Python 和 tkinter
图形用户界面库创建一个成语接龙游戏,并通过调用 ZhipuAI API 来实现与 AI 的互动。
技术栈
- Python 3.x:编程语言
- Tkinter:用于构建图形用户界面(GUI)
- ZhipuAI API:用于生成接龙成语的自然语言处理模型
- Mac OS:运行的操作系统环境
环境准备
确保你已经安装了所需的库:
pip install zhipuai
同时,你需要一个有效的 ZhipuAI API Key。请前往 ZhipuAI 官网 获取。
代码实现
1. 导入必要的模块
import tkinter as tk
from zhipuai import ZhipuAI
2. 定义 AI 接口函数
我们将定义一个函数 generate_next_idiom
,该函数负责调用 ZhipuAI API 并返回接龙成语。
def generate_next_idiom(current_idiom):
client = ZhipuAI(api_key="YOUR_API_KEY_HERE") # 替换为你的 API Key
system_content = '''你是成语接龙高手,你需要配合用户玩成语接龙游戏,接龙的字可以是相同的字,也可以是读音相同的字,
你只需要输出相应成语即可,不要有任何其他描述,然后根据我的输入再接龙,依次循环
'''
response = client.chat.completions.create(
model="glm-4-flash",
messages=[
{
"role": "system",
"content": system_content
},
{
"role": "user",
"content": current_idiom
}
],
top_p=0.7,
temperature=0.95,
max_tokens=1024,
tools=[{"type": "web_search", "web_search": {"search_result": True}}],
)
return response.choices[0].message.content.strip()
3. 创建 GUI 界面
接下来,我们使用 tkinter
创建一个简单的用户界面,包括输入框、按钮和展示框。
def play_game():
current_idiom = input_box.get().strip()
if current_idiom:
next_idiom = generate_next_idiom(current_idiom)
record_box.insert(tk.END, f"用户: {current_idiom}\n")
record_box.insert(tk.END, f"AI: {next_idiom}\n")
input_box.delete(0, tk.END)
# 创建主窗口
root = tk.Tk()
root.title("成语接龙游戏生成器")
# 创建输入框标签
input_label = tk.Label(root, text="请输入一个成语:")
input_label.pack(pady=10)
# 创建输入框
input_box = tk.Entry(root, width=30)
input_box.pack(pady=5)
# 创建开始游戏按钮
play_button = tk.Button(root, text="开始接龙", command=play_game)
play_button.pack(pady=10)
# 创建展示框标签
record_label = tk.Label(root, text="接龙记录:")
record_label.pack(pady=10)
# 创建展示框
record_box = tk.Text(root, height=15, width=50)
record_box.pack(pady=5)
# 运行主循环
root.mainloop()
4. 完整代码
以下是完整的代码,供参考:
import tkinter as tk
from zhipuai import ZhipuAI
def generate_next_idiom(current_idiom):
client = ZhipuAI(api_key="YOUR_API_KEY_HERE") # 替换为你的 API Key
system_content = '''你是成语接龙高手,你需要配合用户玩成语接龙游戏,接龙的字可以是相同的字,也可以是读音相同的字,
你只需要输出相应成语即可,不要有任何其他描述,然后根据我的输入再接龙,依次循环
'''
response = client.chat.completions.create(
model="glm-4-flash",
messages=[
{
"role": "system",
"content": system_content
},
{
"role": "user",
"content": current_idiom
}
],
top_p=0.7,
temperature=0.95,
max_tokens=1024,
tools=[{"type": "web_search", "web_search": {"search_result": True}}],
)
return response.choices[0].message.content.strip()
def play_game():
current_idiom = input_box.get().strip()
if current_idiom:
next_idiom = generate_next_idiom(current_idiom)
record_box.insert(tk.END, f"用户: {current_idiom}\n")
record_box.insert(tk.END, f"AI: {next_idiom}\n")
input_box.delete(0, tk.END)
# 创建主窗口
root = tk.Tk()
root.title("成语接龙游戏生成器")
# 创建输入框标签
input_label = tk.Label(root, text="请输入一个成语:")
input_label.pack(pady=10)
# 创建输入框
input_box = tk.Entry(root, width=30)
input_box.pack(pady=5)
# 创建开始游戏按钮
play_button = tk.Button(root, text="开始接龙", command=play_game)
play_button.pack(pady=10)
# 创建展示框标签
record_label = tk.Label(root, text="接龙记录:")
record_label.pack(pady=10)
# 创建展示框
record_box = tk.Text(root, height=15, width=50)
record_box.pack(pady=5)
# 运行主循环
root.mainloop()
结论
通过上述步骤,我们成功地创建了一个简单的成语接龙游戏生成器。用户可以通过输入成语来与 AI 进行互动,AI 会根据用户输入的成语生成相应的接龙成语。这个项目不仅展示了如何使用 ZhipuAI API 进行自然语言处理,还介绍了如何使用 tkinter
构建简单的图形用户界面。
希望这篇文章能帮助你更好地理解如何结合 AI 和 GUI 开发有趣的应用程序。
备注:部分代码源于Python大数据分析 ,作者Python大数据分析