python实现在线 ChatGLM调用

2024-03-28 14:28

本文主要是介绍python实现在线 ChatGLM调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python实现在线 ChatGLM调用

1. 申请调用权限:

收钱进入到质谱AI开放平台,点击“开始使用”或者“开发者工具台”进行注册:
在这里插入图片描述
对于需要使用 API key 来搭建应用的话,需要点击右边红框中的查看 API key,就会进入到我们个人的 API 管理列表中。
在这里插入图片描述
在该界面,我们就可以看到我们获取到的 API 所对应的应用名字和 API key 了。
我们可以点击 添加新的 API key 并输入对应的名字即可生成新的 API key。
在这里插入图片描述

2. 调用智谱 AI API

智谱 AI 提供了 SDK 和原生 HTTP 来实现模型 API 的调用,建议使用 SDK 进行调用以获得更好的编程体验。

  • 运行环境:Python>=3.7
  • 使用 pip 安装 zhipuai 软件包及其依赖
pip install zhipuai
  • 创建client:
from zhipuai import ZhipuAIclient = ZhipuAI(api_key="", # 填写您的 APIKey
) 
  • 同步调用
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 填写您自己的APIKey
response = client.chat.completions.create(model="",  # 填写需要调用的模型名称messages=[{"role": "user", "content": "你好"},{"role": "assistant", "content": "我是人工智能助手"},{"role": "user", "content": "你叫什么名字"},{"role": "assistant", "content": "我叫chatGLM"},{"role": "user", "content": "你都可以做些什么事"}],
)
print(response.choices[0].message)
  • SSE 调用
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 请填写您自己的APIKey
response = client.chat.completions.create(model="",  # 填写需要调用的模型名称messages=[{"role": "system", "content": "你是一个人工智能助手,你叫叫chatGLM"},{"role": "user", "content": "你好!你叫什么名字"},],stream=True,
)
for chunk in response:print(chunk.choices[0].delta)
  • HTTP方式调用
import json# HTTP方式调用智普清言API
import requests
from zhipuai.core._jwt_token import generate_tokenclass ZhipuAILLM:def __init__(self, api_key, model="glm-4"):self.api_key = api_keyself.model = modelself.base_url = "https://open.bigmodel.cn/api/paas/v4/chat/completions"def __call__(self, prompt):payload = {"model": self.model,"messages": [{"role": "user","content": prompt}],}token = generate_token(self.api_key)headers = {"Authorization": f"Bearer {token}","Content-Type": "application/json",}response = requests.post(f"{self.base_url}", json=payload, headers=headers)if response.status_code == 200:byte_string = response.contentstring = byte_string.decode('utf-8')data = json.loads(string)print(json.dumps(data))return data["choices"][0]["message"]["content"]else:raise Exception(f"Error calling Zhipu AI: {response.text}")api_key = "" # 填写您自己的APIKey
llm = ZhipuAILLM(api_key)response = llm("What is the capital of France?")
print(response)
  • langchain方式调用
from langchain_openai import ChatOpenAI
import jwt
import time
from langchain_core.messages import AIMessage, HumanMessage, SystemMessagezhipuai_api_key="" # 填写您自己的APIKeyclass ChatZhiPuAI(ChatOpenAI):def __init__(self, model_name, api_key):super().__init__(model_name=model_name, openai_api_key=generate_token(api_key, 10), openai_api_base="https://open.bigmodel.cn/api/paas/v4")def invoke(self, question):messages = [HumanMessage(content=question),]return super().invoke(messages)question = input("请输入问题:")
chat = ChatZhiPuAI(model_name="glm-4", api_key=zhipuai_api_key)response = chat.invoke(question)
print(response)

参考链接:
https://github.com/MetaGLM/zhipuai-sdk-python-v4
http://t.csdnimg.cn/4HnKC
https://datawhalechina.github.io/llm-universe/#/C2/5.%20%E8%B0%83%E7%94%A8%E6%99%BA%E8%B0%B1%20AI(ChatGLM)

这篇关于python实现在线 ChatGLM调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855862

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四: