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

相关文章

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五