老牛同学刚刷到了一条劲爆的消息,GLM-4-Flash大模型推理 API 免费了:https://bigmodel.cn/pricing
老牛同学一直觉得上次阿里云百炼平台为期 1 个月免费额度的“羊毛”已经够大了(太卷了,阿里云免费 1 个月大模型算力额度,玩转 Llama3.1/Qwen2 等训练推理),但经过老牛同学在智谱 AI 官网反复确认之后,竟然不是标题党,它是真的免费,感觉大模型厂商的“羊毛”简直是没有最大,只有更大(老牛同学这次要站智谱 AI 这边)!
老牛同学本地部署推理和体验的大模型有很多,且第一个就是GLM-4-9B(是的,比Qwen2-7B还要早一些),也一直关注着智谱 AI 推出的大模型:
- 第一次是 6 月 8 号:GLM-4-9B大模型开源,且推理能力亮点突出,老牛还写了一篇本地部署推理的文章(本地部署 GLM-4-9B 清华智谱开源大模型方法和对话效果体验),由于当时GLM-4本地部署门槛还有点高,因此这篇文章还获得了不少网友的关注,老牛同学也收到不少网友的关于部署过程的私信和留言
- 第二次是 7 月 9 号(1 个月后):GLM-4-9B支持通过 Ollama 部署(https://ollama.com/library/glm4),本地部署和推理的门槛降低不少,因此老牛同学顺势写了一篇普及 Ollama 使用的文章,文章中案例就是用GLM-4-9B(Ollama 完整教程:本地 LLM 管理、WebUI 对话、Python/Java 客户端 API 应用)
- 第三次是 8 月 27 号也就是今天(差不多也是 1 个月后):智谱 AI 大模型开放平台官网(https://bigmodel.cn/)宣布GLM-4-Flash大模型 API 免费使用,这不又激起老牛同学的兴致,也因此有了本文
从老牛同学微观视角我们可以看到,智谱 AI 从开放开源大模型、到降低大模型使用门槛、在到面向大众免费,不段在诠释着技术进步和普惠 AI。
GLM-4-Flash免费了,我们除了高兴和感慨之外,羊毛不常有,我们总得要“薅”一把。这次老牛同学就不做微调了,咱们来做一个我们生活场景:儿童绘本应用!
大家可能会问,为什么选择儿童绘本这个方向呢?其实原因一点都不复杂:老牛同学一时半会儿也没有想到好的创意(特别期待大家留言新创意,老牛同学愿意协助实现);再者老牛同学家绘本要又更新了(存量的绘本小孩都读腻了);并且这个应用不是很复杂,不至于一篇文章还写不完,还要有续集。如果我们能基于免费的大模型 API 能力,随时生成不同的儿童绘本,岂不是妙哉?
针对“儿童绘本”应用,老牛同学的构思如下:
- 面向7~10小朋友,绘本构思由大模型产出,最好能与当前热点相关(如:最近火爆天的黑神话·悟空游戏)
- 绘本故事内容也由大模型产出,需要积极向上,饱含正能量
- 绘本情节结构分为 4 个段,每个段 300 个汉字左右,整个绘本不超过 1500 个汉字
- 每一段绘本情节均需要配一张插图
- 最后:绘本内容和图片存储到电脑本地磁盘
在儿童绘本应用中,我们需要用到 2 个大模型:
- GLM-4-Flash大语音模型,主要是提供绘本构思和产出绘本内容
- CogView-3文生图大模型,主要是生成绘本插图
确定了应用内容,我们就开始行动了~
注册&申请 API Key
想要使用大模型推理 API,我们首先得拿到 API Key,打开智谱 AI 开放平台官网:https://bigmodel.cn/
完成注册和实名认证后,我们打开控制台,即可复制 API Key 了:https://bigmodel.cn/usercenter/apikeys
我们可以把复制的 API Key 放到环境变量中(老牛同学的环境变量名:ZhipuAI-APIKey
),免费在代码里硬编码,下面老牛同学代码演示均从环境变量获取!
API 调用前置准备和配置
这部分包括 Python 环境准备、SDK 依赖包安装和 API 验证:
【Python 研发环境】
工欲善其事,必先利其器,我们通过Miniconda管理 Python 虚拟环境,Miniconda的安装和使用可以参考老牛同学之前的文章:大模型应用研发基础环境配置(Miniconda、Python、Jupyter Lab、Ollama 等)
第一步:设置 Python 虚拟环境:
# Python虚拟环境名:ZhipuAI,版本号:3.10
conda create --name ZhipuAI python=3.10 -y
# 激活虚拟环境
conda activate ZhipuAI
第二步:安装 Python SDK 依赖包
pip install zhipuai -U
以上简单的 2 步,我们即完成了前期环境准备工作了,接下来我们简单验证一下准备工作是否达标:
【开放平台 API 验证】
# GLM-4-Flash-Test.py
from zhipuai import ZhipuAI
import os
# 环境变量中获取API Key内容
client = ZhipuAI(
api_key=os.environ.get('ZhipuAI-APIKey')
)
# 使用GLM-4-Flash大模型进行验证
response = client.chat.completions.create(
model='glm-4-flash',
messages=[
{
'role': 'user', 'content': '你好,我是老牛同学,请问你是谁?'},
],
stream=True,
)
# 流式输出
for chunk in response:
print(chunk