社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

进击的Coder • 5 天前 • 30 次点击  
 

这两年各种大模型如雨后春笋,明星产品辈出,比如最近的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 编写应用程序。

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

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的标签。

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

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 应用,说不定能有意想不到的收益。

本公众号后台回复:AI应用,获得完整代码。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177689
 
30 次点击