与glm4模型接口的链接
1. 导入必要的模块和类
from typing import Any, List, Mapping, Optional, Dict from langchain_core.callbacks.manager import CallbackManagerForLLMRun from langchain_core.language_models.llms import LLM from zhipuai import ZhipuAI
LLM
类和CallbackManagerForLLMRun
是从langchain_core
模块中导入的,用于语言模型处理和回调管理。ZhipuAI
是一个用于访问 ZhipuAI 服务的自定义类或模块。
2. 定义 ZhipuAILLM
类
ZhipuAILLM
类继承自LLM
类,定义了几个属性用于配置 ZhipuAI 模型的行为:model
:默认模型为"glm-4"
,可以在实例化时指定。temperature
:生成文本时的温度参数,默认为0.1
。api_key
:ZhipuAI 的 API 密钥,需要在实例化时提供。max_tokens
:生成的文本的最大长度限制,默认为2048
。
3. 实现 _call
方法
_call
方法是LLM
类的抽象方法,必须在子类中实现。它接收prompt
(用户输入的提示信息)、stop
、run_manager
和kwargs
等参数。gen_glm_params(prompt)
函数生成与 ZhipuAI 模型交互所需的消息格式。- 创建
ZhipuAI
客户端实例,并使用client.chat.completions.create
方法调用 ZhipuAI 模型进行生成文本。 - 如果成功生成了文本,则返回生成的文本内容;否则返回错误提示信息。
4. 实现属性 @property
_default_params
属性返回包含默认参数的字典,目前只包含temperature
参数。_llm_type
属性返回表示语言模型类型的字符串"Zhipu"
。_identifying_params
属性返回一个字典,包含用于识别该语言模型的参数信息,包括模型名称和默认参数。
总结
这段代码实现了一个集成了 ZhipuAI 服务的自定义语言模型 ZhipuAILLM
类。它通过 _call
方法实现了与 ZhipuAI 模型的交互,并通过 _default_params
和 _identifying_params
属性提供了一些默认参数和识别信息。这种结构使得可以通过统一的接口调用 ZhipuAI 的功能,并且可以方便地进行扩展和定制化。