这两年各种大模型如雨后春笋,明星产品辈出,比如最近的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应用,获得完整代码。