如何用Python调用智谱AI的API进行智能问答

PythonFun 2024-07-02 09:31:05 阅读 68

一、引言

随着人工智能技术的不断演进,以ChatGPT为首的智能聊天机器人如:文心一言、通义千问、智谱AI等受到越来越多人的喜欢。这些智能引擎不仅有网页版,而且开放了免费的api接口,并给出了样例代码。

这样,我们可以非常方便地用Python调用这些引擎,省去了登陆网页、输入账号、来回切换的麻烦。今天,我们就要介绍一下如何使用Python来调用国产大模型智普AI的API接口。

二、实现过程

第一步:注册智谱AI,领取免费的API额度,获取API key。注册过程中需要输入手机号,同时要想获得免费的额度还需要通过支付宝的个人认证。

注册地址:智谱AI开放平台

第二步,注册完毕后,点击【开始使用】,可以进入到开发者中心,再点击【查看API key】可以获得api信息。

第三步,点击下图中的文档接口,进入到说明文档。我们以GLM-4的调用为例说明一下如何调用。

第三步,我们找到GLM-4的调用文档说明,复制下面的代码,然后在cmd或苹果的终端运行,安装zhipuai模块。

pip install --upgrade zhipuai

第四步,把请求示例中的Python代码复制到IDLE即Pycharm, Anaconda或者Thonny中,把自己申请的api_key(一串字符)复制到第二行代码client = ZhipuAI(api_key="")中。这样一个简单的调用就搞定了,代码如下:

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="") # 填写您自己的APIKey

response = client.chat.completions.create(

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

messages=[

{"role": "user", "content": "你好"},

{"role": "assistant", "content": "我是人工智能助手"},

{"role": "user", "content": "你叫什么名字"},

{"role": "assistant", "content": "我叫chatGLM"},

{"role": "user", "content": "你都可以做些什么事"}

],

)

print(response.choices[0].message)

第五步,由于官方代码给出的print结果有冗余,同时一次只能问一个问题,于是,我们就对它进行简单的修改,把最后的response对象转化成一个字典,获取其中的content键值。添加while循环现在反复问答,修改的代码如下:

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="<Your API_key>") # 填写您自己的APIKey

prompt = ""

while True:

prompt = input("user:")

response = client.chat.completions.create(

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

messages=[

{"role": "user", "content": "你好"},

{"role": "assistant", "content": "我是人工智能助手"},

{"role": "user", "content": "你叫什么名字"},

{"role": "assistant", "content": "我叫chatGLM"},

{"role": "user", "content": prompt}

],

)

answer = response.choices[0].message

print(dict(answer)["content"])

有了这一串代码,你就可以向GLM-4进行重复提问,甚至可以把结果写入到文本TXT中备用。

2024年1月21日更新:受韩林涛老师的启发,把以上代码进行优化更新,角色只保留一个,后面answer的内容直接用content属性来获得,最后得到精减代码如下:

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="<Your API_key>") # 填写您自己的APIKey

while True:

prompt = input("user:")

response = client.chat.completions.create(

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

messages=[

{"role": "user", "content": prompt}

],

)

answer = response.choices[0].message.content

print("ZhipuAI:",answer)

三、使用体验

1. 智谙AI一直比较低调,其反应速度比星火大模型要慢,但是比chatgpt要快,回答的质量上比星火要高一点。

2. 新人注册有200万字符的调用额度,而且新人98元就可以买到1.8亿字符的调用。

3. 智谱的应用场景非常之多,大家可以登录到它的网页版进行测试。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。