部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >Python + AI轻松开发GUI小应用,太酷啦!

Python + AI轻松开发GUI小应用,太酷啦!

作者头像
朱卫军 AI Python
发布2025-01-07 09:54:11
发布2025-01-07 09:54:11
10600
代码可运行
举报
文章被收录于专栏:Python大数据分析
运行总次数:0
代码可运行

这两年各种大模型如雨后春笋,明星产品辈出,比如最近的deepseek。

我也一直在研究各种大模型的使用,看看是否能做一些有趣的东西。

对于开发者而言,你不光可以用各种成熟的AI APP,还可以调用AI大模型接口,用来开发个人软件、小程序、web应用等,比如公众号客服、数据分析助手、AI智能图片。

举2个例子,我最近尝试用智谱AI的GLM-4模型结合 Python 开发GUI应用,非常的简单。

第一个:成语接龙小游戏

实现的功能是,用户直接输入一个成语,该应用会根据接龙规则,给出新的成语,然后根据你的输入再接龙,所有成语内容会被记录下来。

第二个:儿童睡前故事生成器

实现的功能是,用户只需要输入一段话,比如“请生成一个关于勇敢的小兔子的故事”,AI就会根据需求生成一段几百字的儿童故事。

这两个应用可以通过Python tkinter库实现,并自定义UI,使用起来很方便。

怎么实现呢?

第一步:

先注册智谱AI BigModel平台,然后获取对应模型API key,用于在Python中调用模型。

第二步:

在Python中安装zhipuai SDK,也就是智谱AI官方的接口库。

第三步:

编写代码,使用Python GUI库tkinter编写应用程序。

第一个应用,成语接龙小游戏,代码如下。

代码语言:javascript
代码运行次数:0
复制
import tkinter as tk

# 假设的质谱 AI 接口函数,实际需替换
def generate_next_idiom(current_idiom):
    # 这里应该是调用质谱 AI 接口进行成语接龙的代码
    # 暂时简单返回一个固定成语作为示例
    client = ZhipuAI(api_key="yourapi")
    user_content = current_idiom
    system_content = '''你是成语接龙高手,你需要配合用户玩成语接龙游戏,接龙的字可以是相同的字,也可以是读音相同的字,
你只需要输出相应成语即可,不要有任何其他描述,然后根据我的输入再接龙,依次循环
'''
    response = client.chat.completions.create(
    model="glm-4-flash",
    messages=[
        {
            "role": "system",
            "content": system_content
        },
        {
            "role": "user",
            "content": user_content
        }
    ],
    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)

def play_game():
    current_idiom = input_box.get().strip()
    if current_idiom:
        # 获取 AI 生成的成语
        next_idiom = generate_next_idiom(current_idiom)
        # 在展示框记录用户输入
        record_box.insert(tk.END, "用户: " + current_idiom + "\n")
        # 在展示框记录 AI 输出
        record_box.insert(tk.END, "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的标签。

第二个应用,儿童睡前故事生成器,代码如下。

代码语言:javascript
代码运行次数:0
复制
import tkinter as tk
from tkinter import ttk
from zhipuai import ZhipuAI

def generate_story():
    # 这里应该是调用质谱 AI 接口根据输入生成故事的代码
    # 由于没有真实接口,暂时返回一个固定示例故事
    system_content = '''根据用户提示内容,生成一段儿童睡前故事,要求300字以内,故事内容轻松自然易懂,有教育意义'''

    client = ZhipuAI(api_key="yourapi")
    user_content = input_box.get("1.0", tk.END).strip()
    response = client.chat.completions.create(
        model="glm-4-Plus",
        messages=[
            {
                "role": "system",
                "content": system_content
            },
            {
                "role": "user",
                "content": user_content
            }
        ],
        top_p= 0.7,
        temperature= 0.95,
        max_tokens=1024,
        tools = [{"type":"web_search","web_search":{"search_result":True}}],
    )

    story =  response.choices[0].message.content
    return story

def show_story():
    story = generate_story()
    output_box.delete("1.0", tk.END)
    output_box.insert(tk.END, story)

# 创建主窗口
root = tk.Tk()
root.title("儿童睡前故事生成器")
root.geometry("600x400")  # 设置窗口大小

# 创建输入框标签
input_label = ttk.Label(root, text="请输入故事需求:")
input_label.pack(pady=10)

# 创建输入框
input_box = tk.Text(root, height=5, width=50)
input_box.pack(pady=5)

# 创建生成故事按钮
generate_button = ttk.Button(root, text="生成故事", command=show_story)
generate_button.pack(pady=10)

# 创建输出框标签
output_label = ttk.Label(root, text="生成的故事:")
output_label.pack(pady=10)

# 创建输出框
output_box = tk.Text(root, height=15, width=50)  # 增大输出框高度
output_box.pack(pady=5)

# 运行主循环
root.mainloop()

如下图展示,我输入要求 “请生成一个关于勇敢的小兔子的故事”,该应用根据要求生成了一个小兔子的故事,速度挺快的。

故事的情节丰富多样,语言生动有趣,很适合小朋友听。

而且,它还能根据不同的要求,调整故事的风格,比如可以是温馨的、搞笑的或者充满奇幻色彩的。

AI让成语接龙、故事生成器这类小应用变得更加简单和有趣,挺好玩的。

对于个人开发者来说,AI的兴起一个很好的机会,可以利用这个模型开发出各种有趣的 AI 应用,说不定能有意想不到的收益。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档