如何用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. 智谱的应用场景非常之多,大家可以登录到它的网页版进行测试。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。