暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

请花5分钟学会人工智能接口的开发入门-智谱清言

red_hope 2024-05-21
4403


一、前言

老用别人的程序(UI)调用AI功能,也没什么意思。我们搞数据库的,把专家经验放到人工智能里,形成自己的垂直领域应用,其实是很有用的,避免了被后来人问来问去,并且回答非常精确。

作为一个老DBA,我们研究人工智能的目的,其实也是基于我那十来年,几百页word经验积累,我希望把这些经验让人工智能学习,从而提供更有针对性的回答。

现在人工智能平台均支持类似的操作,例如智谱清言,可以创建自有“知识库”,操作过程如下:


有了知识库,就很容易构造自己的人工智能问答小助手,下面就一起看看,调用智谱清言的接口过程吧。

二、说明

本文档根据智谱清言,官方指导文档编写,有些地方为了开发方便,做了少量变更,如依赖包的安装方式,人工智能生成图片的下载及显示等。

三、接口调用步骤

主要来源:智谱AI开放平台 (bigmodel.cn)

https://open.bigmodel.cn/

第一步:安装 Python SDK

zhipuai的可用依赖包,通过PyCharm Community Edition 在setting可以轻松搜到,搜索到后,点击“install”即可。

具体安装步骤在这里:


点击+”后,可以搜索“zhipuai”可以快速找到相关包,如下图所示:



如果你用Java开发,Java的依赖如下:

 <dependency>

    <groupId>cn.bigmodel.openapi</groupId>

    <artifactId>oapi-java-sdk</artifactId>

    <version>release-V4-2.0.2</version>

</dependency>


第二步:申请一个GLM的APIkey

 API 使用 API Key 进行身份验证。您可以访问智谱AI开放平台 API Keys 页面 

智谱AI开放平台 (bigmodel.cn)

https://open.bigmodel.cn/usercenter/apikeys

申请很简单,如果不会申请,可以参考网络资料,有很多教程。

 

第三步:编写Python的客户端程序,链接GLM4

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="ad*************xRG") # 请填写您自己的APIKey

response = client.chat.completions.create(

  model="glm-4",  # 填写需要调用的模型名称

    messages=[

        {"role": "user", "content": "请帮我介绍一下银川科技学院"},

    ],

    stream=True,

    )

for chunk in response:

    print(chunk.choices[0].delta)

 


第四步:修改返回数据方式(SSE改为一次性返回)

默认是以流的SSE方式返回给用户数据,通过实验可以看到,上面的调用是逐字逐句出现的,如果向一次性出现最终接口,可以将:

# stream=True,注释掉,并将:

 

for chunk in response:

    print(chunk.choices[0].delta)

 

修改为:

print(response.choices[0].message)


 

第五步:开始进行智能绘图接口调用

注意,绘制完成后需要显示图片,我们用到到了如下模块,如果缺少相关模块,请自行安装:

from PIL import Image
import requests
from io import BytesIO
import matplotlib.pyplot as plt
from ShowMyKye import ShowKey


完成代码如下:

from zhipuai import ZhipuAI
from PIL import Image
import requests
from io import BytesIO
import matplotlib.pyplot as plt
from ShowMyKye import ShowKey

client = ZhipuAI(api_key=ShowKey())

response = client.images.generations(
    model="cogview-3",  # 填写需要调用的模型名称
    prompt="生成一张秦朝将军的图片,背后是兵马俑",
)
# 打印图形地址
print(response.data[0].url)
pic_url = response.data[0].url
# 使用requests下载图片
response = requests.get(pic_url)
# 确保请求成功
if response.status_code == 200:
    # 使用BytesIO将图片数据转为文件对象
    image_file = BytesIO(response.content)
    # 使用Pillow打开图片
    image = Image.open(image_file)
    # 可以选择显示图片,例如使用matplotlib
    # 需要安装matplotlib库
    plt.imshow(image)
    plt.show()
    # 如果需要保存图片
    # image.save('local_image.jpg')
else:
    print('图片下载失败')


 注意:ShowKey() 是我返回api-key的函数,这里面实际上是我的api-key,是从智谱清言网站申请的。

程序运行效果如下:

  

注意:接口免费的次数是有限的

当你频繁调用,会出现如下错误:

zhipuai.core._errors.APIReachLimitError: Error code: 429, with error text {"error":{"code":"1113","message":"您的账户已欠费,请充值后重试。"}}

最后修改时间:2024-05-21 18:53:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论