目录
一、前置准备
参考:
【大模型应用开发-实战】(四)手把手入门智普清言官方API调用-准备工作(一)-优快云博客
二、多种方式实现
1、使用curl方式
代码实现
curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer <你的apikey>' \
--header 'Content-Type: application/json' \
--data '{
"model": "glm-4",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
2、使用openAI依赖库方式
1)安装依赖
pip install openai==1.93.0
2)新建.env文件
ZHIPUAI_API_KEY = "zhipuai_api_key"
LANGCHAIN_API_KEY = "zhipuai_api_key"
3)核心调用实现
# -*- coding: utf-8 -*-
import os
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("ZHIPUAI_API_KEY")
def method2():
"""
使用openAI依赖库
:return:
"""
#
client = OpenAI(
api_key=api_key,
base_url="https://open.bigmodel.cn/api/paas/v4/"
)
completion = client.chat.completions.create(
model="glm-4",
messages=[
{"role": "system", "content": "你是一个聪明且富有创造力的小说作家"},
{"role": "user",
"content": "请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。"}
],
top_p=0.7,
temperature=0.9
)
print(completion.choices[0].message)
if __name__ == '__main__':
method2()
3、使用zhipuai 依赖库方式
1)安装依赖
pip install zhipuai==2.1.5.20250626
2)新建.env文件
ZHIPUAI_API_KEY = "zhipuai_api_key"
LANGCHAIN_API_KEY = "zhipuai_api_key"
3)核心调用实现
# -*- coding: utf-8 -*-
import os
from zhipuai import ZhipuAI
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("ZHIPUAI_API_KEY")
def method3():
"""
使用zhipuai 依赖库
:return:
"""
client = ZhipuAI(api_key=api_key) # 填写您自己的APIKey
# 方法1,同步调用
response1 = client.chat.completions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{"role": "user", "content": "作为一名营销专家,请为我的产品创作一个吸引人的slogan"},
{"role": "assistant", "content": "当然,为了创作一个吸引人的slogan,请告诉我一些关于您产品的信息"},
{"role": "user", "content": "智谱AI开放平台"},
{"role": "assistant", "content": "智启未来,谱绘无限一智谱AI,让创新触手可及!"},
{"role": "user", "content": "创造一个更精准、吸引人的slogan"}
],
)
print(response1.choices[0].message)
# 方法2,异步调用
response2 = client.chat.asyncCompletions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{
"role": "user",
"content": "请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。"
}
],
)
print(response2)
# exit()
# 方法3,流式调用
response3 = client.chat.completions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{"role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。"},
{"role": "user",
"content": "我对太阳系的行星非常感兴趣,特别是土星。请提供关于土星的基本信息,包括其大小、组成、环系统和任何独特的天文现象。"},
],
stream=True,
)
for chunk in response3:
print(chunk.choices[0].delta)
if __name__ == '__main__':
method3()
三、完整代码
1、整体依赖
requirements.txt
openai==1.93.0
zhipuai==2.1.5.20250626
langchain==0.3.26
langchain-community==0.3.26
langchain_openai==0.3.27
langchainhub==0.1.21
httpx_sse==0.4.1
requests==2.32.4
python-dotenv==1.1.1
安装依赖
pip install -r requirements.txt
2、.env文件
ZHIPUAI_API_KEY = "zhipuai_api_key"
LANGCHAIN_API_KEY = "zhipuai_api_key"
3、核心代码
chatglm_langchain_call.py
# -*- coding: utf-8 -*-
import os
from openai import OpenAI
from zhipuai import ZhipuAI
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("ZHIPUAI_API_KEY")
def method1():
"""
使用curl方式
curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer <你的apikey>' \
--header 'Content-Type: application/json' \
--data '{
"model": "glm-4",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
:return:
"""
def method2():
"""
使用openAI依赖库
:return:
"""
#
client = OpenAI(
api_key=api_key,
base_url="https://open.bigmodel.cn/api/paas/v4/"
)
completion = client.chat.completions.create(
model="glm-4",
messages=[
{"role": "system", "content": "你是一个聪明且富有创造力的小说作家"},
{"role": "user",
"content": "请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。"}
],
top_p=0.7,
temperature=0.9
)
print(completion.choices[0].message)
def method3():
"""
使用zhipuai 依赖库
:return:
"""
client = ZhipuAI(api_key=api_key) # 填写您自己的APIKey
# 方法1,同步调用
response1 = client.chat.completions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{"role": "user", "content": "作为一名营销专家,请为我的产品创作一个吸引人的slogan"},
{"role": "assistant", "content": "当然,为了创作一个吸引人的slogan,请告诉我一些关于您产品的信息"},
{"role": "user", "content": "智谱AI开放平台"},
{"role": "assistant", "content": "智启未来,谱绘无限一智谱AI,让创新触手可及!"},
{"role": "user", "content": "创造一个更精准、吸引人的slogan"}
],
)
print(response1.choices[0].message)
# 方法2,异步调用
response2 = client.chat.asyncCompletions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{
"role": "user",
"content": "请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。"
}
],
)
print(response2)
# exit()
# 方法3,流式调用
response3 = client.chat.completions.create(
model="glm-4-0520", # 填写需要调用的模型编码
messages=[
{"role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。"},
{"role": "user",
"content": "我对太阳系的行星非常感兴趣,特别是土星。请提供关于土星的基本信息,包括其大小、组成、环系统和任何独特的天文现象。"},
],
stream=True,
)
for chunk in response3:
print(chunk.choices[0].delta)
if __name__ == '__main__':
# method1()
method2()
# method3()
四、测试运行
1、使用openAI依赖库方式
2、使用zhipuai依赖库方式
1)方法1 同步调用
2)方法3流式调用