基于 ZhipuAI 实现文本生成的基本指南
在这个博客中,我将带你了解如何通过 Python 脚本调用 ZhipuAI 的 GLM 模型来生成文本。我们将使用 dotenv
来管理 API 密钥,并介绍如何构建和发送请求以获取模型的响应。
环境准备
在使用任何 API 前,通常需要提供一个 API 密钥。这是为了确保只有经过授权的用户可以访问 API 服务。在我们的示例中,我们将使用 .env
文件来存储 API 密钥,并使用 python-dotenv
来加载这些环境变量。
1. 安装必要的依赖
首先,确保安装了必要的 Python 包:
2. 设置 .env
文件
在项目根目录下创建一个 .env
文件,并添加你的 API 密钥:
apikey 在 智谱AI官网新建生成即可
3. Python 脚本
1. gen_glm_params(prompt)
描述: 这个函数用于生成 GLM 模型所需的请求参数。它接收用户输入的提示词,并将其格式化为模型理解的形式。
参数:
-
prompt
(str): 用户输入的提示词。这是一个字符串,代表用户希望模型生成内容的起点。例如,输入"hello,你是谁呀"
来让模型介绍自己。
返回值:
-
messages
(list of dict): 返回一个包含用户输入提示词的列表,符合 GLM 模型的消息格式要求。具体格式为:[{"role": "user", "content": prompt}]
,这里的role
指定了消息的角色(在这种情况下是“用户”),content
是实际的提示词内容。
2. get_completion(prompt, model="glm-3-turbo", temperature=0.95)
描述: 这个函数用于向 GLM 模型发送请求,并获取生成的文本结果。通过指定模型和其他参数,可以控制生成的文本质量和风格。
参数:
-
prompt
(str): 用户输入的提示词,用于引导模型生成响应。例如,输入一个问题或者一个句子片段。 -
model
(str, optional): 指定调用的模型名称。默认值为"glm-3-turbo"
,这是一个版本较新的、速度更快的 GLM 模型。你可以根据需求选择其他模型,如"glm-4"
等。 -
temperature
(float, optional): 控制输出的随机性。取值范围是 0 到 1.0。较低的温度值(例如 0.1)会使输出更加一致和确定,而较高的温度值(例如 0.95)会使输出更加多样和有创意。默认为0.95
,提供适度的随机性。
返回值:
-
str
: 返回模型生成的文本内容。如果模型生成成功且有内容返回,则返回生成的文本;如果没有生成内容或发生错误,则返回"generate answer error"
。
示例代码中的其他部分
加载环境变量
这行代码使用 load_dotenv()
函数来加载 .env
文件中的环境变量。find_dotenv()
会自动查找 .env
文件的位置。加载后,环境变量(如 API 密钥)会被加入到当前的环境中,可以通过 os.environ
访问。
创建 ZhipuAI 客户端实例
这部分代码使用从环境变量中获取的 API 密钥来实例化 ZhipuAI
客户端。API 密钥是访问 ZhipuAI 服务所必须的授权令牌。
运行主程序
在主程序部分,我们调用 get_completion
函数,传入提示词 "hello,你是谁呀"
,然后打印出模型返回的响应。这部分代码是脚本的入口点,用于实际执行调用和展示结果。